504832:	8b 40 0c             	mov    0xc(%eax),%eax
504835:	0f bf 04 48          	movswl (%eax,%ecx,2),%eax
504839:	c1 e8 02             	shr    $0x2,%eax
50483c:	a8 01                	test   $0x1,%al
50483e:	75 09                	jne    0x504849
504840:	ff 07                	incl   (%edi)
504842:	8b 07                	mov    (%edi),%eax
504844:	80 38 00             	cmpb   $0x0,(%eax)
504847:	75 98                	jne    0x5047e1
504849:	5e                   	pop    %esi
50484a:	5b                   	pop    %ebx
50484b:	5f                   	pop    %edi
50484c:	83 c4 08             	add    $0x8,%esp
50484f:	c3                   	ret
504850:	cc                   	int3
504851:	cc                   	int3
504852:	cc                   	int3
504853:	cc                   	int3
504854:	cc                   	int3
504855:	cc                   	int3
504856:	cc                   	int3
504857:	cc                   	int3
504858:	cc                   	int3
504859:	cc                   	int3
50485a:	cc                   	int3
50485b:	cc                   	int3
50485c:	cc                   	int3
50485d:	cc                   	int3
50485e:	cc                   	int3
50485f:	cc                   	int3
504860:	cc                   	int3
504861:	cc                   	int3
504862:	cc                   	int3
504863:	cc                   	int3
504864:	cc                   	int3
504865:	cc                   	int3
504866:	cc                   	int3
504867:	cc                   	int3
504868:	cc                   	int3
504869:	cc                   	int3
50486a:	cc                   	int3
50486b:	cc                   	int3
50486c:	cc                   	int3
50486d:	cc                   	int3
50486e:	cc                   	int3
50486f:	cc                   	int3
504870:	83 ec 08             	sub    $0x8,%esp
504873:	57                   	push   %edi
504874:	8b 7c 24 10          	mov    0x10(%esp),%edi
504878:	8b 07                	mov    (%edi),%eax
50487a:	80 38 00             	cmpb   $0x0,(%eax)
50487d:	74 67                	je     0x5048e6
50487f:	53                   	push   %ebx
504880:	56                   	push   %esi
504881:	8b 07                	mov    (%edi),%eax
504883:	8a 00                	mov    (%eax),%al
504885:	88 44 24 18          	mov    %al,0x18(%esp)
504889:	8d 44 24 0c          	lea    0xc(%esp),%eax
50488d:	50                   	push   %eax
50488e:	e8 e5 67 f0 ff       	call   0x40b078
504893:	8b 74 24 14          	mov    0x14(%esp),%esi
504897:	83 c4 04             	add    $0x4,%esp
50489a:	8b 18                	mov    (%eax),%ebx
50489c:	83 c3 44             	add    $0x44,%ebx
50489f:	85 f6                	test   %esi,%esi
5048a1:	74 21                	je     0x5048c4
5048a3:	83 c8 ff             	or     $0xffffffff,%eax
5048a6:	f0 0f c1 46 04       	lock xadd %eax,0x4(%esi)
5048ab:	75 17                	jne    0x5048c4
5048ad:	8b 06                	mov    (%esi),%eax
5048af:	8b ce                	mov    %esi,%ecx
5048b1:	ff 10                	call   *(%eax)
5048b3:	83 c8 ff             	or     $0xffffffff,%eax
5048b6:	f0 0f c1 46 08       	lock xadd %eax,0x8(%esi)
5048bb:	75 07                	jne    0x5048c4
5048bd:	8b 06                	mov    (%esi),%eax
5048bf:	8b ce                	mov    %esi,%ecx
5048c1:	ff 50 04             	call   *0x4(%eax)
5048c4:	53                   	push   %ebx
5048c5:	e8 1f c7 f2 ff       	call   0x430fe9
5048ca:	0f b6 4c 24 1c       	movzbl 0x1c(%esp),%ecx
5048cf:	83 c4 04             	add    $0x4,%esp
5048d2:	8b 40 0c             	mov    0xc(%eax),%eax
5048d5:	f6 04 48 48          	testb  $0x48,(%eax,%ecx,2)
5048d9:	74 09                	je     0x5048e4
5048db:	ff 07                	incl   (%edi)
5048dd:	8b 07                	mov    (%edi),%eax
5048df:	80 38 00             	cmpb   $0x0,(%eax)
5048e2:	75 9d                	jne    0x504881
5048e4:	5e                   	pop    %esi
5048e5:	5b                   	pop    %ebx
5048e6:	5f                   	pop    %edi
5048e7:	83 c4 08             	add    $0x8,%esp
5048ea:	c3                   	ret
5048eb:	cc                   	int3
5048ec:	cc                   	int3
5048ed:	cc                   	int3
5048ee:	cc                   	int3
5048ef:	cc                   	int3
5048f0:	cc                   	int3
5048f1:	cc                   	int3
5048f2:	cc                   	int3
5048f3:	cc                   	int3
5048f4:	cc                   	int3
5048f5:	cc                   	int3
5048f6:	cc                   	int3
5048f7:	cc                   	int3
5048f8:	cc                   	int3
5048f9:	cc                   	int3
5048fa:	cc                   	int3
5048fb:	cc                   	int3
5048fc:	cc                   	int3
5048fd:	cc                   	int3
5048fe:	cc                   	int3
5048ff:	cc                   	int3
504900:	cc                   	int3
504901:	cc                   	int3
504902:	cc                   	int3
504903:	cc                   	int3
504904:	cc                   	int3
504905:	cc                   	int3
504906:	cc                   	int3
504907:	cc                   	int3
504908:	cc                   	int3
504909:	cc                   	int3
50490a:	cc                   	int3
50490b:	cc                   	int3
50490c:	cc                   	int3
50490d:	cc                   	int3
50490e:	cc                   	int3
50490f:	cc                   	int3
504910:	8b c1                	mov    %ecx,%eax
504912:	c3                   	ret
504913:	cc                   	int3
504914:	cc                   	int3
504915:	cc                   	int3
504916:	cc                   	int3
504917:	cc                   	int3
504918:	cc                   	int3
504919:	cc                   	int3
50491a:	cc                   	int3
50491b:	cc                   	int3
50491c:	cc                   	int3
50491d:	cc                   	int3
50491e:	cc                   	int3
50491f:	cc                   	int3
504920:	8b c1                	mov    %ecx,%eax
504922:	c3                   	ret
504923:	cc                   	int3
504924:	cc                   	int3
504925:	cc                   	int3
504926:	cc                   	int3
504927:	cc                   	int3
504928:	cc                   	int3
504929:	cc                   	int3
50492a:	cc                   	int3
50492b:	cc                   	int3
50492c:	cc                   	int3
50492d:	cc                   	int3
50492e:	cc                   	int3
50492f:	cc                   	int3
504930:	8b c1                	mov    %ecx,%eax
504932:	c3                   	ret
504933:	cc                   	int3
504934:	cc                   	int3
504935:	cc                   	int3
504936:	cc                   	int3
504937:	cc                   	int3
504938:	cc                   	int3
504939:	cc                   	int3
50493a:	cc                   	int3
50493b:	cc                   	int3
50493c:	cc                   	int3
50493d:	cc                   	int3
50493e:	cc                   	int3
50493f:	cc                   	int3
504940:	8b c1                	mov    %ecx,%eax
504942:	c3                   	ret
504943:	cc                   	int3
504944:	cc                   	int3
504945:	cc                   	int3
504946:	cc                   	int3
504947:	cc                   	int3
504948:	cc                   	int3
504949:	cc                   	int3
50494a:	cc                   	int3
50494b:	cc                   	int3
50494c:	cc                   	int3
50494d:	cc                   	int3
50494e:	cc                   	int3
50494f:	cc                   	int3
504950:	8b 51 08             	mov    0x8(%ecx),%edx
504953:	b8 31 0c c3 30       	mov    $0x30c30c31,%eax
504958:	2b 11                	sub    (%ecx),%edx
50495a:	f7 ea                	imul   %edx
50495c:	56                   	push   %esi
50495d:	c1 fa 05             	sar    $0x5,%edx
504960:	8b f2                	mov    %edx,%esi
504962:	c1 ee 1f             	shr    $0x1f,%esi
504965:	03 f2                	add    %edx,%esi
504967:	ba 61 18 86 01       	mov    $0x1861861,%edx
50496c:	8b c6                	mov    %esi,%eax
50496e:	d1 e8                	shr    $1,%eax
504970:	2b d0                	sub    %eax,%edx
504972:	8d 0c 30             	lea    (%eax,%esi,1),%ecx
504975:	33 c0                	xor    %eax,%eax
504977:	3b d6                	cmp    %esi,%edx
504979:	5e                   	pop    %esi
50497a:	0f 43 c1             	cmovae %ecx,%eax
50497d:	3b 44 24 04          	cmp    0x4(%esp),%eax
504981:	0f 42 44 24 04       	cmovb  0x4(%esp),%eax
504986:	c2 04 00             	ret    $0x4
504989:	cc                   	int3
50498a:	cc                   	int3
50498b:	cc                   	int3
50498c:	cc                   	int3
50498d:	cc                   	int3
50498e:	cc                   	int3
50498f:	cc                   	int3
504990:	cc                   	int3
504991:	cc                   	int3
504992:	cc                   	int3
504993:	cc                   	int3
504994:	cc                   	int3
504995:	cc                   	int3
504996:	cc                   	int3
504997:	cc                   	int3
504998:	cc                   	int3
504999:	cc                   	int3
50499a:	cc                   	int3
50499b:	cc                   	int3
50499c:	cc                   	int3
50499d:	cc                   	int3
50499e:	cc                   	int3
50499f:	cc                   	int3
5049a0:	8b 44 24 04          	mov    0x4(%esp),%eax
5049a4:	3b 41 04             	cmp    0x4(%ecx),%eax
5049a7:	73 09                	jae    0x5049b2
5049a9:	39 01                	cmp    %eax,(%ecx)
5049ab:	77 05                	ja     0x5049b2
5049ad:	b0 01                	mov    $0x1,%al
5049af:	c2 04 00             	ret    $0x4
5049b2:	32 c0                	xor    %al,%al
5049b4:	c2 04 00             	ret    $0x4
5049b7:	cc                   	int3
5049b8:	cc                   	int3
5049b9:	cc                   	int3
5049ba:	cc                   	int3
5049bb:	cc                   	int3
5049bc:	cc                   	int3
5049bd:	cc                   	int3
5049be:	cc                   	int3
5049bf:	cc                   	int3
5049c0:	8d 41 08             	lea    0x8(%ecx),%eax
5049c3:	c3                   	ret
5049c4:	cc                   	int3
5049c5:	cc                   	int3
5049c6:	cc                   	int3
5049c7:	cc                   	int3
5049c8:	cc                   	int3
5049c9:	cc                   	int3
5049ca:	cc                   	int3
5049cb:	cc                   	int3
5049cc:	cc                   	int3
5049cd:	cc                   	int3
5049ce:	cc                   	int3
5049cf:	cc                   	int3
5049d0:	8b c1                	mov    %ecx,%eax
5049d2:	c3                   	ret
5049d3:	cc                   	int3
5049d4:	cc                   	int3
5049d5:	cc                   	int3
5049d6:	cc                   	int3
5049d7:	cc                   	int3
5049d8:	cc                   	int3
5049d9:	cc                   	int3
5049da:	cc                   	int3
5049db:	cc                   	int3
5049dc:	cc                   	int3
5049dd:	cc                   	int3
5049de:	cc                   	int3
5049df:	cc                   	int3
5049e0:	8d 41 04             	lea    0x4(%ecx),%eax
5049e3:	c3                   	ret
5049e4:	cc                   	int3
5049e5:	cc                   	int3
5049e6:	cc                   	int3
5049e7:	cc                   	int3
5049e8:	cc                   	int3
5049e9:	cc                   	int3
5049ea:	cc                   	int3
5049eb:	cc                   	int3
5049ec:	cc                   	int3
5049ed:	cc                   	int3
5049ee:	cc                   	int3
5049ef:	cc                   	int3
5049f0:	c2 08 00             	ret    $0x8
5049f3:	cc                   	int3
5049f4:	cc                   	int3
5049f5:	cc                   	int3
5049f6:	cc                   	int3
5049f7:	cc                   	int3
5049f8:	cc                   	int3
5049f9:	cc                   	int3
5049fa:	cc                   	int3
5049fb:	cc                   	int3
5049fc:	cc                   	int3
5049fd:	cc                   	int3
5049fe:	cc                   	int3
5049ff:	cc                   	int3
504a00:	53                   	push   %ebx
504a01:	55                   	push   %ebp
504a02:	56                   	push   %esi
504a03:	57                   	push   %edi
504a04:	ff 74 24 14          	push   0x14(%esp)
504a08:	8b f9                	mov    %ecx,%edi
504a0a:	e8 c7 55 f3 ff       	call   0x439fd6
504a0f:	8b 37                	mov    (%edi),%esi
504a11:	8b d8                	mov    %eax,%ebx
504a13:	8b 57 04             	mov    0x4(%edi),%edx
504a16:	2b d6                	sub    %esi,%edx
504a18:	52                   	push   %edx
504a19:	56                   	push   %esi
504a1a:	53                   	push   %ebx
504a1b:	e8 62 a1 f1 ff       	call   0x41eb82
504a20:	8b 2f                	mov    (%edi),%ebp
504a22:	b8 31 0c c3 30       	mov    $0x30c30c31,%eax
504a27:	8b 4f 04             	mov    0x4(%edi),%ecx
504a2a:	83 c4 0c             	add    $0xc,%esp
504a2d:	2b cd                	sub    %ebp,%ecx
504a2f:	f7 e9                	imul   %ecx
504a31:	c1 fa 05             	sar    $0x5,%edx
504a34:	8b f2                	mov    %edx,%esi
504a36:	c1 ee 1f             	shr    $0x1f,%esi
504a39:	03 f2                	add    %edx,%esi
504a3b:	85 ed                	test   %ebp,%ebp
504a3d:	74 1f                	je     0x504a5e
504a3f:	8b 4f 08             	mov    0x8(%edi),%ecx
504a42:	b8 31 0c c3 30       	mov    $0x30c30c31,%eax
504a47:	2b cd                	sub    %ebp,%ecx
504a49:	f7 e9                	imul   %ecx
504a4b:	8b cf                	mov    %edi,%ecx
504a4d:	c1 fa 05             	sar    $0x5,%edx
504a50:	8b c2                	mov    %edx,%eax
504a52:	c1 e8 1f             	shr    $0x1f,%eax
504a55:	03 c2                	add    %edx,%eax
504a57:	50                   	push   %eax
504a58:	55                   	push   %ebp
504a59:	e8 3a 54 f1 ff       	call   0x419e98
504a5e:	69 44 24 14 a8 00 00 	imul   $0xa8,0x14(%esp),%eax