42437b:	8b e5                	mov    %ebp,%esp
42437d:	5d                   	pop    %ebp
42437e:	c3                   	ret
42437f:	33 c0                	xor    %eax,%eax
424381:	50                   	push   %eax
424382:	50                   	push   %eax
424383:	50                   	push   %eax
424384:	50                   	push   %eax
424385:	50                   	push   %eax
424386:	e8 84 79 fe ff       	call   0x40bd0f
42438b:	cc                   	int3
42438c:	8b ff                	mov    %edi,%edi
42438e:	55                   	push   %ebp
42438f:	8b ec                	mov    %esp,%ebp
424391:	56                   	push   %esi
424392:	8b 75 14             	mov    0x14(%ebp),%esi
424395:	85 f6                	test   %esi,%esi
424397:	75 04                	jne    0x42439d
424399:	33 c0                	xor    %eax,%eax
42439b:	eb 6d                	jmp    0x42440a
42439d:	8b 45 08             	mov    0x8(%ebp),%eax
4243a0:	85 c0                	test   %eax,%eax
4243a2:	75 13                	jne    0x4243b7
4243a4:	e8 c2 06 ff ff       	call   0x414a6b
4243a9:	6a 16                	push   $0x16
4243ab:	5e                   	pop    %esi
4243ac:	89 30                	mov    %esi,(%eax)
4243ae:	e8 2f 79 fe ff       	call   0x40bce2
4243b3:	8b c6                	mov    %esi,%eax
4243b5:	eb 53                	jmp    0x42440a
4243b7:	57                   	push   %edi
4243b8:	8b 7d 10             	mov    0x10(%ebp),%edi
4243bb:	85 ff                	test   %edi,%edi
4243bd:	74 14                	je     0x4243d3
4243bf:	39 75 0c             	cmp    %esi,0xc(%ebp)
4243c2:	72 0f                	jb     0x4243d3
4243c4:	56                   	push   %esi
4243c5:	57                   	push   %edi
4243c6:	50                   	push   %eax
4243c7:	e8 94 40 fe ff       	call   0x408460
4243cc:	83 c4 0c             	add    $0xc,%esp
4243cf:	33 c0                	xor    %eax,%eax
4243d1:	eb 36                	jmp    0x424409
4243d3:	ff 75 0c             	push   0xc(%ebp)
4243d6:	6a 00                	push   $0x0
4243d8:	50                   	push   %eax
4243d9:	e8 02 46 fe ff       	call   0x4089e0
4243de:	83 c4 0c             	add    $0xc,%esp
4243e1:	85 ff                	test   %edi,%edi
4243e3:	75 09                	jne    0x4243ee
4243e5:	e8 81 06 ff ff       	call   0x414a6b
4243ea:	6a 16                	push   $0x16
4243ec:	eb 0c                	jmp    0x4243fa
4243ee:	39 75 0c             	cmp    %esi,0xc(%ebp)
4243f1:	73 13                	jae    0x424406
4243f3:	e8 73 06 ff ff       	call   0x414a6b
4243f8:	6a 22                	push   $0x22
4243fa:	5e                   	pop    %esi
4243fb:	89 30                	mov    %esi,(%eax)
4243fd:	e8 e0 78 fe ff       	call   0x40bce2
424402:	8b c6                	mov    %esi,%eax
424404:	eb 03                	jmp    0x424409
424406:	6a 16                	push   $0x16
424408:	58                   	pop    %eax
424409:	5f                   	pop    %edi
42440a:	5e                   	pop    %esi
42440b:	5d                   	pop    %ebp
42440c:	c3                   	ret
42440d:	8b ff                	mov    %edi,%edi
42440f:	55                   	push   %ebp
424410:	8b ec                	mov    %esp,%ebp
424412:	57                   	push   %edi
424413:	ff 75 0c             	push   0xc(%ebp)
424416:	e8 64 63 ff ff       	call   0x41a77f
42441b:	59                   	pop    %ecx
42441c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
42441f:	8b f8                	mov    %eax,%edi
424421:	8b 49 0c             	mov    0xc(%ecx),%ecx
424424:	f6 c1 06             	test   $0x6,%cl
424427:	75 1f                	jne    0x424448
424429:	e8 3d 06 ff ff       	call   0x414a6b
42442e:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
424434:	8b 45 0c             	mov    0xc(%ebp),%eax
424437:	6a 10                	push   $0x10
424439:	59                   	pop    %ecx
42443a:	83 c0 0c             	add    $0xc,%eax
42443d:	f0 09 08             	lock or %ecx,(%eax)
424440:	83 c8 ff             	or     $0xffffffff,%eax
424443:	e9 d3 00 00 00       	jmp    0x42451b
424448:	8b 45 0c             	mov    0xc(%ebp),%eax
42444b:	8b 40 0c             	mov    0xc(%eax),%eax
42444e:	c1 e8 0c             	shr    $0xc,%eax
424451:	a8 01                	test   $0x1,%al
424453:	74 0d                	je     0x424462
424455:	e8 11 06 ff ff       	call   0x414a6b
42445a:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
424460:	eb d2                	jmp    0x424434
424462:	8b 45 0c             	mov    0xc(%ebp),%eax
424465:	8b 40 0c             	mov    0xc(%eax),%eax
424468:	a8 01                	test   $0x1,%al
42446a:	74 28                	je     0x424494
42446c:	8b 45 0c             	mov    0xc(%ebp),%eax
42446f:	83 60 08 00          	andl   $0x0,0x8(%eax)
424473:	8b 45 0c             	mov    0xc(%ebp),%eax
424476:	8b 40 0c             	mov    0xc(%eax),%eax
424479:	c1 e8 03             	shr    $0x3,%eax
42447c:	a8 01                	test   $0x1,%al
42447e:	8b 45 0c             	mov    0xc(%ebp),%eax
424481:	74 b4                	je     0x424437
424483:	8b 48 04             	mov    0x4(%eax),%ecx
424486:	89 08                	mov    %ecx,(%eax)
424488:	8b 45 0c             	mov    0xc(%ebp),%eax
42448b:	6a fe                	push   $0xfffffffe
42448d:	59                   	pop    %ecx
42448e:	83 c0 0c             	add    $0xc,%eax
424491:	f0 21 08             	lock and %ecx,(%eax)
424494:	8b 45 0c             	mov    0xc(%ebp),%eax
424497:	53                   	push   %ebx
424498:	6a 02                	push   $0x2
42449a:	5b                   	pop    %ebx
42449b:	83 c0 0c             	add    $0xc,%eax
42449e:	f0 09 18             	lock or %ebx,(%eax)
4244a1:	8b 45 0c             	mov    0xc(%ebp),%eax
4244a4:	6a f7                	push   $0xfffffff7
4244a6:	59                   	pop    %ecx
4244a7:	83 c0 0c             	add    $0xc,%eax
4244aa:	f0 21 08             	lock and %ecx,(%eax)
4244ad:	8b 45 0c             	mov    0xc(%ebp),%eax
4244b0:	83 60 08 00          	andl   $0x0,0x8(%eax)
4244b4:	8b 45 0c             	mov    0xc(%ebp),%eax
4244b7:	8b 40 0c             	mov    0xc(%eax),%eax
4244ba:	a9 c0 04 00 00       	test   $0x4c0,%eax
4244bf:	75 33                	jne    0x4244f4
4244c1:	56                   	push   %esi
4244c2:	8b 75 0c             	mov    0xc(%ebp),%esi
4244c5:	6a 01                	push   $0x1
4244c7:	e8 59 79 fe ff       	call   0x40be25
4244cc:	59                   	pop    %ecx
4244cd:	3b f0                	cmp    %eax,%esi
4244cf:	74 0e                	je     0x4244df
4244d1:	8b 75 0c             	mov    0xc(%ebp),%esi
4244d4:	53                   	push   %ebx
4244d5:	e8 4b 79 fe ff       	call   0x40be25
4244da:	59                   	pop    %ecx
4244db:	3b f0                	cmp    %eax,%esi
4244dd:	75 0b                	jne    0x4244ea
4244df:	57                   	push   %edi
4244e0:	e8 04 03 00 00       	call   0x4247e9
4244e5:	59                   	pop    %ecx
4244e6:	85 c0                	test   %eax,%eax
4244e8:	75 09                	jne    0x4244f3
4244ea:	ff 75 0c             	push   0xc(%ebp)
4244ed:	e8 4d 03 00 00       	call   0x42483f
4244f2:	59                   	pop    %ecx
4244f3:	5e                   	pop    %esi
4244f4:	ff 75 0c             	push   0xc(%ebp)
4244f7:	8b 5d 08             	mov    0x8(%ebp),%ebx
4244fa:	53                   	push   %ebx
4244fb:	e8 33 01 00 00       	call   0x424633
424500:	59                   	pop    %ecx
424501:	59                   	pop    %ecx
424502:	84 c0                	test   %al,%al
424504:	75 11                	jne    0x424517
424506:	8b 45 0c             	mov    0xc(%ebp),%eax
424509:	6a 10                	push   $0x10
42450b:	59                   	pop    %ecx
42450c:	83 c0 0c             	add    $0xc,%eax
42450f:	f0 09 08             	lock or %ecx,(%eax)
424512:	83 c8 ff             	or     $0xffffffff,%eax
424515:	eb 03                	jmp    0x42451a
424517:	0f b6 c3             	movzbl %bl,%eax
42451a:	5b                   	pop    %ebx
42451b:	5f                   	pop    %edi
42451c:	5d                   	pop    %ebp
42451d:	c3                   	ret
42451e:	8b ff                	mov    %edi,%edi
424520:	55                   	push   %ebp
424521:	8b ec                	mov    %esp,%ebp
424523:	57                   	push   %edi
424524:	ff 75 0c             	push   0xc(%ebp)
424527:	e8 53 62 ff ff       	call   0x41a77f
42452c:	59                   	pop    %ecx
42452d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
424530:	8b f8                	mov    %eax,%edi
424532:	8b 49 0c             	mov    0xc(%ecx),%ecx
424535:	f6 c1 06             	test   $0x6,%cl
424538:	75 21                	jne    0x42455b
42453a:	e8 2c 05 ff ff       	call   0x414a6b
42453f:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
424545:	8b 45 0c             	mov    0xc(%ebp),%eax
424548:	6a 10                	push   $0x10
42454a:	59                   	pop    %ecx
42454b:	83 c0 0c             	add    $0xc,%eax
42454e:	f0 09 08             	lock or %ecx,(%eax)
424551:	b8 ff ff 00 00       	mov    $0xffff,%eax
424556:	e9 d5 00 00 00       	jmp    0x424630
42455b:	8b 45 0c             	mov    0xc(%ebp),%eax
42455e:	8b 40 0c             	mov    0xc(%eax),%eax
424561:	c1 e8 0c             	shr    $0xc,%eax
424564:	a8 01                	test   $0x1,%al
424566:	74 0d                	je     0x424575
424568:	e8 fe 04 ff ff       	call   0x414a6b
42456d:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
424573:	eb d0                	jmp    0x424545
424575:	8b 45 0c             	mov    0xc(%ebp),%eax
424578:	8b 40 0c             	mov    0xc(%eax),%eax
42457b:	a8 01                	test   $0x1,%al
42457d:	74 28                	je     0x4245a7
42457f:	8b 45 0c             	mov    0xc(%ebp),%eax
424582:	83 60 08 00          	andl   $0x0,0x8(%eax)
424586:	8b 45 0c             	mov    0xc(%ebp),%eax
424589:	8b 40 0c             	mov    0xc(%eax),%eax
42458c:	c1 e8 03             	shr    $0x3,%eax
42458f:	a8 01                	test   $0x1,%al
424591:	8b 45 0c             	mov    0xc(%ebp),%eax
424594:	74 b2                	je     0x424548
424596:	8b 48 04             	mov    0x4(%eax),%ecx
424599:	89 08                	mov    %ecx,(%eax)
42459b:	8b 45 0c             	mov    0xc(%ebp),%eax
42459e:	6a fe                	push   $0xfffffffe
4245a0:	59                   	pop    %ecx
4245a1:	83 c0 0c             	add    $0xc,%eax
4245a4:	f0 21 08             	lock and %ecx,(%eax)
4245a7:	8b 45 0c             	mov    0xc(%ebp),%eax
4245aa:	53                   	push   %ebx
4245ab:	56                   	push   %esi
4245ac:	6a 02                	push   $0x2
4245ae:	5b                   	pop    %ebx
4245af:	83 c0 0c             	add    $0xc,%eax
4245b2:	f0 09 18             	lock or %ebx,(%eax)
4245b5:	8b 45 0c             	mov    0xc(%ebp),%eax
4245b8:	6a f7                	push   $0xfffffff7
4245ba:	59                   	pop    %ecx
4245bb:	83 c0 0c             	add    $0xc,%eax
4245be:	f0 21 08             	lock and %ecx,(%eax)
4245c1:	8b 45 0c             	mov    0xc(%ebp),%eax
4245c4:	83 60 08 00          	andl   $0x0,0x8(%eax)
4245c8:	8b 45 0c             	mov    0xc(%ebp),%eax
4245cb:	8b 40 0c             	mov    0xc(%eax),%eax
4245ce:	a9 c0 04 00 00       	test   $0x4c0,%eax
4245d3:	75 31                	jne    0x424606
4245d5:	8b 75 0c             	mov    0xc(%ebp),%esi
4245d8:	6a 01                	push   $0x1
4245da:	e8 46 78 fe ff       	call   0x40be25
4245df:	59                   	pop    %ecx
4245e0:	3b f0                	cmp    %eax,%esi
4245e2:	74 0e                	je     0x4245f2
4245e4:	8b 75 0c             	mov    0xc(%ebp),%esi
4245e7:	53                   	push   %ebx
4245e8:	e8 38 78 fe ff       	call   0x40be25
4245ed:	59                   	pop    %ecx
4245ee:	3b f0                	cmp    %eax,%esi
4245f0:	75 0b                	jne    0x4245fd
4245f2:	57                   	push   %edi
4245f3:	e8 f1 01 00 00       	call   0x4247e9
4245f8:	59                   	pop    %ecx
4245f9:	85 c0                	test   %eax,%eax
4245fb:	75 09                	jne    0x424606
4245fd:	ff 75 0c             	push   0xc(%ebp)
424600:	e8 3a 02 00 00       	call   0x42483f
424605:	59                   	pop    %ecx
424606:	ff 75 0c             	push   0xc(%ebp)
424609:	8b 75 08             	mov    0x8(%ebp),%esi
42460c:	56                   	push   %esi
42460d:	e8 ed 00 00 00       	call   0x4246ff
424612:	59                   	pop    %ecx
424613:	59                   	pop    %ecx
424614:	84 c0                	test   %al,%al
424616:	75 13                	jne    0x42462b
424618:	8b 45 0c             	mov    0xc(%ebp),%eax
42461b:	6a 10                	push   $0x10
42461d:	59                   	pop    %ecx
42461e:	83 c0 0c             	add    $0xc,%eax
424621:	f0 09 08             	lock or %ecx,(%eax)
424624:	b8 ff ff 00 00       	mov    $0xffff,%eax
424629:	eb 03                	jmp    0x42462e
42462b:	0f b7 c6             	movzwl %si,%eax
42462e:	5e                   	pop    %esi
42462f:	5b                   	pop    %ebx
424630:	5f                   	pop    %edi
424631:	5d                   	pop    %ebp
424632:	c3                   	ret
424633:	8b ff                	mov    %edi,%edi
424635:	55                   	push   %ebp
424636:	8b ec                	mov    %esp,%ebp
424638:	56                   	push   %esi
424639:	57                   	push   %edi
42463a:	ff 75 0c             	push   0xc(%ebp)
42463d:	e8 3d 61 ff ff       	call   0x41a77f
424642:	59                   	pop    %ecx
424643:	8b 4d 0c             	mov    0xc(%ebp),%ecx
424646:	8b d0                	mov    %eax,%edx
424648:	8b 49 0c             	mov    0xc(%ecx),%ecx
42464b:	f6 c1 c0             	test   $0xc0,%cl
42464e:	0f 84 92 00 00 00    	je     0x4246e6
424654:	8b 4d 0c             	mov    0xc(%ebp),%ecx
424657:	33 ff                	xor    %edi,%edi
424659:	8b 41 04             	mov    0x4(%ecx),%eax
42465c:	8b 31                	mov    (%ecx),%esi
42465e:	2b f0                	sub    %eax,%esi
424660:	40                   	inc    %eax
424661:	89 01                	mov    %eax,(%ecx)
424663:	8b 45 0c             	mov    0xc(%ebp),%eax
424666:	8b 48 18             	mov    0x18(%eax),%ecx
424669:	49                   	dec    %ecx
42466a:	89 48 08             	mov    %ecx,0x8(%eax)
42466d:	85 f6                	test   %esi,%esi
42466f:	7e 26                	jle    0x424697
424671:	8b 45 0c             	mov    0xc(%ebp),%eax
424674:	56                   	push   %esi
424675:	ff 70 04             	push   0x4(%eax)
424678:	52                   	push   %edx
424679:	e8 95 e5 ff ff       	call   0x422c13
42467e:	83 c4 0c             	add    $0xc,%esp
424681:	8b f8                	mov    %eax,%edi
424683:	8b 45 0c             	mov    0xc(%ebp),%eax
424686:	8b 48 04             	mov    0x4(%eax),%ecx
424689:	8a 45 08             	mov    0x8(%ebp),%al
42468c:	88 01                	mov    %al,(%ecx)
42468e:	33 c0                	xor    %eax,%eax
424690:	3b fe                	cmp    %esi,%edi
424692:	0f 94 c0             	sete   %al
424695:	eb 64                	jmp    0x4246fb
424697:	83 fa ff             	cmp    $0xffffffff,%edx
42469a:	74 1b                	je     0x4246b7
42469c:	83 fa fe             	cmp    $0xfffffffe,%edx
42469f:	74 16                	je     0x4246b7
4246a1:	8b c2                	mov    %edx,%eax
4246a3:	8b ca                	mov    %edx,%ecx
4246a5:	83 e0 3f             	and    $0x3f,%eax
4246a8:	c1 f9 06             	sar    $0x6,%ecx
4246ab:	6b c0 30             	imul   $0x30,%eax,%eax
4246ae:	03 04 8d c0 9d 83 02 	add    0x2839dc0(,%ecx,4),%eax
4246b5:	eb 05                	jmp    0x4246bc
4246b7:	b8 a8 bb 43 00       	mov    $0x43bba8,%eax
4246bc:	f6 40 28 20          	testb  $0x20,0x28(%eax)
4246c0:	74 c1                	je     0x424683
4246c2:	6a 02                	push   $0x2
4246c4:	57                   	push   %edi
4246c5:	57                   	push   %edi
4246c6:	52                   	push   %edx
4246c7:	e8 08 15 00 00       	call   0x425bd4
4246cc:	23 c2                	and    %edx,%eax
4246ce:	83 c4 10             	add    $0x10,%esp
4246d1:	83 f8 ff             	cmp    $0xffffffff,%eax
4246d4:	75 ad                	jne    0x424683
4246d6:	8b 45 0c             	mov    0xc(%ebp),%eax
4246d9:	6a 10                	push   $0x10
4246db:	59                   	pop    %ecx
4246dc:	83 c0 0c             	add    $0xc,%eax