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
4237a2:	56                   	push   %esi
4237a3:	57                   	push   %edi
4237a4:	33 ff                	xor    %edi,%edi
4237a6:	89 85 f0 fd ff ff    	mov    %eax,-0x210(%ebp)
4237ac:	51                   	push   %ecx
4237ad:	be 04 01 00 00       	mov    $0x104,%esi
4237b2:	89 38                	mov    %edi,(%eax)
4237b4:	8b d6                	mov    %esi,%edx
4237b6:	89 78 04             	mov    %edi,0x4(%eax)
4237b9:	8d 8d f4 fd ff ff    	lea    -0x20c(%ebp),%ecx
4237bf:	e8 dc bb fe ff       	call   0x40f3a0
4237c4:	8b d6                	mov    %esi,%edx
4237c6:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
4237cc:	66 39 38             	cmp    %di,(%eax)
4237cf:	74 08                	je     0x4237d9
4237d1:	83 c0 02             	add    $0x2,%eax
4237d4:	83 ea 01             	sub    $0x1,%edx
4237d7:	75 f3                	jne    0x4237cc
4237d9:	8b c6                	mov    %esi,%eax
4237db:	8b ca                	mov    %edx,%ecx
4237dd:	2b c2                	sub    %edx,%eax
4237df:	f7 d9                	neg    %ecx
4237e1:	53                   	push   %ebx
4237e2:	1b c9                	sbb    %ecx,%ecx
4237e4:	23 c8                	and    %eax,%ecx
4237e6:	85 d2                	test   %edx,%edx
4237e8:	74 3e                	je     0x423828
4237ea:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
4237f0:	8d 04 48             	lea    (%eax,%ecx,2),%eax
4237f3:	2b f1                	sub    %ecx,%esi
4237f5:	74 29                	je     0x423820
4237f7:	ba 1c 38 40 00       	mov    $0x40381c,%edx
4237fc:	b9 fe ff ff 7f       	mov    $0x7ffffffe,%ecx
423801:	2b d0                	sub    %eax,%edx
423803:	85 c9                	test   %ecx,%ecx
423805:	74 15                	je     0x42381c
423807:	0f b7 1c 02          	movzwl (%edx,%eax,1),%ebx
42380b:	66 85 db             	test   %bx,%bx
42380e:	74 0c                	je     0x42381c
423810:	66 89 18             	mov    %bx,(%eax)
423813:	83 c0 02             	add    $0x2,%eax
423816:	49                   	dec    %ecx
423817:	83 ee 01             	sub    $0x1,%esi
42381a:	75 e7                	jne    0x423803
42381c:	85 f6                	test   %esi,%esi
42381e:	75 03                	jne    0x423823
423820:	83 e8 02             	sub    $0x2,%eax
423823:	33 c9                	xor    %ecx,%ecx
423825:	66 89 08             	mov    %cx,(%eax)
423828:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
42382e:	50                   	push   %eax
42382f:	57                   	push   %edi
423830:	68 03 00 1f 00       	push   $0x1f0003
423835:	ff 15 8c a2 44 00    	call   *0x44a28c
42383b:	8b f0                	mov    %eax,%esi
42383d:	89 b5 ec fd ff ff    	mov    %esi,-0x214(%ebp)
423843:	85 f6                	test   %esi,%esi
423845:	75 1d                	jne    0x423864
423847:	ff 15 80 a0 44 00    	call   *0x44a080
42384d:	83 f8 02             	cmp    $0x2,%eax
423850:	74 5a                	je     0x4238ac
423852:	51                   	push   %ecx
423853:	8b 4d 04             	mov    0x4(%ebp),%ecx
423856:	ba c9 00 00 00       	mov    $0xc9,%edx
42385b:	e8 5f fc ff ff       	call   0x4234bf
423860:	8b f8                	mov    %eax,%edi
423862:	eb 2e                	jmp    0x423892
423864:	8d 95 e8 fd ff ff    	lea    -0x218(%ebp),%edx
42386a:	89 bd e8 fd ff ff    	mov    %edi,-0x218(%ebp)
423870:	8b ce                	mov    %esi,%ecx
423872:	e8 a8 f4 ff ff       	call   0x422d1f
423877:	8b d8                	mov    %eax,%ebx
423879:	85 db                	test   %ebx,%ebx
42387b:	79 1d                	jns    0x42389a
42387d:	8b 4d 04             	mov    0x4(%ebp),%ecx
423880:	ba cf 00 00 00       	mov    $0xcf,%edx
423885:	53                   	push   %ebx
423886:	68 7c 34 40 00       	push   $0x40347c
42388b:	e8 44 fc ff ff       	call   0x4234d4
423890:	8b fb                	mov    %ebx,%edi
423892:	8b b5 ec fd ff ff    	mov    -0x214(%ebp),%esi
423898:	eb 12                	jmp    0x4238ac
42389a:	8b 8d f0 fd ff ff    	mov    -0x210(%ebp),%ecx
4238a0:	8b 85 e8 fd ff ff    	mov    -0x218(%ebp),%eax
4238a6:	99                   	cltd
4238a7:	89 01                	mov    %eax,(%ecx)
4238a9:	89 51 04             	mov    %edx,0x4(%ecx)
4238ac:	5b                   	pop    %ebx
4238ad:	85 f6                	test   %esi,%esi
4238af:	74 21                	je     0x4238d2
4238b1:	8d 95 f0 fd ff ff    	lea    -0x210(%ebp),%edx
4238b7:	89 b5 f0 fd ff ff    	mov    %esi,-0x210(%ebp)
4238bd:	8d 8d e4 fd ff ff    	lea    -0x21c(%ebp),%ecx
4238c3:	c7 85 e4 fd ff ff 60 	movl   $0x422560,-0x21c(%ebp)
4238ca:	25 42 00
4238cd:	e8 a8 43 ff ff       	call   0x417c7a
4238d2:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4238d5:	8b c7                	mov    %edi,%eax
4238d7:	5f                   	pop    %edi
4238d8:	33 cd                	xor    %ebp,%ecx
4238da:	5e                   	pop    %esi
4238db:	e8 50 32 ff ff       	call   0x416b30
4238e0:	c9                   	leave
4238e1:	c2 08 00             	ret    $0x8
4238e4:	cc                   	int3
4238e5:	cc                   	int3
4238e6:	cc                   	int3
4238e7:	cc                   	int3
4238e8:	cc                   	int3
4238e9:	cc                   	int3
4238ea:	cc                   	int3
4238eb:	cc                   	int3
4238ec:	cc                   	int3
4238ed:	cc                   	int3
4238ee:	cc                   	int3
4238ef:	cc                   	int3
4238f0:	8b ff                	mov    %edi,%edi
4238f2:	55                   	push   %ebp
4238f3:	8b ec                	mov    %esp,%ebp
4238f5:	56                   	push   %esi
4238f6:	68 e4 37 40 00       	push   $0x4037e4
4238fb:	ff 15 74 a1 44 00    	call   *0x44a174
423901:	68 04 38 40 00       	push   $0x403804
423906:	50                   	push   %eax
423907:	ff 15 68 a1 44 00    	call   *0x44a168
42390d:	8b f0                	mov    %eax,%esi
42390f:	85 f6                	test   %esi,%esi
423911:	74 13                	je     0x423926
423913:	ff 75 10             	push   0x10(%ebp)
423916:	8b ce                	mov    %esi,%ecx
423918:	ff 75 0c             	push   0xc(%ebp)
42391b:	ff 75 08             	push   0x8(%ebp)
42391e:	ff 15 c4 a4 44 00    	call   *0x44a4c4
423924:	ff d6                	call   *%esi
423926:	5e                   	pop    %esi
423927:	5d                   	pop    %ebp
423928:	c2 0c 00             	ret    $0xc
42392b:	8b ff                	mov    %edi,%edi
42392d:	55                   	push   %ebp
42392e:	8b ec                	mov    %esp,%ebp
423930:	83 ec 50             	sub    $0x50,%esp
423933:	56                   	push   %esi
423934:	57                   	push   %edi
423935:	8b 3d 8c 90 44 00    	mov    0x44908c,%edi
42393b:	8b f1                	mov    %ecx,%esi
42393d:	85 ff                	test   %edi,%edi
42393f:	74 0b                	je     0x42394c
423941:	56                   	push   %esi
423942:	8b cf                	mov    %edi,%ecx
423944:	ff 15 c4 a4 44 00    	call   *0x44a4c4
42394a:	ff d7                	call   *%edi
42394c:	6a 50                	push   $0x50
42394e:	8d 45 b0             	lea    -0x50(%ebp),%eax
423951:	6a 00                	push   $0x0
423953:	50                   	push   %eax
423954:	e8 64 46 ff ff       	call   0x417fbd
423959:	8b 4e 48             	mov    0x48(%esi),%ecx
42395c:	33 c0                	xor    %eax,%eax
42395e:	40                   	inc    %eax
42395f:	c7 45 b0 09 04 00 c0 	movl   $0xc0000409,-0x50(%ebp)
423966:	83 c4 0c             	add    $0xc,%esp
423969:	89 45 c0             	mov    %eax,-0x40(%ebp)
42396c:	89 45 b4             	mov    %eax,-0x4c(%ebp)
42396f:	c7 45 c4 07 00 00 00 	movl   $0x7,-0x3c(%ebp)
423976:	85 c9                	test   %ecx,%ecx
423978:	75 09                	jne    0x423983
42397a:	50                   	push   %eax
42397b:	8d 4d b0             	lea    -0x50(%ebp),%ecx
42397e:	e8 1a 00 00 00       	call   0x42399d
423983:	8b 46 04             	mov    0x4(%esi),%eax
423986:	89 45 c8             	mov    %eax,-0x38(%ebp)
423989:	8b 46 20             	mov    0x20(%esi),%eax
42398c:	c7 45 c0 03 00 00 00 	movl   $0x3,-0x40(%ebp)
423993:	89 45 cc             	mov    %eax,-0x34(%ebp)
423996:	89 4d bc             	mov    %ecx,-0x44(%ebp)