41501a:	8b 4d f4             	mov    -0xc(%ebp),%ecx
41501d:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
415024:	59                   	pop    %ecx
415025:	5f                   	pop    %edi
415026:	5e                   	pop    %esi
415027:	5b                   	pop    %ebx
415028:	8b e5                	mov    %ebp,%esp
41502a:	5d                   	pop    %ebp
41502b:	c3                   	ret
41502c:	cc                   	int3
41502d:	cc                   	int3
41502e:	cc                   	int3
41502f:	cc                   	int3
415030:	8b ff                	mov    %edi,%edi
415032:	55                   	push   %ebp
415033:	8b ec                	mov    %esp,%ebp
415035:	6a ff                	push   $0xffffffff
415037:	68 10 31 42 00       	push   $0x423110
41503c:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
415042:	50                   	push   %eax
415043:	56                   	push   %esi
415044:	57                   	push   %edi
415045:	a1 54 02 45 00       	mov    0x450254,%eax
41504a:	33 c5                	xor    %ebp,%eax
41504c:	50                   	push   %eax
41504d:	8d 45 f4             	lea    -0xc(%ebp),%eax
415050:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
415056:	8b f1                	mov    %ecx,%esi
415058:	8b 4e 14             	mov    0x14(%esi),%ecx
41505b:	c7 06 48 1a 40 00    	movl   $0x401a48,(%esi)
415061:	85 c9                	test   %ecx,%ecx
415063:	74 17                	je     0x41507c
415065:	8b 01                	mov    (%ecx),%eax
415067:	51                   	push   %ecx
415068:	8b 78 08             	mov    0x8(%eax),%edi
41506b:	8b cf                	mov    %edi,%ecx
41506d:	ff 15 c4 12 45 00    	call   *0x4512c4
415073:	ff d7                	call   *%edi
415075:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)
41507c:	8b 4d f4             	mov    -0xc(%ebp),%ecx
41507f:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
415086:	59                   	pop    %ecx
415087:	5f                   	pop    %edi
415088:	5e                   	pop    %esi
415089:	8b e5                	mov    %ebp,%esp
41508b:	5d                   	pop    %ebp
41508c:	c3                   	ret
41508d:	8b ff                	mov    %edi,%edi
41508f:	55                   	push   %ebp
415090:	8b ec                	mov    %esp,%ebp
415092:	6a ff                	push   $0xffffffff
415094:	68 8f 38 42 00       	push   $0x42388f
415099:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
41509f:	50                   	push   %eax
4150a0:	a1 54 02 45 00       	mov    0x450254,%eax
4150a5:	33 c5                	xor    %ebp,%eax
4150a7:	50                   	push   %eax
4150a8:	8d 45 f4             	lea    -0xc(%ebp),%eax
4150ab:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4150b1:	51                   	push   %ecx
4150b2:	ff 15 48 11 45 00    	call   *0x451148
4150b8:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4150bb:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4150c2:	59                   	pop    %ecx
4150c3:	c9                   	leave
4150c4:	c3                   	ret
4150c5:	8b ff                	mov    %edi,%edi
4150c7:	55                   	push   %ebp
4150c8:	8b ec                	mov    %esp,%ebp
4150ca:	6a ff                	push   $0xffffffff
4150cc:	68 8f 38 42 00       	push   $0x42388f
4150d1:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
4150d7:	50                   	push   %eax
4150d8:	a1 54 02 45 00       	mov    0x450254,%eax
4150dd:	33 c5                	xor    %ebp,%eax
4150df:	50                   	push   %eax
4150e0:	8d 45 f4             	lea    -0xc(%ebp),%eax
4150e3:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4150e9:	83 79 14 00          	cmpl   $0x0,0x14(%ecx)
4150ed:	75 0d                	jne    0x4150fc
4150ef:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4150f2:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4150f9:	59                   	pop    %ecx
4150fa:	c9                   	leave
4150fb:	c3                   	ret
4150fc:	51                   	push   %ecx
4150fd:	e8 48 ae 02 00       	call   0x43ff4a
415102:	eb eb                	jmp    0x4150ef
415104:	8b ff                	mov    %edi,%edi
415106:	55                   	push   %ebp
415107:	8b ec                	mov    %esp,%ebp
415109:	6a ff                	push   $0xffffffff
41510b:	68 8f 38 42 00       	push   $0x42388f
415110:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
415116:	50                   	push   %eax
415117:	a1 54 02 45 00       	mov    0x450254,%eax
41511c:	33 c5                	xor    %ebp,%eax
41511e:	50                   	push   %eax
41511f:	8d 45 f4             	lea    -0xc(%ebp),%eax
415122:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
415128:	80 79 18 00          	cmpb   $0x0,0x18(%ecx)
41512c:	74 07                	je     0x415135
41512e:	51                   	push   %ecx
41512f:	ff 15 48 11 45 00    	call   *0x451148
415135:	8b 4d f4             	mov    -0xc(%ebp),%ecx
415138:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
41513f:	59                   	pop    %ecx
415140:	c9                   	leave
415141:	c3                   	ret
415142:	cc                   	int3
415143:	cc                   	int3
415144:	cc                   	int3
415145:	cc                   	int3
415146:	cc                   	int3
415147:	cc                   	int3
415148:	cc                   	int3
415149:	cc                   	int3
41514a:	cc                   	int3
41514b:	cc                   	int3
41514c:	cc                   	int3
41514d:	cc                   	int3
41514e:	cc                   	int3
41514f:	cc                   	int3
415150:	8b ff                	mov    %edi,%edi
415152:	55                   	push   %ebp
415153:	8b ec                	mov    %esp,%ebp
415155:	8b 4d 08             	mov    0x8(%ebp),%ecx
415158:	56                   	push   %esi
415159:	83 c1 58             	add    $0x58,%ecx
41515c:	be 01 00 00 00       	mov    $0x1,%esi
415161:	f0 0f c1 71 04       	lock xadd %esi,0x4(%ecx)
415166:	46                   	inc    %esi
415167:	83 fe 01             	cmp    $0x1,%esi
41516a:	74 07                	je     0x415173
41516c:	8b c6                	mov    %esi,%eax
41516e:	5e                   	pop    %esi
41516f:	5d                   	pop    %ebp
415170:	c2 04 00             	ret    $0x4
415173:	8b 01                	mov    (%ecx),%eax
415175:	57                   	push   %edi
415176:	51                   	push   %ecx
415177:	8b 78 18             	mov    0x18(%eax),%edi
41517a:	81 ff 90 52 41 00    	cmp    $0x415290,%edi
415180:	0f 85 3b 78 01 00    	jne    0x42c9c1
415186:	e8 05 01 00 00       	call   0x415290
41518b:	5f                   	pop    %edi
41518c:	eb de                	jmp    0x41516c
41518e:	cc                   	int3
41518f:	cc                   	int3
415190:	8b ff                	mov    %edi,%edi
415192:	55                   	push   %ebp
415193:	8b ec                	mov    %esp,%ebp
415195:	6a ff                	push   $0xffffffff
415197:	68 b8 38 42 00       	push   $0x4238b8
41519c:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
4151a2:	50                   	push   %eax
4151a3:	83 ec 28             	sub    $0x28,%esp
4151a6:	53                   	push   %ebx
4151a7:	56                   	push   %esi
4151a8:	57                   	push   %edi
4151a9:	a1 54 02 45 00       	mov    0x450254,%eax
4151ae:	33 c5                	xor    %ebp,%eax
4151b0:	50                   	push   %eax
4151b1:	8d 45 f4             	lea    -0xc(%ebp),%eax
4151b4:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4151ba:	8b f9                	mov    %ecx,%edi
4151bc:	8b 5d 08             	mov    0x8(%ebp),%ebx
4151bf:	85 db                	test   %ebx,%ebx
4151c1:	0f 84 09 78 01 00    	je     0x42c9d0
4151c7:	8d 45 dc             	lea    -0x24(%ebp),%eax
4151ca:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
4151d1:	50                   	push   %eax
4151d2:	ff 15 00 30 45 00    	call   *0x453000
4151d8:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
4151df:	8d 45 dc             	lea    -0x24(%ebp),%eax
4151e2:	8b 33                	mov    (%ebx),%esi
4151e4:	50                   	push   %eax
4151e5:	6a 00                	push   $0x0
4151e7:	68 d8 6c 40 00       	push   $0x406cd8
4151ec:	8b 76 24             	mov    0x24(%esi),%esi
4151ef:	8b ce                	mov    %esi,%ecx
4151f1:	53                   	push   %ebx
4151f2:	ff 15 c4 12 45 00    	call   *0x4512c4
4151f8:	ff d6                	call   *%esi
4151fa:	8b f0                	mov    %eax,%esi
4151fc:	85 f6                	test   %esi,%esi
4151fe:	78 54                	js     0x415254
415200:	66 83 7d dc 08       	cmpw   $0x8,-0x24(%ebp)
415205:	0f 85 cf 77 01 00    	jne    0x42c9da
41520b:	8b 07                	mov    (%edi),%eax
41520d:	85 c0                	test   %eax,%eax
41520f:	0f 85 cf 77 01 00    	jne    0x42c9e4
415215:	8d 45 f0             	lea    -0x10(%ebp),%eax
415218:	50                   	push   %eax
415219:	57                   	push   %edi
41521a:	6a 40                	push   $0x40
41521c:	ff 15 b4 12 45 00    	call   *0x4512b4
415222:	8b f0                	mov    %eax,%esi
415224:	85 f6                	test   %esi,%esi
415226:	78 2c                	js     0x415254
415228:	8b 55 e4             	mov    -0x1c(%ebp),%edx
41522b:	85 d2                	test   %edx,%edx
41522d:	74 25                	je     0x415254
41522f:	8b c2                	mov    %edx,%eax
415231:	8d 78 02             	lea    0x2(%eax),%edi
415234:	66 8b 08             	mov    (%eax),%cx
415237:	83 c0 02             	add    $0x2,%eax
41523a:	66 85 c9             	test   %cx,%cx
41523d:	75 f5                	jne    0x415234
41523f:	2b c7                	sub    %edi,%eax
415241:	d1 f8                	sar    $1,%eax
415243:	74 0f                	je     0x415254
415245:	8d 45 f0             	lea    -0x10(%ebp),%eax
415248:	50                   	push   %eax
415249:	52                   	push   %edx
41524a:	6a 08                	push   $0x8
41524c:	ff 15 bc 12 45 00    	call   *0x4512bc
415252:	8b f0                	mov    %eax,%esi
415254:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
41525b:	8d 45 dc             	lea    -0x24(%ebp),%eax
41525e:	50                   	push   %eax
41525f:	ff 15 1c 30 45 00    	call   *0x45301c
415265:	85 c0                	test   %eax,%eax
415267:	0f 88 89 77 01 00    	js     0x42c9f6
41526d:	8b c6                	mov    %esi,%eax
41526f:	8b 4d f4             	mov    -0xc(%ebp),%ecx
415272:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
415279:	59                   	pop    %ecx
41527a:	5f                   	pop    %edi
41527b:	5e                   	pop    %esi
41527c:	5b                   	pop    %ebx
41527d:	8b e5                	mov    %ebp,%esp
41527f:	5d                   	pop    %ebp
415280:	c2 04 00             	ret    $0x4
415283:	cc                   	int3
415284:	cc                   	int3
415285:	cc                   	int3
415286:	cc                   	int3
415287:	cc                   	int3
415288:	cc                   	int3
415289:	cc                   	int3
41528a:	cc                   	int3
41528b:	cc                   	int3
41528c:	cc                   	int3
41528d:	cc                   	int3
41528e:	cc                   	int3
41528f:	cc                   	int3
415290:	8b ff                	mov    %edi,%edi
415292:	55                   	push   %ebp
415293:	8b ec                	mov    %esp,%ebp
415295:	8b 45 08             	mov    0x8(%ebp),%eax
415298:	57                   	push   %edi
415299:	33 ff                	xor    %edi,%edi
41529b:	47                   	inc    %edi
41529c:	f0 0f c1 78 08       	lock xadd %edi,0x8(%eax)
4152a1:	47                   	inc    %edi
4152a2:	83 ff 01             	cmp    $0x1,%edi
4152a5:	75 12                	jne    0x4152b9
4152a7:	8b 08                	mov    (%eax),%ecx
4152a9:	56                   	push   %esi
4152aa:	50                   	push   %eax
4152ab:	8b 71 24             	mov    0x24(%ecx),%esi
4152ae:	8b ce                	mov    %esi,%ecx
4152b0:	ff 15 c4 12 45 00    	call   *0x4512c4
4152b6:	ff d6                	call   *%esi
4152b8:	5e                   	pop    %esi
4152b9:	8b c7                	mov    %edi,%eax
4152bb:	5f                   	pop    %edi
4152bc:	5d                   	pop    %ebp
4152bd:	c2 04 00             	ret    $0x4
4152c0:	8b ff                	mov    %edi,%edi
4152c2:	55                   	push   %ebp
4152c3:	8b ec                	mov    %esp,%ebp
4152c5:	8b 45 08             	mov    0x8(%ebp),%eax
4152c8:	8b 80 e8 00 00 00    	mov    0xe8(%eax),%eax
4152ce:	5d                   	pop    %ebp
4152cf:	c2 04 00             	ret    $0x4
4152d2:	cc                   	int3
4152d3:	cc                   	int3
4152d4:	cc                   	int3
4152d5:	cc                   	int3
4152d6:	cc                   	int3
4152d7:	cc                   	int3
4152d8:	cc                   	int3
4152d9:	cc                   	int3
4152da:	cc                   	int3
4152db:	cc                   	int3
4152dc:	cc                   	int3
4152dd:	cc                   	int3
4152de:	cc                   	int3
4152df:	cc                   	int3
4152e0:	8b ff                	mov    %edi,%edi
4152e2:	55                   	push   %ebp
4152e3:	8b ec                	mov    %esp,%ebp
4152e5:	6a ff                	push   $0xffffffff
4152e7:	68 ee 38 42 00       	push   $0x4238ee
4152ec:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
4152f2:	50                   	push   %eax
4152f3:	81 ec c0 00 00 00    	sub    $0xc0,%esp
4152f9:	a1 54 02 45 00       	mov    0x450254,%eax
4152fe:	33 c5                	xor    %ebp,%eax
415300:	89 45 f0             	mov    %eax,-0x10(%ebp)
415303:	53                   	push   %ebx
415304:	56                   	push   %esi
415305:	57                   	push   %edi
415306:	50                   	push   %eax
415307:	8d 45 f4             	lea    -0xc(%ebp),%eax
41530a:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
415310:	8b 45 10             	mov    0x10(%ebp),%eax
415313:	8b 5d 18             	mov    0x18(%ebp),%ebx
415316:	8b 55 20             	mov    0x20(%ebp),%edx
415319:	8b 75 2c             	mov    0x2c(%ebp),%esi
41531c:	8b 7d 08             	mov    0x8(%ebp),%edi
41531f:	8b 4d 28             	mov    0x28(%ebp),%ecx
415322:	89 85 44 ff ff ff    	mov    %eax,-0xbc(%ebp)
415328:	8b 45 14             	mov    0x14(%ebp),%eax
41532b:	89 85 48 ff ff ff    	mov    %eax,-0xb8(%ebp)
415331:	8b 45 1c             	mov    0x1c(%ebp),%eax
415334:	89 85 4c ff ff ff    	mov    %eax,-0xb4(%ebp)
41533a:	8b 45 24             	mov    0x24(%ebp),%eax
41533d:	89 9d 40 ff ff ff    	mov    %ebx,-0xc0(%ebp)
415343:	89 95 3c ff ff ff    	mov    %edx,-0xc4(%ebp)
415349:	89 85 38 ff ff ff    	mov    %eax,-0xc8(%ebp)
41534f:	89 b5 50 ff ff ff    	mov    %esi,-0xb0(%ebp)
415355:	a1 00 f0 44 00       	mov    0x44f000,%eax
41535a:	3d 00 f0 44 00       	cmp    $0x44f000,%eax
41535f:	74 0a                	je     0x41536b
415361:	f6 40 1c 04          	testb  $0x4,0x1c(%eax)
415365:	0f 85 b2 76 01 00    	jne    0x42ca1d
41536b:	80 7f 64 00          	cmpb   $0x0,0x64(%edi)
41536f:	0f 84 e5 76 01 00    	je     0x42ca5a
415375:	8b 87 dc 00 00 00    	mov    0xdc(%edi),%eax
41537b:	33 c9                	xor    %ecx,%ecx
41537d:	ba 04 00 00 00       	mov    $0x4,%edx
415382:	f7 e2                	mul    %edx
415384:	0f 90 c1             	seto   %cl
415387:	f7 d9                	neg    %ecx
415389:	0b c8                	or     %eax,%ecx
41538b:	a1 80 0b 45 00       	mov    0x450b80,%eax
415390:	8b 50 08             	mov    0x8(%eax),%edx
415393:	8b 40 04             	mov    0x4(%eax),%eax
415396:	83 e2 05             	and    $0x5,%edx
415399:	83 ca 08             	or     $0x8,%edx
41539c:	85 c0                	test   %eax,%eax
41539e:	0f 84 c6 76 01 00    	je     0x42ca6a
4153a4:	51                   	push   %ecx
4153a5:	52                   	push   %edx
4153a6:	50                   	push   %eax
4153a7:	ff 15 78 10 45 00    	call   *0x451078
4153ad:	85 c0                	test   %eax,%eax