404784:	f0 ff 4a f8          	lock decl -0x8(%edx)
404788:	75 08                	jne    0x404792
40478a:	8d 42 f8             	lea    -0x8(%edx),%eax
40478d:	e8 86 e5 ff ff       	call   0x402d18
404792:	83 c3 04             	add    $0x4,%ebx
404795:	4e                   	dec    %esi
404796:	75 da                	jne    0x404772
404798:	5e                   	pop    %esi
404799:	5b                   	pop    %ebx
40479a:	c3                   	ret
40479b:	90                   	nop
40479c:	85 d2                	test   %edx,%edx
40479e:	74 24                	je     0x4047c4
4047a0:	8b 4a f8             	mov    -0x8(%edx),%ecx
4047a3:	41                   	inc    %ecx
4047a4:	7f 1a                	jg     0x4047c0
4047a6:	50                   	push   %eax
4047a7:	52                   	push   %edx
4047a8:	8b 42 fc             	mov    -0x4(%edx),%eax
4047ab:	e8 5c 00 00 00       	call   0x40480c
4047b0:	89 c2                	mov    %eax,%edx
4047b2:	58                   	pop    %eax
4047b3:	52                   	push   %edx
4047b4:	8b 48 fc             	mov    -0x4(%eax),%ecx
4047b7:	e8 30 e7 ff ff       	call   0x402eec
4047bc:	5a                   	pop    %edx
4047bd:	58                   	pop    %eax
4047be:	eb 04                	jmp    0x4047c4
4047c0:	f0 ff 42 f8          	lock incl -0x8(%edx)
4047c4:	87 10                	xchg   %edx,(%eax)
4047c6:	85 d2                	test   %edx,%edx
4047c8:	74 14                	je     0x4047de
4047ca:	8b 4a f8             	mov    -0x8(%edx),%ecx
4047cd:	49                   	dec    %ecx
4047ce:	7c 0e                	jl     0x4047de
4047d0:	f0 ff 4a f8          	lock decl -0x8(%edx)
4047d4:	75 08                	jne    0x4047de
4047d6:	8d 42 f8             	lea    -0x8(%edx),%eax
4047d9:	e8 3a e5 ff ff       	call   0x402d18
4047de:	c3                   	ret
4047df:	90                   	nop
4047e0:	85 d2                	test   %edx,%edx
4047e2:	74 0a                	je     0x4047ee
4047e4:	8b 4a f8             	mov    -0x8(%edx),%ecx
4047e7:	41                   	inc    %ecx
4047e8:	7e 04                	jle    0x4047ee
4047ea:	f0 ff 42 f8          	lock incl -0x8(%edx)
4047ee:	87 10                	xchg   %edx,(%eax)
4047f0:	85 d2                	test   %edx,%edx
4047f2:	74 14                	je     0x404808
4047f4:	8b 4a f8             	mov    -0x8(%edx),%ecx
4047f7:	49                   	dec    %ecx
4047f8:	7c 0e                	jl     0x404808
4047fa:	f0 ff 4a f8          	lock decl -0x8(%edx)
4047fe:	75 08                	jne    0x404808
404800:	8d 42 f8             	lea    -0x8(%edx),%eax
404803:	e8 10 e5 ff ff       	call   0x402d18
404808:	c3                   	ret
404809:	8d 40 00             	lea    0x0(%eax),%eax
40480c:	85 c0                	test   %eax,%eax
40480e:	7e 24                	jle    0x404834
404810:	50                   	push   %eax
404811:	83 c0 0a             	add    $0xa,%eax
404814:	83 e0 fe             	and    $0xfffffffe,%eax
404817:	50                   	push   %eax
404818:	e8 df e4 ff ff       	call   0x402cfc
40481d:	5a                   	pop    %edx
40481e:	66 c7 44 02 fe 00 00 	movw   $0x0,-0x2(%edx,%eax,1)
404825:	83 c0 08             	add    $0x8,%eax
404828:	5a                   	pop    %edx
404829:	89 50 fc             	mov    %edx,-0x4(%eax)
40482c:	c7 40 f8 01 00 00 00 	movl   $0x1,-0x8(%eax)
404833:	c3                   	ret
404834:	31 c0                	xor    %eax,%eax
404836:	c3                   	ret
404837:	90                   	nop
404838:	53                   	push   %ebx
404839:	56                   	push   %esi
40483a:	57                   	push   %edi
40483b:	89 c3                	mov    %eax,%ebx
40483d:	89 d6                	mov    %edx,%esi
40483f:	89 cf                	mov    %ecx,%edi
404841:	89 f8                	mov    %edi,%eax
404843:	e8 c4 ff ff ff       	call   0x40480c
404848:	89 f9                	mov    %edi,%ecx
40484a:	89 c7                	mov    %eax,%edi
40484c:	85 f6                	test   %esi,%esi
40484e:	74 09                	je     0x404859
404850:	89 c2                	mov    %eax,%edx
404852:	89 f0                	mov    %esi,%eax
404854:	e8 93 e6 ff ff       	call   0x402eec
404859:	89 d8                	mov    %ebx,%eax
40485b:	e8 e8 fe ff ff       	call   0x404748
404860:	89 3b                	mov    %edi,(%ebx)
404862:	5f                   	pop    %edi
404863:	5e                   	pop    %esi
404864:	5b                   	pop    %ebx
404865:	c3                   	ret
404866:	8b c0                	mov    %eax,%eax
404868:	55                   	push   %ebp
404869:	8b ec                	mov    %esp,%ebp
40486b:	6a 00                	push   $0x0
40486d:	6a 00                	push   $0x0
40486f:	52                   	push   %edx
404870:	50                   	push   %eax
404871:	8b 45 08             	mov    0x8(%ebp),%eax
404874:	50                   	push   %eax
404875:	51                   	push   %ecx
404876:	6a 00                	push   $0x0
404878:	a1 bc 85 4a 00       	mov    0x4a85bc,%eax
40487d:	50                   	push   %eax
40487e:	e8 b9 ca ff ff       	call   0x40133c
404883:	5d                   	pop    %ebp
404884:	c2 04 00             	ret    $0x4
404887:	90                   	nop
404888:	55                   	push   %ebp
404889:	8b ec                	mov    %esp,%ebp
40488b:	52                   	push   %edx
40488c:	50                   	push   %eax
40488d:	8b 45 08             	mov    0x8(%ebp),%eax
404890:	50                   	push   %eax
404891:	51                   	push   %ecx
404892:	6a 00                	push   $0x0
404894:	a1 bc 85 4a 00       	mov    0x4a85bc,%eax
404899:	50                   	push   %eax
40489a:	e8 7d ca ff ff       	call   0x40131c
40489f:	5d                   	pop    %ebp
4048a0:	c2 04 00             	ret    $0x4
4048a3:	90                   	nop
4048a4:	53                   	push   %ebx
4048a5:	56                   	push   %esi
4048a6:	57                   	push   %edi
4048a7:	55                   	push   %ebp
4048a8:	81 c4 04 f0 ff ff    	add    $0xfffff004,%esp
4048ae:	50                   	push   %eax
4048af:	83 c4 fc             	add    $0xfffffffc,%esp
4048b2:	8b f1                	mov    %ecx,%esi
4048b4:	89 14 24             	mov    %edx,(%esp)
4048b7:	8b f8                	mov    %eax,%edi
4048b9:	85 f6                	test   %esi,%esi
4048bb:	7f 09                	jg     0x4048c6
4048bd:	8b c7                	mov    %edi,%eax
4048bf:	e8 84 fe ff ff       	call   0x404748
4048c4:	eb 5f                	jmp    0x404925
4048c6:	8d 6e 01             	lea    0x1(%esi),%ebp
4048c9:	81 fd ff 07 00 00    	cmp    $0x7ff,%ebp
4048cf:	7d 28                	jge    0x4048f9
4048d1:	56                   	push   %esi
4048d2:	8d 44 24 08          	lea    0x8(%esp),%eax
4048d6:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4048da:	ba ff 0f 00 00       	mov    $0xfff,%edx
4048df:	e8 84 ff ff ff       	call   0x404868
4048e4:	8b d8                	mov    %eax,%ebx
4048e6:	85 db                	test   %ebx,%ebx
4048e8:	7c 0f                	jl     0x4048f9
4048ea:	8d 54 24 04          	lea    0x4(%esp),%edx
4048ee:	8b c7                	mov    %edi,%eax
4048f0:	8b cb                	mov    %ebx,%ecx
4048f2:	e8 41 ff ff ff       	call   0x404838
4048f7:	eb 2c                	jmp    0x404925
4048f9:	8b dd                	mov    %ebp,%ebx
4048fb:	03 db                	add    %ebx,%ebx
4048fd:	8b c7                	mov    %edi,%eax
4048ff:	8b d3                	mov    %ebx,%edx
404901:	e8 8e 05 00 00       	call   0x404e94
404906:	56                   	push   %esi
404907:	8b 07                	mov    (%edi),%eax
404909:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40490d:	8b d3                	mov    %ebx,%edx
40490f:	e8 54 ff ff ff       	call   0x404868
404914:	8b d8                	mov    %eax,%ebx
404916:	85 db                	test   %ebx,%ebx
404918:	7d 02                	jge    0x40491c
40491a:	33 db                	xor    %ebx,%ebx
40491c:	8b c7                	mov    %edi,%eax
40491e:	8b d3                	mov    %ebx,%edx
404920:	e8 6f 05 00 00       	call   0x404e94
404925:	81 c4 04 10 00 00    	add    $0x1004,%esp
40492b:	5d                   	pop    %ebp
40492c:	5f                   	pop    %edi
40492d:	5e                   	pop    %esi
40492e:	5b                   	pop    %ebx
40492f:	c3                   	ret
404930:	52                   	push   %edx
404931:	89 e2                	mov    %esp,%edx
404933:	b9 01 00 00 00       	mov    $0x1,%ecx
404938:	e8 fb fe ff ff       	call   0x404838
40493d:	5a                   	pop    %edx
40493e:	c3                   	ret
40493f:	90                   	nop
404940:	31 c9                	xor    %ecx,%ecx
404942:	85 d2                	test   %edx,%edx
404944:	74 21                	je     0x404967
404946:	52                   	push   %edx
404947:	3a 0a                	cmp    (%edx),%cl
404949:	74 17                	je     0x404962
40494b:	3a 4a 01             	cmp    0x1(%edx),%cl
40494e:	74 11                	je     0x404961
404950:	3a 4a 02             	cmp    0x2(%edx),%cl
404953:	74 0b                	je     0x404960
404955:	3a 4a 03             	cmp    0x3(%edx),%cl
404958:	74 05                	je     0x40495f
40495a:	83 c2 04             	add    $0x4,%edx
40495d:	eb e8                	jmp    0x404947
40495f:	42                   	inc    %edx
404960:	42                   	inc    %edx
404961:	42                   	inc    %edx
404962:	89 d1                	mov    %edx,%ecx
404964:	5a                   	pop    %edx
404965:	29 d1                	sub    %edx,%ecx
404967:	e9 cc fe ff ff       	jmp    0x404838
40496c:	c3                   	ret
40496d:	8d 40 00             	lea    0x0(%eax),%eax
404970:	31 c9                	xor    %ecx,%ecx
404972:	85 d2                	test   %edx,%edx
404974:	74 2d                	je     0x4049a3
404976:	52                   	push   %edx
404977:	66 3b 0a             	cmp    (%edx),%cx
40497a:	74 20                	je     0x40499c
40497c:	66 3b 4a 02          	cmp    0x2(%edx),%cx
404980:	74 17                	je     0x404999
404982:	66 3b 4a 04          	cmp    0x4(%edx),%cx
404986:	74 0e                	je     0x404996
404988:	66 3b 4a 06          	cmp    0x6(%edx),%cx
40498c:	74 05                	je     0x404993
40498e:	83 c2 08             	add    $0x8,%edx
404991:	eb e4                	jmp    0x404977
404993:	83 c2 02             	add    $0x2,%edx
404996:	83 c2 02             	add    $0x2,%edx
404999:	83 c2 02             	add    $0x2,%edx
40499c:	89 d1                	mov    %edx,%ecx
40499e:	5a                   	pop    %edx
40499f:	29 d1                	sub    %edx,%ecx
4049a1:	d1 e9                	shr    $1,%ecx
4049a3:	e9 fc fe ff ff       	jmp    0x4048a4
4049a8:	c3                   	ret
4049a9:	8d 40 00             	lea    0x0(%eax),%eax
4049ac:	31 c9                	xor    %ecx,%ecx
4049ae:	8a 0a                	mov    (%edx),%cl
4049b0:	42                   	inc    %edx
4049b1:	e9 82 fe ff ff       	jmp    0x404838
4049b6:	c3                   	ret
4049b7:	90                   	nop
4049b8:	57                   	push   %edi
4049b9:	50                   	push   %eax
4049ba:	51                   	push   %ecx
4049bb:	89 d7                	mov    %edx,%edi
4049bd:	31 c0                	xor    %eax,%eax
4049bf:	f2 ae                	repnz scas %es:(%edi),%al
4049c1:	75 02                	jne    0x4049c5
4049c3:	f7 d1                	not    %ecx
4049c5:	58                   	pop    %eax
4049c6:	01 c1                	add    %eax,%ecx
4049c8:	58                   	pop    %eax
4049c9:	5f                   	pop    %edi
4049ca:	e9 69 fe ff ff       	jmp    0x404838
4049cf:	c3                   	ret
4049d0:	31 c9                	xor    %ecx,%ecx
4049d2:	85 d2                	test   %edx,%edx
4049d4:	74 05                	je     0x4049db
4049d6:	8b 4a fc             	mov    -0x4(%edx),%ecx
4049d9:	d1 e9                	shr    $1,%ecx
4049db:	e9 c4 fe ff ff       	jmp    0x4048a4
4049e0:	c3                   	ret
4049e1:	8d 40 00             	lea    0x0(%eax),%eax
4049e4:	53                   	push   %ebx
4049e5:	85 d2                	test   %edx,%edx
4049e7:	74 18                	je     0x404a01
4049e9:	8b 5a fc             	mov    -0x4(%edx),%ebx
4049ec:	85 db                	test   %ebx,%ebx
4049ee:	74 11                	je     0x404a01
4049f0:	39 d9                	cmp    %ebx,%ecx
4049f2:	7c 02                	jl     0x4049f6
4049f4:	89 d9                	mov    %ebx,%ecx
4049f6:	88 08                	mov    %cl,(%eax)
4049f8:	40                   	inc    %eax
4049f9:	92                   	xchg   %eax,%edx
4049fa:	e8 ed e4 ff ff       	call   0x402eec
4049ff:	5b                   	pop    %ebx
404a00:	c3                   	ret
404a01:	c6 00 00             	movb   $0x0,(%eax)
404a04:	5b                   	pop    %ebx
404a05:	c3                   	ret
404a06:	8b c0                	mov    %eax,%eax
404a08:	85 c0                	test   %eax,%eax
404a0a:	74 05                	je     0x404a11
404a0c:	83 e8 04             	sub    $0x4,%eax
404a0f:	8b 00                	mov    (%eax),%eax
404a11:	c3                   	ret
404a12:	8b c0                	mov    %eax,%eax
404a14:	85 d2                	test   %edx,%edx
404a16:	74 3f                	je     0x404a57
404a18:	8b 08                	mov    (%eax),%ecx
404a1a:	85 c9                	test   %ecx,%ecx
404a1c:	0f 84 7a fd ff ff    	je     0x40479c
404a22:	53                   	push   %ebx
404a23:	56                   	push   %esi
404a24:	57                   	push   %edi
404a25:	89 c3                	mov    %eax,%ebx
404a27:	89 d6                	mov    %edx,%esi
404a29:	8b 79 fc             	mov    -0x4(%ecx),%edi
404a2c:	8b 56 fc             	mov    -0x4(%esi),%edx
404a2f:	01 fa                	add    %edi,%edx
404a31:	39 ce                	cmp    %ecx,%esi
404a33:	74 17                	je     0x404a4c
404a35:	e8 5a 04 00 00       	call   0x404e94
404a3a:	89 f0                	mov    %esi,%eax
404a3c:	8b 4e fc             	mov    -0x4(%esi),%ecx
404a3f:	8b 13                	mov    (%ebx),%edx
404a41:	01 fa                	add    %edi,%edx
404a43:	e8 a4 e4 ff ff       	call   0x402eec
404a48:	5f                   	pop    %edi
404a49:	5e                   	pop    %esi
404a4a:	5b                   	pop    %ebx
404a4b:	c3                   	ret
404a4c:	e8 43 04 00 00       	call   0x404e94
404a51:	8b 03                	mov    (%ebx),%eax
404a53:	89 f9                	mov    %edi,%ecx
404a55:	eb e8                	jmp    0x404a3f
404a57:	c3                   	ret
404a58:	85 d2                	test   %edx,%edx
404a5a:	74 61                	je     0x404abd
404a5c:	85 c9                	test   %ecx,%ecx
404a5e:	0f 84 38 fd ff ff    	je     0x40479c
404a64:	3b 10                	cmp    (%eax),%edx
404a66:	74 5c                	je     0x404ac4
404a68:	3b 08                	cmp    (%eax),%ecx
404a6a:	74 0e                	je     0x404a7a
404a6c:	50                   	push   %eax
404a6d:	51                   	push   %ecx
404a6e:	e8 29 fd ff ff       	call   0x40479c
404a73:	5a                   	pop    %edx
404a74:	58                   	pop    %eax
404a75:	e9 9a ff ff ff       	jmp    0x404a14
404a7a:	53                   	push   %ebx
404a7b:	56                   	push   %esi
404a7c:	57                   	push   %edi
404a7d:	89 d3                	mov    %edx,%ebx
404a7f:	89 ce                	mov    %ecx,%esi
404a81:	50                   	push   %eax
404a82:	8b 43 fc             	mov    -0x4(%ebx),%eax
404a85:	03 46 fc             	add    -0x4(%esi),%eax
404a88:	e8 7f fd ff ff       	call   0x40480c
404a8d:	89 c7                	mov    %eax,%edi
404a8f:	89 c2                	mov    %eax,%edx
404a91:	89 d8                	mov    %ebx,%eax
404a93:	8b 4b fc             	mov    -0x4(%ebx),%ecx
404a96:	e8 51 e4 ff ff       	call   0x402eec
404a9b:	89 fa                	mov    %edi,%edx
404a9d:	89 f0                	mov    %esi,%eax