423440:	ff 75 14             	push   0x14(%ebp)
423443:	8b d7                	mov    %edi,%edx
423445:	8b cb                	mov    %ebx,%ecx
423447:	6a 00                	push   $0x0
423449:	6a 00                	push   $0x0
42344b:	68 7c 34 40 00       	push   $0x40347c
423450:	e8 8f fe ff ff       	call   0x4232e4
423455:	5f                   	pop    %edi
423456:	8b c6                	mov    %esi,%eax
423458:	5e                   	pop    %esi
423459:	5b                   	pop    %ebx
42345a:	5d                   	pop    %ebp
42345b:	c2 14 00             	ret    $0x14
42345e:	8b ff                	mov    %edi,%edi
423460:	55                   	push   %ebp
423461:	8b ec                	mov    %esp,%ebp
423463:	83 e4 f8             	and    $0xfffffff8,%esp
423466:	51                   	push   %ecx
423467:	51                   	push   %ecx
423468:	ff 75 1c             	push   0x1c(%ebp)
42346b:	ff 75 18             	push   0x18(%ebp)
42346e:	ff 75 14             	push   0x14(%ebp)
423471:	ff 75 10             	push   0x10(%ebp)
423474:	ff 75 0c             	push   0xc(%ebp)
423477:	ff 75 08             	push   0x8(%ebp)
42347a:	e8 65 fe ff ff       	call   0x4232e4
42347f:	8b e5                	mov    %ebp,%esp
423481:	5d                   	pop    %ebp
423482:	c2 18 00             	ret    $0x18
423485:	85 c9                	test   %ecx,%ecx
423487:	75 04                	jne    0x42348d
423489:	33 c0                	xor    %eax,%eax
42348b:	40                   	inc    %eax
42348c:	c3                   	ret
42348d:	8d 51 01             	lea    0x1(%ecx),%edx
423490:	8a 01                	mov    (%ecx),%al
423492:	41                   	inc    %ecx
423493:	84 c0                	test   %al,%al
423495:	75 f9                	jne    0x423490
423497:	2b ca                	sub    %edx,%ecx
423499:	8d 41 01             	lea    0x1(%ecx),%eax
42349c:	c3                   	ret
42349d:	85 c9                	test   %ecx,%ecx
42349f:	75 04                	jne    0x4234a5
4234a1:	6a 02                	push   $0x2
4234a3:	58                   	pop    %eax
4234a4:	c3                   	ret
4234a5:	8d 51 02             	lea    0x2(%ecx),%edx
4234a8:	66 8b 01             	mov    (%ecx),%ax
4234ab:	83 c1 02             	add    $0x2,%ecx
4234ae:	66 85 c0             	test   %ax,%ax
4234b1:	75 f5                	jne    0x4234a8
4234b3:	2b ca                	sub    %edx,%ecx
4234b5:	d1 f9                	sar    $1,%ecx
4234b7:	8d 04 4d 02 00 00 00 	lea    0x2(,%ecx,2),%eax
4234be:	c3                   	ret
4234bf:	8b ff                	mov    %edi,%edi
4234c1:	55                   	push   %ebp
4234c2:	8b ec                	mov    %esp,%ebp
4234c4:	51                   	push   %ecx
4234c5:	ff 75 04             	push   0x4(%ebp)
4234c8:	83 ec 0c             	sub    $0xc,%esp
4234cb:	e8 41 ff ff ff       	call   0x423411
4234d0:	5d                   	pop    %ebp
4234d1:	c2 04 00             	ret    $0x4
4234d4:	8b ff                	mov    %edi,%edi
4234d6:	55                   	push   %ebp
4234d7:	8b ec                	mov    %esp,%ebp
4234d9:	ff 75 0c             	push   0xc(%ebp)
4234dc:	6a 01                	push   $0x1
4234de:	ff 75 04             	push   0x4(%ebp)
4234e1:	6a 00                	push   $0x0
4234e3:	6a 00                	push   $0x0
4234e5:	ff 75 08             	push   0x8(%ebp)
4234e8:	e8 71 ff ff ff       	call   0x42345e
4234ed:	5d                   	pop    %ebp
4234ee:	c2 08 00             	ret    $0x8
4234f1:	cc                   	int3
4234f2:	cc                   	int3
4234f3:	cc                   	int3
4234f4:	cc                   	int3
4234f5:	cc                   	int3
4234f6:	cc                   	int3
4234f7:	cc                   	int3
4234f8:	cc                   	int3
4234f9:	cc                   	int3
4234fa:	cc                   	int3
4234fb:	cc                   	int3
4234fc:	cc                   	int3
4234fd:	cc                   	int3
4234fe:	cc                   	int3
4234ff:	cc                   	int3
423500:	8b ff                	mov    %edi,%edi
423502:	56                   	push   %esi
423503:	8b 35 94 90 44 00    	mov    0x449094,%esi
423509:	85 f6                	test   %esi,%esi
42350b:	75 35                	jne    0x423542
42350d:	a1 5c e5 42 00       	mov    0x42e55c,%eax
423512:	85 c0                	test   %eax,%eax
423514:	75 10                	jne    0x423526
423516:	68 c4 34 40 00       	push   $0x4034c4
42351b:	ff 15 74 a1 44 00    	call   *0x44a174
423521:	a3 5c e5 42 00       	mov    %eax,0x42e55c
423526:	68 24 38 40 00       	push   $0x403824
42352b:	50                   	push   %eax
42352c:	ff 15 68 a1 44 00    	call   *0x44a168
423532:	8b f0                	mov    %eax,%esi
423534:	89 35 94 90 44 00    	mov    %esi,0x449094
42353a:	85 f6                	test   %esi,%esi
42353c:	75 04                	jne    0x423542
42353e:	32 c0                	xor    %al,%al
423540:	5e                   	pop    %esi
423541:	c3                   	ret
423542:	8b ce                	mov    %esi,%ecx
423544:	ff 15 c4 a4 44 00    	call   *0x44a4c4
42354a:	ff d6                	call   *%esi
42354c:	5e                   	pop    %esi
42354d:	c3                   	ret
42354e:	8b ff                	mov    %edi,%edi
423550:	55                   	push   %ebp
423551:	8b ec                	mov    %esp,%ebp
423553:	83 ec 0c             	sub    $0xc,%esp
423556:	8b 45 0c             	mov    0xc(%ebp),%eax
423559:	53                   	push   %ebx
42355a:	8b 5d 08             	mov    0x8(%ebp),%ebx
42355d:	56                   	push   %esi
42355e:	8b f1                	mov    %ecx,%esi
423560:	33 c9                	xor    %ecx,%ecx
423562:	57                   	push   %edi
423563:	89 46 04             	mov    %eax,0x4(%esi)
423566:	8b 43 04             	mov    0x4(%ebx),%eax
423569:	89 46 08             	mov    %eax,0x8(%esi)
42356c:	8d 46 0c             	lea    0xc(%esi),%eax
42356f:	89 08                	mov    %ecx,(%eax)
423571:	89 45 fc             	mov    %eax,-0x4(%ebp)
423574:	66 8b 43 20          	mov    0x20(%ebx),%ax
423578:	66 89 46 10          	mov    %ax,0x10(%esi)
42357c:	8a 03                	mov    (%ebx),%al
42357e:	88 46 12             	mov    %al,0x12(%esi)
423581:	8d 46 14             	lea    0x14(%esi),%eax
423584:	89 08                	mov    %ecx,(%eax)
423586:	89 45 f8             	mov    %eax,-0x8(%ebp)
423589:	8b 43 48             	mov    0x48(%ebx),%eax
42358c:	89 46 18             	mov    %eax,0x18(%esi)
42358f:	8b 43 4c             	mov    0x4c(%ebx),%eax
423592:	89 46 1c             	mov    %eax,0x1c(%esi)
423595:	8d 46 20             	lea    0x20(%esi),%eax
423598:	89 08                	mov    %ecx,(%eax)
42359a:	8b 4b 0c             	mov    0xc(%ebx),%ecx
42359d:	89 45 f4             	mov    %eax,-0xc(%ebp)
4235a0:	e8 f8 fe ff ff       	call   0x42349d
4235a5:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
4235a8:	8b f8                	mov    %eax,%edi
4235aa:	e8 d6 fe ff ff       	call   0x423485
4235af:	8b 4b 44             	mov    0x44(%ebx),%ecx
4235b2:	03 f8                	add    %eax,%edi
4235b4:	e8 cc fe ff ff       	call   0x423485
4235b9:	03 f8                	add    %eax,%edi
4235bb:	83 7e 24 00          	cmpl   $0x0,0x24(%esi)
4235bf:	74 05                	je     0x4235c6
4235c1:	39 7e 28             	cmp    %edi,0x28(%esi)
4235c4:	73 2b                	jae    0x4235f1
4235c6:	6a 08                	push   $0x8
4235c8:	8b d7                	mov    %edi,%edx
4235ca:	59                   	pop    %ecx
4235cb:	e8 bd 46 ff ff       	call   0x417c8d
4235d0:	8b d8                	mov    %eax,%ebx
4235d2:	85 db                	test   %ebx,%ebx
4235d4:	74 18                	je     0x4235ee
4235d6:	ff 76 24             	push   0x24(%esi)
4235d9:	6a 00                	push   $0x0
4235db:	ff 15 34 a1 44 00    	call   *0x44a134
4235e1:	50                   	push   %eax
4235e2:	ff 15 3c a1 44 00    	call   *0x44a13c
4235e8:	89 5e 24             	mov    %ebx,0x24(%esi)
4235eb:	89 7e 28             	mov    %edi,0x28(%esi)
4235ee:	8b 5d 08             	mov    0x8(%ebp),%ebx
4235f1:	8b 4e 24             	mov    0x24(%esi),%ecx
4235f4:	85 c9                	test   %ecx,%ecx
4235f6:	74 3e                	je     0x423636
4235f8:	8b 76 28             	mov    0x28(%esi),%esi
4235fb:	ff 75 fc             	push   -0x4(%ebp)
4235fe:	03 f1                	add    %ecx,%esi
423600:	ff 73 1c             	push   0x1c(%ebx)
423603:	8b d6                	mov    %esi,%edx
423605:	e8 ad eb ff ff       	call   0x4221b7
42360a:	ff 75 f8             	push   -0x8(%ebp)
42360d:	8b d6                	mov    %esi,%edx
42360f:	8b c8                	mov    %eax,%ecx
423611:	ff 73 44             	push   0x44(%ebx)
423614:	e8 9e eb ff ff       	call   0x4221b7
423619:	ff 75 f4             	push   -0xc(%ebp)
42361c:	8b d6                	mov    %esi,%edx
42361e:	8b c8                	mov    %eax,%ecx
423620:	ff 73 0c             	push   0xc(%ebx)
423623:	e8 ea eb ff ff       	call   0x422212
423628:	2b f0                	sub    %eax,%esi
42362a:	56                   	push   %esi
42362b:	6a 00                	push   $0x0
42362d:	50                   	push   %eax
42362e:	e8 8a 49 ff ff       	call   0x417fbd
423633:	83 c4 0c             	add    $0xc,%esp
423636:	5f                   	pop    %edi
423637:	5e                   	pop    %esi
423638:	5b                   	pop    %ebx
423639:	c9                   	leave
42363a:	c2 08 00             	ret    $0x8
42363d:	8b ff                	mov    %edi,%edi
42363f:	55                   	push   %ebp
423640:	8b ec                	mov    %esp,%ebp
423642:	56                   	push   %esi
423643:	8b f1                	mov    %ecx,%esi
423645:	57                   	push   %edi
423646:	8b 7e 0c             	mov    0xc(%esi),%edi
423649:	85 ff                	test   %edi,%edi
42364b:	0f 95 c0             	setne  %al
42364e:	0f b6 c0             	movzbl %al,%eax
423651:	50                   	push   %eax
423652:	e8 8f f0 ff ff       	call   0x4226e6
423657:	84 c0                	test   %al,%al
423659:	74 62                	je     0x4236bd
42365b:	85 ff                	test   %edi,%edi
42365d:	8b 7d 08             	mov    0x8(%ebp),%edi
423660:	53                   	push   %ebx
423661:	74 2c                	je     0x42368f
423663:	0f b7 46 14          	movzwl 0x14(%esi),%eax
423667:	8b 4e 10             	mov    0x10(%esi),%ecx
42366a:	6b d0 2c             	imul   $0x2c,%eax,%edx
42366d:	03 d1                	add    %ecx,%edx
42366f:	3b ca                	cmp    %edx,%ecx
423671:	74 1c                	je     0x42368f
423673:	8b 5e 0c             	mov    0xc(%esi),%ebx
423676:	83 c1 08             	add    $0x8,%ecx
423679:	39 59 fc             	cmp    %ebx,-0x4(%ecx)
42367c:	76 07                	jbe    0x423685
42367e:	8b 01                	mov    (%ecx),%eax
423680:	3b 47 04             	cmp    0x4(%edi),%eax
423683:	74 37                	je     0x4236bc
423685:	83 c1 2c             	add    $0x2c,%ecx
423688:	8d 41 f8             	lea    -0x8(%ecx),%eax
42368b:	3b c2                	cmp    %edx,%eax
42368d:	75 ea                	jne    0x423679
42368f:	0f b7 46 16          	movzwl 0x16(%esi),%eax
423693:	33 d2                	xor    %edx,%edx
423695:	0f b7 4e 14          	movzwl 0x14(%esi),%ecx
423699:	40                   	inc    %eax
42369a:	f7 f1                	div    %ecx
42369c:	8b 46 08             	mov    0x8(%esi),%eax
42369f:	33 c9                	xor    %ecx,%ecx
4236a1:	66 89 56 16          	mov    %dx,0x16(%esi)
4236a5:	41                   	inc    %ecx
4236a6:	f0 0f c1 08          	lock xadd %ecx,(%eax)
4236aa:	41                   	inc    %ecx
4236ab:	0f b7 46 16          	movzwl 0x16(%esi),%eax
4236af:	51                   	push   %ecx
4236b0:	6b c8 2c             	imul   $0x2c,%eax,%ecx
4236b3:	57                   	push   %edi
4236b4:	03 4e 10             	add    0x10(%esi),%ecx
4236b7:	e8 92 fe ff ff       	call   0x42354e
4236bc:	5b                   	pop    %ebx
4236bd:	5f                   	pop    %edi
4236be:	5e                   	pop    %esi
4236bf:	5d                   	pop    %ebp
4236c0:	c2 04 00             	ret    $0x4
4236c3:	8b ff                	mov    %edi,%edi
4236c5:	56                   	push   %esi
4236c6:	8b f1                	mov    %ecx,%esi
4236c8:	ff 15 f4 a1 44 00    	call   *0x44a1f4
4236ce:	39 05 d8 90 44 00    	cmp    %eax,0x4490d8
4236d4:	74 38                	je     0x42370e
4236d6:	33 d2                	xor    %edx,%edx
4236d8:	42                   	inc    %edx
4236d9:	f0 0f c1 15 dc 90 44 	lock xadd %edx,0x4490dc
4236e0:	00
4236e1:	42                   	inc    %edx
4236e2:	83 fa 04             	cmp    $0x4,%edx
4236e5:	7d 20                	jge    0x423707
4236e7:	a3 d8 90 44 00       	mov    %eax,0x4490d8
4236ec:	e8 f5 f5 ff ff       	call   0x422ce6
4236f1:	85 c0                	test   %eax,%eax
4236f3:	74 08                	je     0x4236fd
4236f5:	56                   	push   %esi
4236f6:	8b c8                	mov    %eax,%ecx
4236f8:	e8 40 ff ff ff       	call   0x42363d
4236fd:	c7 05 d8 90 44 00 00 	movl   $0x0,0x4490d8
423704:	00 00 00
423707:	f0 ff 0d dc 90 44 00 	lock decl 0x4490dc
42370e:	5e                   	pop    %esi
42370f:	c3                   	ret
423710:	8b ff                	mov    %edi,%edi
423712:	55                   	push   %ebp
423713:	8b ec                	mov    %esp,%ebp
423715:	33 c0                	xor    %eax,%eax
423717:	85 d2                	test   %edx,%edx
423719:	74 08                	je     0x423723
42371b:	81 fa ff ff ff 7f    	cmp    $0x7fffffff,%edx
423721:	76 05                	jbe    0x423728
423723:	b8 57 00 07 80       	mov    $0x80070057,%eax
423728:	85 c0                	test   %eax,%eax
42372a:	78 0c                	js     0x423738
42372c:	51                   	push   %ecx
42372d:	ff 75 08             	push   0x8(%ebp)
423730:	51                   	push   %ecx
423731:	e8 0d 00 00 00       	call   0x423743
423736:	eb 07                	jmp    0x42373f
423738:	85 d2                	test   %edx,%edx
42373a:	74 03                	je     0x42373f
42373c:	c6 01 00             	movb   $0x0,(%ecx)
42373f:	5d                   	pop    %ebp
423740:	c2 04 00             	ret    $0x4
423743:	8b ff                	mov    %edi,%edi
423745:	55                   	push   %ebp
423746:	8b ec                	mov    %esp,%ebp
423748:	85 d2                	test   %edx,%edx
42374a:	74 26                	je     0x423772
42374c:	8b 45 0c             	mov    0xc(%ebp),%eax
42374f:	53                   	push   %ebx
423750:	56                   	push   %esi
423751:	be fe ff ff 7f       	mov    $0x7ffffffe,%esi
423756:	2b c1                	sub    %ecx,%eax
423758:	85 f6                	test   %esi,%esi
42375a:	74 10                	je     0x42376c
42375c:	8a 1c 08             	mov    (%eax,%ecx,1),%bl
42375f:	84 db                	test   %bl,%bl
423761:	74 09                	je     0x42376c
423763:	88 19                	mov    %bl,(%ecx)
423765:	41                   	inc    %ecx
423766:	4e                   	dec    %esi
423767:	83 ea 01             	sub    $0x1,%edx
42376a:	75 ec                	jne    0x423758
42376c:	5e                   	pop    %esi
42376d:	5b                   	pop    %ebx
42376e:	85 d2                	test   %edx,%edx
423770:	75 01                	jne    0x423773
423772:	49                   	dec    %ecx
423773:	f7 da                	neg    %edx
423775:	c6 01 00             	movb   $0x0,(%ecx)
423778:	1b d2                	sbb    %edx,%edx
42377a:	81 e2 86 ff f8 7f    	and    $0x7ff8ff86,%edx
423780:	8d 82 7a 00 07 80    	lea    -0x7ff8ff86(%edx),%eax
423786:	5d                   	pop    %ebp
423787:	c2 0c 00             	ret    $0xc
42378a:	8b ff                	mov    %edi,%edi
42378c:	55                   	push   %ebp
42378d:	8b ec                	mov    %esp,%ebp
42378f:	81 ec 1c 02 00 00    	sub    $0x21c,%esp
423795:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
42379a:	33 c5                	xor    %ebp,%eax
42379c:	89 45 fc             	mov    %eax,-0x4(%ebp)
42379f:	8b 45 08             	mov    0x8(%ebp),%eax