40267e:	8b 03                	mov    (%ebx),%eax
402680:	b9 01 00 00 00       	mov    $0x1,%ecx
402685:	2b 48 fc             	sub    -0x4(%eax),%ecx
402688:	8b 40 f8             	mov    -0x8(%eax),%eax
40268b:	2b c6                	sub    %esi,%eax
40268d:	0b c8                	or     %eax,%ecx
40268f:	7d 0b                	jge    0x40269c
402691:	56                   	push   %esi
402692:	8b cb                	mov    %ebx,%ecx
402694:	e8 67 00 00 00       	call   0x402700
402699:	8b 55 0c             	mov    0xc(%ebp),%edx
40269c:	8b 03                	mov    (%ebx),%eax
40269e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4026a1:	8d 04 78             	lea    (%eax,%edi,2),%eax
4026a4:	3b f9                	cmp    %ecx,%edi
4026a6:	76 03                	jbe    0x4026ab
4026a8:	8b 45 08             	mov    0x8(%ebp),%eax
4026ab:	03 d2                	add    %edx,%edx
4026ad:	52                   	push   %edx
4026ae:	50                   	push   %eax
4026af:	8b 03                	mov    (%ebx),%eax
4026b1:	8d 0c 48             	lea    (%eax,%ecx,2),%ecx
4026b4:	e8 67 01 00 00       	call   0x402820
4026b9:	8b 03                	mov    (%ebx),%eax
4026bb:	83 c4 08             	add    $0x8,%esp
4026be:	3b 70 f8             	cmp    -0x8(%eax),%esi
4026c1:	7f 14                	jg     0x4026d7
4026c3:	89 70 f4             	mov    %esi,-0xc(%eax)
4026c6:	33 c9                	xor    %ecx,%ecx
4026c8:	8b 03                	mov    (%ebx),%eax
4026ca:	5f                   	pop    %edi
4026cb:	66 89 0c 70          	mov    %cx,(%eax,%esi,2)
4026cf:	5e                   	pop    %esi
4026d0:	5b                   	pop    %ebx
4026d1:	8b e5                	mov    %ebp,%esp
4026d3:	5d                   	pop    %ebp
4026d4:	c2 08 00             	ret    $0x8
4026d7:	68 57 00 07 80       	push   $0x80070057
4026dc:	e8 df ec ff ff       	call   0x4013c0
4026e1:	68 57 00 07 80       	push   $0x80070057
4026e6:	e8 d5 ec ff ff       	call   0x4013c0
4026eb:	68 57 00 07 80       	push   $0x80070057
4026f0:	e8 cb ec ff ff       	call   0x4013c0
4026f5:	cc                   	int3
4026f6:	cc                   	int3
4026f7:	cc                   	int3
4026f8:	cc                   	int3
4026f9:	cc                   	int3
4026fa:	cc                   	int3
4026fb:	cc                   	int3
4026fc:	cc                   	int3
4026fd:	cc                   	int3
4026fe:	cc                   	int3
4026ff:	cc                   	int3
402700:	55                   	push   %ebp
402701:	8b ec                	mov    %esp,%ebp
402703:	56                   	push   %esi
402704:	8b 75 08             	mov    0x8(%ebp),%esi
402707:	57                   	push   %edi
402708:	8b f9                	mov    %ecx,%edi
40270a:	8b 0f                	mov    (%edi),%ecx
40270c:	39 71 f4             	cmp    %esi,-0xc(%ecx)
40270f:	0f 4f 71 f4          	cmovg  -0xc(%ecx),%esi
402713:	83 79 fc 01          	cmpl   $0x1,-0x4(%ecx)
402717:	7e 0e                	jle    0x402727
402719:	56                   	push   %esi
40271a:	8b cf                	mov    %edi,%ecx
40271c:	e8 7f 00 00 00       	call   0x4027a0
402721:	5f                   	pop    %edi
402722:	5e                   	pop    %esi
402723:	5d                   	pop    %ebp
402724:	c2 04 00             	ret    $0x4
402727:	8b 49 f8             	mov    -0x8(%ecx),%ecx
40272a:	3b ce                	cmp    %esi,%ecx
40272c:	7d 25                	jge    0x402753
40272e:	81 f9 00 00 00 40    	cmp    $0x40000000,%ecx
402734:	7e 07                	jle    0x40273d
402736:	b8 00 00 10 00       	mov    $0x100000,%eax
40273b:	eb 07                	jmp    0x402744
40273d:	8b c1                	mov    %ecx,%eax
40273f:	99                   	cltd
402740:	2b c2                	sub    %edx,%eax
402742:	d1 f8                	sar    $1,%eax
402744:	03 c8                	add    %eax,%ecx
402746:	3b ce                	cmp    %esi,%ecx
402748:	0f 4c ce             	cmovl  %esi,%ecx
40274b:	51                   	push   %ecx
40274c:	8b cf                	mov    %edi,%ecx
40274e:	e8 0d 00 00 00       	call   0x402760
402753:	5f                   	pop    %edi
402754:	5e                   	pop    %esi
402755:	5d                   	pop    %ebp
402756:	c2 04 00             	ret    $0x4
402759:	cc                   	int3
40275a:	cc                   	int3
40275b:	cc                   	int3
40275c:	cc                   	int3
40275d:	cc                   	int3
40275e:	cc                   	int3
40275f:	cc                   	int3
402760:	55                   	push   %ebp
402761:	8b ec                	mov    %esp,%ebp
402763:	56                   	push   %esi
402764:	8b 75 08             	mov    0x8(%ebp),%esi
402767:	57                   	push   %edi
402768:	8b f9                	mov    %ecx,%edi
40276a:	8b 17                	mov    (%edi),%edx
40276c:	83 ea 10             	sub    $0x10,%edx
40276f:	8b 0a                	mov    (%edx),%ecx
402771:	39 72 08             	cmp    %esi,0x8(%edx)
402774:	7d 1c                	jge    0x402792
402776:	85 f6                	test   %esi,%esi
402778:	7e 18                	jle    0x402792
40277a:	8b 01                	mov    (%ecx),%eax
40277c:	6a 02                	push   $0x2
40277e:	56                   	push   %esi
40277f:	52                   	push   %edx
402780:	ff 50 08             	call   *0x8(%eax)
402783:	85 c0                	test   %eax,%eax
402785:	74 0b                	je     0x402792
402787:	83 c0 10             	add    $0x10,%eax
40278a:	89 07                	mov    %eax,(%edi)
40278c:	5f                   	pop    %edi
40278d:	5e                   	pop    %esi
40278e:	5d                   	pop    %ebp
40278f:	c2 04 00             	ret    $0x4
402792:	e8 b9 fd ff ff       	call   0x402550
402797:	cc                   	int3
402798:	cc                   	int3
402799:	cc                   	int3
40279a:	cc                   	int3
40279b:	cc                   	int3
40279c:	cc                   	int3
40279d:	cc                   	int3
40279e:	cc                   	int3
40279f:	cc                   	int3
4027a0:	55                   	push   %ebp
4027a1:	8b ec                	mov    %esp,%ebp
4027a3:	83 ec 08             	sub    $0x8,%esp
4027a6:	8b c1                	mov    %ecx,%eax
4027a8:	89 45 f8             	mov    %eax,-0x8(%ebp)
4027ab:	53                   	push   %ebx
4027ac:	56                   	push   %esi
4027ad:	8b 00                	mov    (%eax),%eax
4027af:	8b 48 f0             	mov    -0x10(%eax),%ecx
4027b2:	8d 70 f0             	lea    -0x10(%eax),%esi
4027b5:	8b 5e 04             	mov    0x4(%esi),%ebx
4027b8:	89 45 fc             	mov    %eax,-0x4(%ebp)
4027bb:	57                   	push   %edi
4027bc:	8b 01                	mov    (%ecx),%eax
4027be:	ff 50 10             	call   *0x10(%eax)
4027c1:	8b 7d 08             	mov    0x8(%ebp),%edi
4027c4:	8b c8                	mov    %eax,%ecx
4027c6:	6a 02                	push   $0x2
4027c8:	57                   	push   %edi
4027c9:	8b 10                	mov    (%eax),%edx
4027cb:	ff 12                	call   *(%edx)
4027cd:	89 45 08             	mov    %eax,0x8(%ebp)
4027d0:	85 c0                	test   %eax,%eax
4027d2:	74 46                	je     0x40281a
4027d4:	3b df                	cmp    %edi,%ebx
4027d6:	0f 4c fb             	cmovl  %ebx,%edi
4027d9:	8d 14 7d 02 00 00 00 	lea    0x2(,%edi,2),%edx
4027e0:	52                   	push   %edx
4027e1:	ff 75 fc             	push   -0x4(%ebp)
4027e4:	8d 78 10             	lea    0x10(%eax),%edi
4027e7:	8b cf                	mov    %edi,%ecx
4027e9:	e8 32 00 00 00       	call   0x402820
4027ee:	8b 45 08             	mov    0x8(%ebp),%eax
4027f1:	83 c4 08             	add    $0x8,%esp
4027f4:	89 58 04             	mov    %ebx,0x4(%eax)
4027f7:	83 c8 ff             	or     $0xffffffff,%eax
4027fa:	f0 0f c1 46 0c       	lock xadd %eax,0xc(%esi)
4027ff:	48                   	dec    %eax
402800:	85 c0                	test   %eax,%eax
402802:	7f 08                	jg     0x40280c
402804:	8b 0e                	mov    (%esi),%ecx
402806:	56                   	push   %esi
402807:	8b 01                	mov    (%ecx),%eax
402809:	ff 50 04             	call   *0x4(%eax)
40280c:	8b 45 f8             	mov    -0x8(%ebp),%eax
40280f:	89 38                	mov    %edi,(%eax)
402811:	5f                   	pop    %edi
402812:	5e                   	pop    %esi
402813:	5b                   	pop    %ebx
402814:	8b e5                	mov    %ebp,%esp
402816:	5d                   	pop    %ebp
402817:	c2 04 00             	ret    $0x4
40281a:	e8 31 fd ff ff       	call   0x402550
40281f:	cc                   	int3
402820:	55                   	push   %ebp
402821:	8b ec                	mov    %esp,%ebp
402823:	56                   	push   %esi
402824:	8b 75 0c             	mov    0xc(%ebp),%esi
402827:	57                   	push   %edi
402828:	8b fa                	mov    %edx,%edi
40282a:	85 f6                	test   %esi,%esi
40282c:	75 06                	jne    0x402834
40282e:	5f                   	pop    %edi
40282f:	33 c0                	xor    %eax,%eax
402831:	5e                   	pop    %esi
402832:	5d                   	pop    %ebp
402833:	c3                   	ret
402834:	85 c9                	test   %ecx,%ecx
402836:	75 19                	jne    0x402851
402838:	e8 ca 54 00 00       	call   0x407d07
40283d:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
402843:	e8 e6 53 00 00       	call   0x407c2e
402848:	5f                   	pop    %edi
402849:	b8 16 00 00 00       	mov    $0x16,%eax
40284e:	5e                   	pop    %esi
40284f:	5d                   	pop    %ebp
402850:	c3                   	ret
402851:	53                   	push   %ebx
402852:	8b 5d 08             	mov    0x8(%ebp),%ebx
402855:	85 db                	test   %ebx,%ebx
402857:	74 16                	je     0x40286f
402859:	3b fe                	cmp    %esi,%edi
40285b:	72 12                	jb     0x40286f
40285d:	56                   	push   %esi
40285e:	53                   	push   %ebx
40285f:	51                   	push   %ecx
402860:	e8 7b 5c 01 00       	call   0x4184e0
402865:	83 c4 0c             	add    $0xc,%esp
402868:	33 c0                	xor    %eax,%eax
40286a:	5b                   	pop    %ebx
40286b:	5f                   	pop    %edi
40286c:	5e                   	pop    %esi
40286d:	5d                   	pop    %ebp
40286e:	c3                   	ret
40286f:	57                   	push   %edi
402870:	6a 00                	push   $0x0
402872:	51                   	push   %ecx
402873:	e8 e8 21 00 00       	call   0x404a60
402878:	83 c4 0c             	add    $0xc,%esp
40287b:	85 db                	test   %ebx,%ebx
40287d:	75 1a                	jne    0x402899
40287f:	e8 83 54 00 00       	call   0x407d07
402884:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40288a:	e8 9f 53 00 00       	call   0x407c2e
40288f:	5b                   	pop    %ebx
402890:	5f                   	pop    %edi
402891:	b8 16 00 00 00       	mov    $0x16,%eax
402896:	5e                   	pop    %esi
402897:	5d                   	pop    %ebp
402898:	c3                   	ret
402899:	3b fe                	cmp    %esi,%edi
40289b:	73 f2                	jae    0x40288f
40289d:	e8 65 54 00 00       	call   0x407d07
4028a2:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
4028a8:	e8 81 53 00 00       	call   0x407c2e
4028ad:	5b                   	pop    %ebx
4028ae:	5f                   	pop    %edi
4028af:	b8 22 00 00 00       	mov    $0x22,%eax
4028b4:	5e                   	pop    %esi
4028b5:	5d                   	pop    %ebp
4028b6:	c3                   	ret
4028b7:	cc                   	int3
4028b8:	cc                   	int3
4028b9:	cc                   	int3
4028ba:	cc                   	int3
4028bb:	cc                   	int3
4028bc:	cc                   	int3
4028bd:	cc                   	int3
4028be:	cc                   	int3
4028bf:	cc                   	int3
4028c0:	55                   	push   %ebp
4028c1:	8b ec                	mov    %esp,%ebp
4028c3:	56                   	push   %esi
4028c4:	8b f1                	mov    %ecx,%esi
4028c6:	0f 57 c0             	xorps  %xmm0,%xmm0
4028c9:	8d 46 04             	lea    0x4(%esi),%eax
4028cc:	50                   	push   %eax
4028cd:	c7 06 24 b2 41 00    	movl   $0x41b224,(%esi)
4028d3:	66 0f d6 00          	movq   %xmm0,(%eax)
4028d7:	8b 45 08             	mov    0x8(%ebp),%eax
4028da:	83 c0 04             	add    $0x4,%eax
4028dd:	50                   	push   %eax
4028de:	e8 d2 1b 00 00       	call   0x4044b5
4028e3:	83 c4 08             	add    $0x8,%esp
4028e6:	8b c6                	mov    %esi,%eax
4028e8:	5e                   	pop    %esi
4028e9:	5d                   	pop    %ebp
4028ea:	c2 04 00             	ret    $0x4
4028ed:	cc                   	int3
4028ee:	cc                   	int3
4028ef:	cc                   	int3
4028f0:	8b 49 04             	mov    0x4(%ecx),%ecx
4028f3:	b8 b0 0c 42 00       	mov    $0x420cb0,%eax
4028f8:	85 c9                	test   %ecx,%ecx
4028fa:	0f 45 c1             	cmovne %ecx,%eax
4028fd:	c3                   	ret
4028fe:	cc                   	int3
4028ff:	cc                   	int3
402900:	55                   	push   %ebp
402901:	8b ec                	mov    %esp,%ebp
402903:	56                   	push   %esi
402904:	8b f1                	mov    %ecx,%esi
402906:	8d 46 04             	lea    0x4(%esi),%eax
402909:	c7 06 24 b2 41 00    	movl   $0x41b224,(%esi)
40290f:	50                   	push   %eax
402910:	e8 03 1c 00 00       	call   0x404518
402915:	83 c4 04             	add    $0x4,%esp
402918:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
40291c:	74 0b                	je     0x402929
40291e:	6a 0c                	push   $0xc
402920:	56                   	push   %esi
402921:	e8 d1 08 00 00       	call   0x4031f7
402926:	83 c4 08             	add    $0x8,%esp
402929:	8b c6                	mov    %esi,%eax
40292b:	5e                   	pop    %esi
40292c:	5d                   	pop    %ebp
40292d:	c2 04 00             	ret    $0x4
402930:	55                   	push   %ebp
402931:	8b ec                	mov    %esp,%ebp
402933:	6a ff                	push   $0xffffffff
402935:	68 1b a2 41 00       	push   $0x41a21b
40293a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
402940:	50                   	push   %eax
402941:	81 ec 20 02 00 00    	sub    $0x220,%esp
402947:	a1 0c 30 42 00       	mov    0x42300c,%eax
40294c:	33 c5                	xor    %ebp,%eax
40294e:	89 45 f0             	mov    %eax,-0x10(%ebp)
402951:	53                   	push   %ebx
402952:	56                   	push   %esi
402953:	57                   	push   %edi
402954:	50                   	push   %eax
402955:	8d 45 f4             	lea    -0xc(%ebp),%eax
402958:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40295e:	8b 5d 08             	mov    0x8(%ebp),%ebx
402961:	33 f6                	xor    %esi,%esi
402963:	8b 45 0c             	mov    0xc(%ebp),%eax
402966:	89 85 e4 fd ff ff    	mov    %eax,-0x21c(%ebp)
40296c:	85 db                	test   %ebx,%ebx
40296e:	7e 1c                	jle    0x40298c
402970:	ff 34 b0             	push   (%eax,%esi,4)
402973:	56                   	push   %esi
402974:	68 c4 0c 42 00       	push   $0x420cc4
402979:	e8 f2 01 00 00       	call   0x402b70
40297e:	8b 85 e4 fd ff ff    	mov    -0x21c(%ebp),%eax
402984:	46                   	inc    %esi
402985:	83 c4 0c             	add    $0xc,%esp
402988:	3b f3                	cmp    %ebx,%esi
40298a:	7c e4                	jl     0x402970
40298c:	83 fb 01             	cmp    $0x1,%ebx
40298f:	0f 8c bb 01 00 00    	jl     0x402b50
402995:	33 ff                	xor    %edi,%edi
402997:	85 db                	test   %ebx,%ebx
402999:	0f 8e b1 01 00 00    	jle    0x402b50
40299f:	8b b5 e4 fd ff ff    	mov    -0x21c(%ebp),%esi