4150f0:	5b                   	pop    %ebx
4150f1:	c3                   	ret
4150f2:	81 e7 00 80 00 80    	and    $0x80008000,%edi
4150f8:	81 ff 00 00 00 80    	cmp    $0x80000000,%edi
4150fe:	75 09                	jne    0x415109
415100:	6a 01                	push   $0x1
415102:	8b cb                	mov    %ebx,%ecx
415104:	e8 f7 03 01 00       	call   0x425500
415109:	8d 4b 0c             	lea    0xc(%ebx),%ecx
41510c:	e8 7f f6 00 00       	call   0x424790
415111:	85 c0                	test   %eax,%eax
415113:	75 0a                	jne    0x41511f
415115:	6a ff                	push   $0xffffffff
415117:	8d 4b 0c             	lea    0xc(%ebx),%ecx
41511a:	e8 c1 f9 00 00       	call   0x424ae0
41511f:	5f                   	pop    %edi
415120:	5e                   	pop    %esi
415121:	5b                   	pop    %ebx
415122:	c3                   	ret
415123:	cc                   	int3
415124:	cc                   	int3
415125:	cc                   	int3
415126:	cc                   	int3
415127:	cc                   	int3
415128:	cc                   	int3
415129:	cc                   	int3
41512a:	cc                   	int3
41512b:	cc                   	int3
41512c:	cc                   	int3
41512d:	cc                   	int3
41512e:	cc                   	int3
41512f:	cc                   	int3
415130:	8b ff                	mov    %edi,%edi
415132:	56                   	push   %esi
415133:	57                   	push   %edi
415134:	8b f9                	mov    %ecx,%edi
415136:	8b 37                	mov    (%edi),%esi
415138:	81 e6 ff ff ff 7f    	and    $0x7fffffff,%esi
41513e:	8d 86 00 00 fe ff    	lea    -0x20000(%esi),%eax
415144:	c1 f8 1f             	sar    $0x1f,%eax
415147:	8d 96 00 00 ff ff    	lea    -0x10000(%esi),%edx
41514d:	25 00 80 ff ff       	and    $0xffff8000,%eax
415152:	03 d0                	add    %eax,%edx
415154:	8b c6                	mov    %esi,%eax
415156:	f0 0f b1 17          	lock cmpxchg %edx,(%edi)
41515a:	3b c6                	cmp    %esi,%eax
41515c:	0f 84 a8 00 00 00    	je     0x41520a
415162:	85 c0                	test   %eax,%eax
415164:	78 2d                	js     0x415193
415166:	f3 90                	pause
415168:	8b 17                	mov    (%edi),%edx
41516a:	81 e2 ff ff ff 7f    	and    $0x7fffffff,%edx
415170:	8d 82 00 00 fe ff    	lea    -0x20000(%edx),%eax
415176:	c1 f8 1f             	sar    $0x1f,%eax
415179:	8d 8a 00 00 ff ff    	lea    -0x10000(%edx),%ecx
41517f:	25 00 80 ff ff       	and    $0xffff8000,%eax
415184:	03 c8                	add    %eax,%ecx
415186:	8b c2                	mov    %edx,%eax
415188:	f0 0f b1 0f          	lock cmpxchg %ecx,(%edi)
41518c:	3b c2                	cmp    %edx,%eax
41518e:	75 d2                	jne    0x415162
415190:	5f                   	pop    %edi
415191:	5e                   	pop    %esi
415192:	c3                   	ret
415193:	8d 77 04             	lea    0x4(%edi),%esi
415196:	83 c8 ff             	or     $0xffffffff,%eax
415199:	f0 0f c1 06          	lock xadd %eax,(%esi)
41519d:	83 c0 ff             	add    $0xffffffff,%eax
4151a0:	75 68                	jne    0x41520a
4151a2:	8b 17                	mov    (%edi),%edx
4151a4:	8b ca                	mov    %edx,%ecx
4151a6:	81 e1 00 00 ff 7f    	and    $0x7fff0000,%ecx
4151ac:	8b c2                	mov    %edx,%eax
4151ae:	f7 d9                	neg    %ecx
4151b0:	1b c9                	sbb    %ecx,%ecx
4151b2:	81 e1 ff 7f 00 00    	and    $0x7fff,%ecx
4151b8:	81 c1 00 80 ff ff    	add    $0xffff8000,%ecx
4151be:	03 ca                	add    %edx,%ecx
4151c0:	f0 0f b1 0f          	lock cmpxchg %ecx,(%edi)
4151c4:	3b c2                	cmp    %edx,%eax
4151c6:	74 28                	je     0x4151f0
4151c8:	f3 90                	pause
4151ca:	8b 17                	mov    (%edi),%edx
4151cc:	8b ca                	mov    %edx,%ecx
4151ce:	81 e1 00 00 ff 7f    	and    $0x7fff0000,%ecx
4151d4:	8b c2                	mov    %edx,%eax
4151d6:	f7 d9                	neg    %ecx
4151d8:	1b c9                	sbb    %ecx,%ecx
4151da:	81 e1 ff 7f 00 00    	and    $0x7fff,%ecx
4151e0:	81 c1 00 80 ff ff    	add    $0xffff8000,%ecx
4151e6:	03 ca                	add    %edx,%ecx
4151e8:	f0 0f b1 0f          	lock cmpxchg %ecx,(%edi)
4151ec:	3b c2                	cmp    %edx,%eax
4151ee:	75 d8                	jne    0x4151c8
4151f0:	a9 00 00 ff 7f       	test   $0x7fff0000,%eax
4151f5:	74 09                	je     0x415200
4151f7:	b8 01 00 00 00       	mov    $0x1,%eax
4151fc:	f0 0f c1 06          	lock xadd %eax,(%esi)
415200:	6a 01                	push   $0x1
415202:	8d 4f 08             	lea    0x8(%edi),%ecx
415205:	e8 36 fc ff ff       	call   0x414e40
41520a:	5f                   	pop    %edi
41520b:	5e                   	pop    %esi
41520c:	c3                   	ret
41520d:	cc                   	int3
41520e:	cc                   	int3
41520f:	cc                   	int3
415210:	8b ff                	mov    %edi,%edi
415212:	55                   	push   %ebp
415213:	8b ec                	mov    %esp,%ebp
415215:	d1 ea                	shr    $1,%edx
415217:	8b c2                	mov    %edx,%eax
415219:	f7 d8                	neg    %eax
41521b:	1b c0                	sbb    %eax,%eax
41521d:	25 a9 ff f8 7f       	and    $0x7ff8ffa9,%eax
415222:	05 57 00 07 80       	add    $0x80070057,%eax
415227:	85 d2                	test   %edx,%edx
415229:	74 0a                	je     0x415235
41522b:	51                   	push   %ecx
41522c:	ff 75 08             	push   0x8(%ebp)
41522f:	51                   	push   %ecx
415230:	e8 7b 00 00 00       	call   0x4152b0
415235:	5d                   	pop    %ebp
415236:	c2 04 00             	ret    $0x4
415239:	cc                   	int3
41523a:	cc                   	int3
41523b:	cc                   	int3
41523c:	cc                   	int3
41523d:	cc                   	int3
41523e:	cc                   	int3
41523f:	cc                   	int3
415240:	8b ff                	mov    %edi,%edi
415242:	55                   	push   %ebp
415243:	8b ec                	mov    %esp,%ebp
415245:	56                   	push   %esi
415246:	8b f2                	mov    %edx,%esi
415248:	d1 ee                	shr    $1,%esi
41524a:	8b c6                	mov    %esi,%eax
41524c:	f7 d8                	neg    %eax
41524e:	57                   	push   %edi
41524f:	1b c0                	sbb    %eax,%eax
415251:	8b f9                	mov    %ecx,%edi
415253:	25 a9 ff f8 7f       	and    $0x7ff8ffa9,%eax
415258:	05 57 00 07 80       	add    $0x80070057,%eax
41525d:	85 f6                	test   %esi,%esi
41525f:	74 2c                	je     0x41528d
415261:	8b c6                	mov    %esi,%eax
415263:	66 83 39 00          	cmpw   $0x0,(%ecx)
415267:	74 08                	je     0x415271
415269:	83 c1 02             	add    $0x2,%ecx
41526c:	83 e8 01             	sub    $0x1,%eax
41526f:	75 f2                	jne    0x415263
415271:	8b d0                	mov    %eax,%edx
415273:	8b ce                	mov    %esi,%ecx
415275:	f7 d8                	neg    %eax
415277:	1b c0                	sbb    %eax,%eax
415279:	2b ca                	sub    %edx,%ecx
41527b:	25 a9 ff f8 7f       	and    $0x7ff8ffa9,%eax
415280:	05 57 00 07 80       	add    $0x80070057,%eax
415285:	f7 da                	neg    %edx
415287:	1b d2                	sbb    %edx,%edx
415289:	23 d1                	and    %ecx,%edx
41528b:	eb 02                	jmp    0x41528f
41528d:	33 d2                	xor    %edx,%edx
41528f:	85 c0                	test   %eax,%eax
415291:	78 11                	js     0x4152a4
415293:	51                   	push   %ecx
415294:	ff 75 08             	push   0x8(%ebp)
415297:	2b f2                	sub    %edx,%esi
415299:	51                   	push   %ecx
41529a:	8d 0c 57             	lea    (%edi,%edx,2),%ecx
41529d:	8b d6                	mov    %esi,%edx
41529f:	e8 0c 00 00 00       	call   0x4152b0
4152a4:	5f                   	pop    %edi
4152a5:	5e                   	pop    %esi
4152a6:	5d                   	pop    %ebp
4152a7:	c2 04 00             	ret    $0x4
4152aa:	cc                   	int3
4152ab:	cc                   	int3
4152ac:	cc                   	int3
4152ad:	cc                   	int3
4152ae:	cc                   	int3
4152af:	cc                   	int3
4152b0:	8b ff                	mov    %edi,%edi
4152b2:	55                   	push   %ebp
4152b3:	8b ec                	mov    %esp,%ebp
4152b5:	56                   	push   %esi
4152b6:	57                   	push   %edi
4152b7:	85 d2                	test   %edx,%edx
4152b9:	74 29                	je     0x4152e4
4152bb:	8b 7d 0c             	mov    0xc(%ebp),%edi
4152be:	b8 fe ff ff 7f       	mov    $0x7ffffffe,%eax
4152c3:	2b f9                	sub    %ecx,%edi
4152c5:	85 c0                	test   %eax,%eax
4152c7:	74 17                	je     0x4152e0
4152c9:	0f b7 34 0f          	movzwl (%edi,%ecx,1),%esi
4152cd:	66 85 f6             	test   %si,%si
4152d0:	74 0e                	je     0x4152e0
4152d2:	66 89 31             	mov    %si,(%ecx)
4152d5:	48                   	dec    %eax
4152d6:	83 c1 02             	add    $0x2,%ecx
4152d9:	83 ea 01             	sub    $0x1,%edx
4152dc:	75 e7                	jne    0x4152c5
4152de:	eb 04                	jmp    0x4152e4
4152e0:	85 d2                	test   %edx,%edx
4152e2:	75 03                	jne    0x4152e7
4152e4:	83 e9 02             	sub    $0x2,%ecx
4152e7:	f7 da                	neg    %edx
4152e9:	5f                   	pop    %edi
4152ea:	1b d2                	sbb    %edx,%edx
4152ec:	81 e2 86 ff f8 7f    	and    $0x7ff8ff86,%edx
4152f2:	33 c0                	xor    %eax,%eax
4152f4:	66 89 01             	mov    %ax,(%ecx)
4152f7:	5e                   	pop    %esi
4152f8:	8d 82 7a 00 07 80    	lea    -0x7ff8ff86(%edx),%eax
4152fe:	5d                   	pop    %ebp
4152ff:	c2 0c 00             	ret    $0xc
415302:	cc                   	int3
415303:	cc                   	int3
415304:	cc                   	int3
415305:	cc                   	int3
415306:	cc                   	int3
415307:	cc                   	int3
415308:	cc                   	int3
415309:	cc                   	int3
41530a:	cc                   	int3
41530b:	cc                   	int3
41530c:	cc                   	int3
41530d:	cc                   	int3
41530e:	cc                   	int3
41530f:	cc                   	int3
415310:	8b ff                	mov    %edi,%edi
415312:	55                   	push   %ebp
415313:	8b ec                	mov    %esp,%ebp
415315:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
415319:	56                   	push   %esi
41531a:	8b f1                	mov    %ecx,%esi
41531c:	c7 06 3c 10 40 00    	movl   $0x40103c,(%esi)
415322:	74 19                	je     0x41533d
415324:	56                   	push   %esi
415325:	6a 00                	push   $0x0
415327:	ff 35 00 12 45 00    	push   0x451200
41532d:	ff 15 18 21 45 00    	call   *0x452118
415333:	85 c0                	test   %eax,%eax
415335:	75 06                	jne    0x41533d
415337:	ff 15 6c 20 45 00    	call   *0x45206c
41533d:	8b c6                	mov    %esi,%eax
41533f:	5e                   	pop    %esi
415340:	5d                   	pop    %ebp
415341:	c2 04 00             	ret    $0x4
415344:	cc                   	int3
415345:	cc                   	int3
415346:	cc                   	int3
415347:	cc                   	int3
415348:	cc                   	int3
415349:	cc                   	int3
41534a:	cc                   	int3
41534b:	cc                   	int3
41534c:	cc                   	int3
41534d:	cc                   	int3
41534e:	cc                   	int3
41534f:	cc                   	int3
415350:	c7 41 20 00 00 00 00 	movl   $0x0,0x20(%ecx)
415357:	c7 41 24 00 00 00 00 	movl   $0x0,0x24(%ecx)
41535e:	c7 41 08 ff ff ff ff 	movl   $0xffffffff,0x8(%ecx)
415365:	c7 41 0c ff ff ff ff 	movl   $0xffffffff,0xc(%ecx)
41536c:	c7 41 10 00 00 00 00 	movl   $0x0,0x10(%ecx)
415373:	c7 41 14 00 00 00 00 	movl   $0x0,0x14(%ecx)
41537a:	c7 41 18 00 00 00 00 	movl   $0x0,0x18(%ecx)
415381:	c7 41 1c 00 00 00 00 	movl   $0x0,0x1c(%ecx)
415388:	c3                   	ret
415389:	cc                   	int3
41538a:	cc                   	int3
41538b:	cc                   	int3
41538c:	cc                   	int3
41538d:	cc                   	int3
41538e:	cc                   	int3
41538f:	cc                   	int3
415390:	8b ff                	mov    %edi,%edi
415392:	55                   	push   %ebp
415393:	8b ec                	mov    %esp,%ebp
415395:	8b 55 0c             	mov    0xc(%ebp),%edx
415398:	8b 45 08             	mov    0x8(%ebp),%eax
41539b:	3b 51 0c             	cmp    0xc(%ecx),%edx
41539e:	77 0d                	ja     0x4153ad
4153a0:	72 05                	jb     0x4153a7
4153a2:	3b 41 08             	cmp    0x8(%ecx),%eax
4153a5:	73 06                	jae    0x4153ad
4153a7:	89 41 08             	mov    %eax,0x8(%ecx)
4153aa:	89 51 0c             	mov    %edx,0xc(%ecx)
4153ad:	3b 51 14             	cmp    0x14(%ecx),%edx
4153b0:	72 0d                	jb     0x4153bf
4153b2:	77 05                	ja     0x4153b9
4153b4:	3b 41 10             	cmp    0x10(%ecx),%eax
4153b7:	76 06                	jbe    0x4153bf
4153b9:	89 41 10             	mov    %eax,0x10(%ecx)
4153bc:	89 51 14             	mov    %edx,0x14(%ecx)
4153bf:	01 41 18             	add    %eax,0x18(%ecx)
4153c2:	11 51 1c             	adc    %edx,0x1c(%ecx)
4153c5:	83 41 20 01          	addl   $0x1,0x20(%ecx)
4153c9:	83 51 24 00          	adcl   $0x0,0x24(%ecx)
4153cd:	33 c0                	xor    %eax,%eax
4153cf:	5d                   	pop    %ebp
4153d0:	c2 08 00             	ret    $0x8
4153d3:	cc                   	int3
4153d4:	cc                   	int3
4153d5:	cc                   	int3
4153d6:	cc                   	int3
4153d7:	cc                   	int3
4153d8:	cc                   	int3
4153d9:	cc                   	int3
4153da:	cc                   	int3
4153db:	cc                   	int3
4153dc:	cc                   	int3
4153dd:	cc                   	int3
4153de:	cc                   	int3
4153df:	cc                   	int3
4153e0:	8b 41 20             	mov    0x20(%ecx),%eax
4153e3:	8b 51 24             	mov    0x24(%ecx),%edx
4153e6:	c3                   	ret
4153e7:	cc                   	int3
4153e8:	cc                   	int3
4153e9:	cc                   	int3
4153ea:	cc                   	int3
4153eb:	cc                   	int3
4153ec:	cc                   	int3
4153ed:	cc                   	int3
4153ee:	cc                   	int3
4153ef:	cc                   	int3
4153f0:	8b 41 08             	mov    0x8(%ecx),%eax
4153f3:	8b 51 0c             	mov    0xc(%ecx),%edx
4153f6:	c3                   	ret
4153f7:	cc                   	int3
4153f8:	cc                   	int3
4153f9:	cc                   	int3
4153fa:	cc                   	int3
4153fb:	cc                   	int3
4153fc:	cc                   	int3
4153fd:	cc                   	int3
4153fe:	cc                   	int3
4153ff:	cc                   	int3
415400:	8b 41 10             	mov    0x10(%ecx),%eax
415403:	8b 51 14             	mov    0x14(%ecx),%edx
415406:	c3                   	ret
415407:	cc                   	int3
415408:	cc                   	int3
415409:	cc                   	int3
41540a:	cc                   	int3
41540b:	cc                   	int3
41540c:	cc                   	int3