42011a:	59                   	pop    %ecx
42011b:	5f                   	pop    %edi
42011c:	5e                   	pop    %esi
42011d:	5b                   	pop    %ebx
42011e:	c9                   	leave
42011f:	c3                   	ret
420120:	8b 75 dc             	mov    -0x24(%ebp),%esi
420123:	8b 7d e0             	mov    -0x20(%ebp),%edi
420126:	56                   	push   %esi
420127:	e8 b9 d8 ff ff       	call   0x41d9e5
42012c:	59                   	pop    %ecx
42012d:	c3                   	ret
42012e:	6a 0c                	push   $0xc
420130:	68 80 af 43 00       	push   $0x43af80
420135:	e8 96 a3 fe ff       	call   0x40a4d0
42013a:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
42013e:	8b 45 08             	mov    0x8(%ebp),%eax
420141:	ff 30                	push   (%eax)
420143:	e8 89 d8 ff ff       	call   0x41d9d1
420148:	59                   	pop    %ecx
420149:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
42014d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
420150:	e8 34 00 00 00       	call   0x420189
420155:	8b f0                	mov    %eax,%esi
420157:	89 75 e4             	mov    %esi,-0x1c(%ebp)
42015a:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
420161:	e8 17 00 00 00       	call   0x42017d
420166:	8b c6                	mov    %esi,%eax
420168:	8b 4d f0             	mov    -0x10(%ebp),%ecx
42016b:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
420172:	59                   	pop    %ecx
420173:	5f                   	pop    %edi
420174:	5e                   	pop    %esi
420175:	5b                   	pop    %ebx
420176:	c9                   	leave
420177:	c2 0c 00             	ret    $0xc
42017a:	8b 75 e4             	mov    -0x1c(%ebp),%esi
42017d:	8b 45 10             	mov    0x10(%ebp),%eax
420180:	ff 30                	push   (%eax)
420182:	e8 5e d8 ff ff       	call   0x41d9e5
420187:	59                   	pop    %ecx
420188:	c3                   	ret
420189:	8b ff                	mov    %edi,%edi
42018b:	55                   	push   %ebp
42018c:	8b ec                	mov    %esp,%ebp
42018e:	51                   	push   %ecx
42018f:	53                   	push   %ebx
420190:	56                   	push   %esi
420191:	8b f1                	mov    %ecx,%esi
420193:	57                   	push   %edi
420194:	8b 06                	mov    (%esi),%eax
420196:	8b 7e 04             	mov    0x4(%esi),%edi
420199:	8b 18                	mov    (%eax),%ebx
42019b:	53                   	push   %ebx
42019c:	e8 40 da ff ff       	call   0x41dbe1
4201a1:	ff 76 04             	push   0x4(%esi)
4201a4:	88 45 fc             	mov    %al,-0x4(%ebp)
4201a7:	8b 06                	mov    (%esi),%eax
4201a9:	ff 30                	push   (%eax)
4201ab:	8b 46 10             	mov    0x10(%esi),%eax
4201ae:	ff 30                	push   (%eax)
4201b0:	8b 46 0c             	mov    0xc(%esi),%eax
4201b3:	ff 30                	push   (%eax)
4201b5:	8b 46 08             	mov    0x8(%esi),%eax
4201b8:	ff 30                	push   (%eax)
4201ba:	e8 8d 00 00 00       	call   0x42024c
4201bf:	57                   	push   %edi
4201c0:	53                   	push   %ebx
4201c1:	ff 75 fc             	push   -0x4(%ebp)
4201c4:	8b f0                	mov    %eax,%esi
4201c6:	e8 c1 da ff ff       	call   0x41dc8c
4201cb:	83 c4 24             	add    $0x24,%esp
4201ce:	8b c6                	mov    %esi,%eax
4201d0:	5f                   	pop    %edi
4201d1:	5e                   	pop    %esi
4201d2:	5b                   	pop    %ebx
4201d3:	c9                   	leave
4201d4:	c3                   	ret
4201d5:	8b ff                	mov    %edi,%edi
4201d7:	55                   	push   %ebp
4201d8:	8b ec                	mov    %esp,%ebp
4201da:	83 ec 20             	sub    $0x20,%esp
4201dd:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
4201e1:	74 2b                	je     0x42020e
4201e3:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
4201e7:	74 25                	je     0x42020e
4201e9:	8b 4d 14             	mov    0x14(%ebp),%ecx
4201ec:	85 c9                	test   %ecx,%ecx
4201ee:	75 22                	jne    0x420212
4201f0:	8b 45 18             	mov    0x18(%ebp),%eax
4201f3:	50                   	push   %eax
4201f4:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
4201f8:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
4201ff:	33 c0                	xor    %eax,%eax
420201:	50                   	push   %eax
420202:	50                   	push   %eax
420203:	50                   	push   %eax
420204:	50                   	push   %eax
420205:	50                   	push   %eax
420206:	e8 66 d1 fe ff       	call   0x40d371
42020b:	83 c4 18             	add    $0x18,%esp
42020e:	33 c0                	xor    %eax,%eax
420210:	c9                   	leave
420211:	c3                   	ret
420212:	8d 45 14             	lea    0x14(%ebp),%eax
420215:	89 4d f8             	mov    %ecx,-0x8(%ebp)
420218:	89 45 e0             	mov    %eax,-0x20(%ebp)
42021b:	8b 45 18             	mov    0x18(%ebp),%eax
42021e:	89 45 e4             	mov    %eax,-0x1c(%ebp)
420221:	8d 45 08             	lea    0x8(%ebp),%eax
420224:	89 45 e8             	mov    %eax,-0x18(%ebp)
420227:	8d 45 0c             	lea    0xc(%ebp),%eax
42022a:	89 45 ec             	mov    %eax,-0x14(%ebp)
42022d:	8d 45 10             	lea    0x10(%ebp),%eax
420230:	89 45 f0             	mov    %eax,-0x10(%ebp)
420233:	8d 45 f8             	lea    -0x8(%ebp),%eax
420236:	50                   	push   %eax
420237:	8d 45 e0             	lea    -0x20(%ebp),%eax
42023a:	89 4d f4             	mov    %ecx,-0xc(%ebp)
42023d:	50                   	push   %eax
42023e:	8d 45 f4             	lea    -0xc(%ebp),%eax
420241:	50                   	push   %eax
420242:	8d 4d ff             	lea    -0x1(%ebp),%ecx
420245:	e8 e4 fe ff ff       	call   0x42012e
42024a:	c9                   	leave
42024b:	c3                   	ret
42024c:	8b ff                	mov    %edi,%edi
42024e:	55                   	push   %ebp
42024f:	8b ec                	mov    %esp,%ebp
420251:	83 ec 0c             	sub    $0xc,%esp
420254:	53                   	push   %ebx
420255:	8b 5d 0c             	mov    0xc(%ebp),%ebx
420258:	56                   	push   %esi
420259:	57                   	push   %edi
42025a:	85 db                	test   %ebx,%ebx
42025c:	74 2c                	je     0x42028a
42025e:	8b 7d 10             	mov    0x10(%ebp),%edi
420261:	85 ff                	test   %edi,%edi
420263:	74 25                	je     0x42028a
420265:	8b 4d 14             	mov    0x14(%ebp),%ecx
420268:	85 c9                	test   %ecx,%ecx
42026a:	75 25                	jne    0x420291
42026c:	8b 45 18             	mov    0x18(%ebp),%eax
42026f:	50                   	push   %eax
420270:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
420274:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
42027b:	33 c0                	xor    %eax,%eax
42027d:	50                   	push   %eax
42027e:	50                   	push   %eax
42027f:	50                   	push   %eax
420280:	50                   	push   %eax
420281:	50                   	push   %eax
420282:	e8 ea d0 fe ff       	call   0x40d371
420287:	83 c4 18             	add    $0x18,%esp
42028a:	33 c0                	xor    %eax,%eax
42028c:	5f                   	pop    %edi
42028d:	5e                   	pop    %esi
42028e:	5b                   	pop    %ebx
42028f:	c9                   	leave
420290:	c3                   	ret
420291:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
420295:	74 d5                	je     0x42026c
420297:	83 c8 ff             	or     $0xffffffff,%eax
42029a:	33 d2                	xor    %edx,%edx
42029c:	f7 f3                	div    %ebx
42029e:	3b f8                	cmp    %eax,%edi
4202a0:	77 ca                	ja     0x42026c
4202a2:	8d 41 0c             	lea    0xc(%ecx),%eax
4202a5:	89 45 f4             	mov    %eax,-0xc(%ebp)
4202a8:	8b 00                	mov    (%eax),%eax
4202aa:	90                   	nop
4202ab:	a9 c0 04 00 00       	test   $0x4c0,%eax
4202b0:	74 05                	je     0x4202b7
4202b2:	8b 51 18             	mov    0x18(%ecx),%edx
4202b5:	eb 05                	jmp    0x4202bc
4202b7:	ba 00 10 00 00       	mov    $0x1000,%edx
4202bc:	8b f3                	mov    %ebx,%esi
4202be:	89 55 fc             	mov    %edx,-0x4(%ebp)
4202c1:	0f af f7             	imul   %edi,%esi
4202c4:	8b fe                	mov    %esi,%edi
4202c6:	85 f6                	test   %esi,%esi
4202c8:	0f 84 fe 00 00 00    	je     0x4203cc
4202ce:	8d 59 0c             	lea    0xc(%ecx),%ebx
4202d1:	8b 03                	mov    (%ebx),%eax
4202d3:	90                   	nop
4202d4:	a8 c0                	test   $0xc0,%al
4202d6:	74 3b                	je     0x420313
4202d8:	8b 41 08             	mov    0x8(%ecx),%eax
4202db:	85 c0                	test   %eax,%eax
4202dd:	74 34                	je     0x420313
4202df:	0f 88 ef 00 00 00    	js     0x4203d4
4202e5:	8b 03                	mov    (%ebx),%eax
4202e7:	90                   	nop
4202e8:	a8 01                	test   $0x1,%al
4202ea:	0f 85 ea 00 00 00    	jne    0x4203da
4202f0:	8b 59 08             	mov    0x8(%ecx),%ebx
4202f3:	3b fb                	cmp    %ebx,%edi
4202f5:	73 02                	jae    0x4202f9
4202f7:	8b df                	mov    %edi,%ebx
4202f9:	53                   	push   %ebx
4202fa:	ff 75 08             	push   0x8(%ebp)
4202fd:	ff 31                	push   (%ecx)
4202ff:	e8 3c ab fe ff       	call   0x40ae40
420304:	8b 4d 14             	mov    0x14(%ebp),%ecx
420307:	83 c4 0c             	add    $0xc,%esp
42030a:	2b fb                	sub    %ebx,%edi
42030c:	29 59 08             	sub    %ebx,0x8(%ecx)
42030f:	01 19                	add    %ebx,(%ecx)
420311:	eb 7a                	jmp    0x42038d
420313:	3b fa                	cmp    %edx,%edi
420315:	72 7b                	jb     0x420392
420317:	8b 03                	mov    (%ebx),%eax
420319:	90                   	nop
42031a:	a8 c0                	test   $0xc0,%al
42031c:	74 19                	je     0x420337
42031e:	ff 75 18             	push   0x18(%ebp)
420321:	51                   	push   %ecx
420322:	e8 7d fb ff ff       	call   0x41fea4
420327:	59                   	pop    %ecx
420328:	59                   	pop    %ecx
420329:	85 c0                	test   %eax,%eax
42032b:	0f 85 a9 00 00 00    	jne    0x4203da
420331:	8b 4d 14             	mov    0x14(%ebp),%ecx
420334:	8b 55 fc             	mov    -0x4(%ebp),%edx
420337:	8b c7                	mov    %edi,%eax
420339:	85 d2                	test   %edx,%edx
42033b:	74 0e                	je     0x42034b
42033d:	33 d2                	xor    %edx,%edx
42033f:	f7 75 fc             	divl   -0x4(%ebp)
420342:	8b c7                	mov    %edi,%eax
420344:	2b c2                	sub    %edx,%eax
420346:	89 45 f8             	mov    %eax,-0x8(%ebp)
420349:	eb 03                	jmp    0x42034e
42034b:	89 7d f8             	mov    %edi,-0x8(%ebp)
42034e:	83 f8 fe             	cmp    $0xfffffffe,%eax
420351:	72 06                	jb     0x420359
420353:	6a fe                	push   $0xfffffffe
420355:	58                   	pop    %eax
420356:	89 45 f8             	mov    %eax,-0x8(%ebp)
420359:	ff 75 18             	push   0x18(%ebp)
42035c:	50                   	push   %eax
42035d:	ff 75 08             	push   0x8(%ebp)
420360:	51                   	push   %ecx
420361:	e8 da d4 ff ff       	call   0x41d840
420366:	59                   	pop    %ecx
420367:	50                   	push   %eax
420368:	e8 2f 95 00 00       	call   0x42989c
42036d:	8b d8                	mov    %eax,%ebx
42036f:	83 c4 10             	add    $0x10,%esp
420372:	83 fb ff             	cmp    $0xffffffff,%ebx
420375:	74 71                	je     0x4203e8
420377:	8b 45 f8             	mov    -0x8(%ebp),%eax
42037a:	3b d8                	cmp    %eax,%ebx
42037c:	76 06                	jbe    0x420384
42037e:	8b d8                	mov    %eax,%ebx
420380:	2b fb                	sub    %ebx,%edi
420382:	eb 06                	jmp    0x42038a
420384:	2b fb                	sub    %ebx,%edi
420386:	3b d8                	cmp    %eax,%ebx
420388:	72 5e                	jb     0x4203e8
42038a:	8b 4d 14             	mov    0x14(%ebp),%ecx
42038d:	8b 55 fc             	mov    -0x4(%ebp),%edx
420390:	eb 2f                	jmp    0x4203c1
420392:	8b 45 08             	mov    0x8(%ebp),%eax
420395:	ff 75 18             	push   0x18(%ebp)
420398:	51                   	push   %ecx
420399:	0f be 00             	movsbl (%eax),%eax
42039c:	50                   	push   %eax
42039d:	e8 2b 7e 00 00       	call   0x4281cd
4203a2:	83 c4 0c             	add    $0xc,%esp
4203a5:	83 f8 ff             	cmp    $0xffffffff,%eax
4203a8:	74 30                	je     0x4203da
4203aa:	8b 4d 14             	mov    0x14(%ebp),%ecx
4203ad:	4f                   	dec    %edi
4203ae:	33 db                	xor    %ebx,%ebx
4203b0:	8b 51 18             	mov    0x18(%ecx),%edx
4203b3:	89 55 fc             	mov    %edx,-0x4(%ebp)
4203b6:	85 d2                	test   %edx,%edx
4203b8:	7f 06                	jg     0x4203c0
4203ba:	33 d2                	xor    %edx,%edx
4203bc:	42                   	inc    %edx
4203bd:	89 55 fc             	mov    %edx,-0x4(%ebp)
4203c0:	43                   	inc    %ebx
4203c1:	01 5d 08             	add    %ebx,0x8(%ebp)
4203c4:	85 ff                	test   %edi,%edi
4203c6:	0f 85 02 ff ff ff    	jne    0x4202ce
4203cc:	8b 45 10             	mov    0x10(%ebp),%eax
4203cf:	e9 b8 fe ff ff       	jmp    0x42028c
4203d4:	6a 10                	push   $0x10
4203d6:	58                   	pop    %eax
4203d7:	f0 09 03             	lock or %eax,(%ebx)
4203da:	2b f7                	sub    %edi,%esi
4203dc:	33 d2                	xor    %edx,%edx
4203de:	8b c6                	mov    %esi,%eax
4203e0:	f7 75 0c             	divl   0xc(%ebp)
4203e3:	e9 a4 fe ff ff       	jmp    0x42028c
4203e8:	8b 45 f4             	mov    -0xc(%ebp),%eax
4203eb:	6a 10                	push   $0x10
4203ed:	59                   	pop    %ecx
4203ee:	f0 09 08             	lock or %ecx,(%eax)
4203f1:	eb e7                	jmp    0x4203da
4203f3:	8b ff                	mov    %edi,%edi
4203f5:	55                   	push   %ebp
4203f6:	8b ec                	mov    %esp,%ebp
4203f8:	83 ec 28             	sub    $0x28,%esp
4203fb:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4203fe:	56                   	push   %esi
4203ff:	6a 00                	push   $0x0
420401:	e8 dc cc fe ff       	call   0x40d0e2
420406:	8d 45 d8             	lea    -0x28(%ebp),%eax
420409:	50                   	push   %eax
42040a:	ff 75 14             	push   0x14(%ebp)
42040d:	ff 75 10             	push   0x10(%ebp)
420410:	ff 75 0c             	push   0xc(%ebp)
420413:	ff 75 08             	push   0x8(%ebp)
420416:	e8 ba fd ff ff       	call   0x4201d5
42041b:	83 c4 14             	add    $0x14,%esp
42041e:	8d 4d d8             	lea    -0x28(%ebp),%ecx
420421:	8b f0                	mov    %eax,%esi
420423:	e8 02 cd fe ff       	call   0x40d12a
420428:	8b c6                	mov    %esi,%eax
42042a:	5e                   	pop    %esi
42042b:	c9                   	leave
42042c:	c3                   	ret
42042d:	8b ff                	mov    %edi,%edi
42042f:	55                   	push   %ebp
420430:	8b ec                	mov    %esp,%ebp
420432:	53                   	push   %ebx
420433:	56                   	push   %esi
420434:	8b 75 0c             	mov    0xc(%ebp),%esi
420437:	57                   	push   %edi
420438:	8d 56 0c             	lea    0xc(%esi),%edx
42043b:	8b 02                	mov    (%edx),%eax
42043d:	90                   	nop
42043e:	c1 e8 0c             	shr    $0xc,%eax
420441:	a8 01                	test   $0x1,%al
420443:	75 73                	jne    0x4204b8
420445:	56                   	push   %esi
420446:	e8 f5 d3 ff ff       	call   0x41d840
42044b:	bf d0 d2 43 00       	mov    $0x43d2d0,%edi
420450:	59                   	pop    %ecx
420451:	83 f8 ff             	cmp    $0xffffffff,%eax
420454:	74 1b                	je     0x420471
420456:	83 f8 fe             	cmp    $0xfffffffe,%eax
420459:	74 16                	je     0x420471
42045b:	8b d0                	mov    %eax,%edx
42045d:	8b c8                	mov    %eax,%ecx
42045f:	83 e2 3f             	and    $0x3f,%edx
420462:	c1 f9 06             	sar    $0x6,%ecx
420465:	6b da 38             	imul   $0x38,%edx,%ebx