4047a8:	f0 ff 4a f8          	lock decl -0x8(%edx)
4047ac:	75 08                	jne    0x4047b6
4047ae:	8d 42 f8             	lea    -0x8(%edx),%eax
4047b1:	e8 52 e5 ff ff       	call   0x402d08
4047b6:	c3                   	ret
4047b7:	90                   	nop
4047b8:	85 d2                	test   %edx,%edx
4047ba:	74 0a                	je     0x4047c6
4047bc:	8b 4a f8             	mov    -0x8(%edx),%ecx
4047bf:	41                   	inc    %ecx
4047c0:	7e 04                	jle    0x4047c6
4047c2:	f0 ff 42 f8          	lock incl -0x8(%edx)
4047c6:	87 10                	xchg   %edx,(%eax)
4047c8:	85 d2                	test   %edx,%edx
4047ca:	74 14                	je     0x4047e0
4047cc:	8b 4a f8             	mov    -0x8(%edx),%ecx
4047cf:	49                   	dec    %ecx
4047d0:	7c 0e                	jl     0x4047e0
4047d2:	f0 ff 4a f8          	lock decl -0x8(%edx)
4047d6:	75 08                	jne    0x4047e0
4047d8:	8d 42 f8             	lea    -0x8(%edx),%eax
4047db:	e8 28 e5 ff ff       	call   0x402d08
4047e0:	c3                   	ret
4047e1:	8d 40 00             	lea    0x0(%eax),%eax
4047e4:	85 c0                	test   %eax,%eax
4047e6:	7e 24                	jle    0x40480c
4047e8:	50                   	push   %eax
4047e9:	83 c0 0a             	add    $0xa,%eax
4047ec:	83 e0 fe             	and    $0xfffffffe,%eax
4047ef:	50                   	push   %eax
4047f0:	e8 f7 e4 ff ff       	call   0x402cec
4047f5:	5a                   	pop    %edx
4047f6:	66 c7 44 02 fe 00 00 	movw   $0x0,-0x2(%edx,%eax,1)
4047fd:	83 c0 08             	add    $0x8,%eax
404800:	5a                   	pop    %edx
404801:	89 50 fc             	mov    %edx,-0x4(%eax)
404804:	c7 40 f8 01 00 00 00 	movl   $0x1,-0x8(%eax)
40480b:	c3                   	ret
40480c:	31 c0                	xor    %eax,%eax
40480e:	c3                   	ret
40480f:	90                   	nop
404810:	53                   	push   %ebx
404811:	56                   	push   %esi
404812:	57                   	push   %edi
404813:	89 c3                	mov    %eax,%ebx
404815:	89 d6                	mov    %edx,%esi
404817:	89 cf                	mov    %ecx,%edi
404819:	89 f8                	mov    %edi,%eax
40481b:	e8 c4 ff ff ff       	call   0x4047e4
404820:	89 f9                	mov    %edi,%ecx
404822:	89 c7                	mov    %eax,%edi
404824:	85 f6                	test   %esi,%esi
404826:	74 09                	je     0x404831
404828:	89 c2                	mov    %eax,%edx
40482a:	89 f0                	mov    %esi,%eax
40482c:	e8 ab e6 ff ff       	call   0x402edc
404831:	89 d8                	mov    %ebx,%eax
404833:	e8 e8 fe ff ff       	call   0x404720
404838:	89 3b                	mov    %edi,(%ebx)
40483a:	5f                   	pop    %edi
40483b:	5e                   	pop    %esi
40483c:	5b                   	pop    %ebx
40483d:	c3                   	ret
40483e:	8b c0                	mov    %eax,%eax
404840:	55                   	push   %ebp
404841:	8b ec                	mov    %esp,%ebp
404843:	6a 00                	push   $0x0
404845:	6a 00                	push   $0x0
404847:	52                   	push   %edx
404848:	50                   	push   %eax
404849:	8b 45 08             	mov    0x8(%ebp),%eax
40484c:	50                   	push   %eax
40484d:	51                   	push   %ecx
40484e:	6a 00                	push   $0x0
404850:	a1 bc e5 46 00       	mov    0x46e5bc,%eax
404855:	50                   	push   %eax
404856:	e8 c1 ca ff ff       	call   0x40131c
40485b:	5d                   	pop    %ebp
40485c:	c2 04 00             	ret    $0x4
40485f:	90                   	nop
404860:	55                   	push   %ebp
404861:	8b ec                	mov    %esp,%ebp
404863:	52                   	push   %edx
404864:	50                   	push   %eax
404865:	8b 45 08             	mov    0x8(%ebp),%eax
404868:	50                   	push   %eax
404869:	51                   	push   %ecx
40486a:	6a 00                	push   $0x0
40486c:	a1 bc e5 46 00       	mov    0x46e5bc,%eax
404871:	50                   	push   %eax
404872:	e8 85 ca ff ff       	call   0x4012fc
404877:	5d                   	pop    %ebp
404878:	c2 04 00             	ret    $0x4
40487b:	90                   	nop
40487c:	53                   	push   %ebx
40487d:	56                   	push   %esi
40487e:	57                   	push   %edi
40487f:	55                   	push   %ebp
404880:	81 c4 04 f0 ff ff    	add    $0xfffff004,%esp
404886:	50                   	push   %eax
404887:	83 c4 fc             	add    $0xfffffffc,%esp
40488a:	8b f1                	mov    %ecx,%esi
40488c:	89 14 24             	mov    %edx,(%esp)
40488f:	8b f8                	mov    %eax,%edi
404891:	85 f6                	test   %esi,%esi
404893:	7f 09                	jg     0x40489e
404895:	8b c7                	mov    %edi,%eax
404897:	e8 84 fe ff ff       	call   0x404720
40489c:	eb 5f                	jmp    0x4048fd
40489e:	8d 6e 01             	lea    0x1(%esi),%ebp
4048a1:	81 fd ff 07 00 00    	cmp    $0x7ff,%ebp
4048a7:	7d 28                	jge    0x4048d1
4048a9:	56                   	push   %esi
4048aa:	8d 44 24 08          	lea    0x8(%esp),%eax
4048ae:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4048b2:	ba ff 0f 00 00       	mov    $0xfff,%edx
4048b7:	e8 84 ff ff ff       	call   0x404840
4048bc:	8b d8                	mov    %eax,%ebx
4048be:	85 db                	test   %ebx,%ebx
4048c0:	7c 0f                	jl     0x4048d1
4048c2:	8d 54 24 04          	lea    0x4(%esp),%edx
4048c6:	8b c7                	mov    %edi,%eax
4048c8:	8b cb                	mov    %ebx,%ecx
4048ca:	e8 41 ff ff ff       	call   0x404810
4048cf:	eb 2c                	jmp    0x4048fd
4048d1:	8b dd                	mov    %ebp,%ebx
4048d3:	03 db                	add    %ebx,%ebx
4048d5:	8b c7                	mov    %edi,%eax
4048d7:	8b d3                	mov    %ebx,%edx
4048d9:	e8 8e 05 00 00       	call   0x404e6c
4048de:	56                   	push   %esi
4048df:	8b 07                	mov    (%edi),%eax
4048e1:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4048e5:	8b d3                	mov    %ebx,%edx
4048e7:	e8 54 ff ff ff       	call   0x404840
4048ec:	8b d8                	mov    %eax,%ebx
4048ee:	85 db                	test   %ebx,%ebx
4048f0:	7d 02                	jge    0x4048f4
4048f2:	33 db                	xor    %ebx,%ebx
4048f4:	8b c7                	mov    %edi,%eax
4048f6:	8b d3                	mov    %ebx,%edx
4048f8:	e8 6f 05 00 00       	call   0x404e6c
4048fd:	81 c4 04 10 00 00    	add    $0x1004,%esp
404903:	5d                   	pop    %ebp
404904:	5f                   	pop    %edi
404905:	5e                   	pop    %esi
404906:	5b                   	pop    %ebx
404907:	c3                   	ret
404908:	52                   	push   %edx
404909:	89 e2                	mov    %esp,%edx
40490b:	b9 01 00 00 00       	mov    $0x1,%ecx
404910:	e8 fb fe ff ff       	call   0x404810
404915:	5a                   	pop    %edx
404916:	c3                   	ret
404917:	90                   	nop
404918:	31 c9                	xor    %ecx,%ecx
40491a:	85 d2                	test   %edx,%edx
40491c:	74 21                	je     0x40493f
40491e:	52                   	push   %edx
40491f:	3a 0a                	cmp    (%edx),%cl
404921:	74 17                	je     0x40493a
404923:	3a 4a 01             	cmp    0x1(%edx),%cl
404926:	74 11                	je     0x404939
404928:	3a 4a 02             	cmp    0x2(%edx),%cl
40492b:	74 0b                	je     0x404938
40492d:	3a 4a 03             	cmp    0x3(%edx),%cl
404930:	74 05                	je     0x404937
404932:	83 c2 04             	add    $0x4,%edx
404935:	eb e8                	jmp    0x40491f
404937:	42                   	inc    %edx
404938:	42                   	inc    %edx
404939:	42                   	inc    %edx
40493a:	89 d1                	mov    %edx,%ecx
40493c:	5a                   	pop    %edx
40493d:	29 d1                	sub    %edx,%ecx
40493f:	e9 cc fe ff ff       	jmp    0x404810
404944:	c3                   	ret
404945:	8d 40 00             	lea    0x0(%eax),%eax
404948:	31 c9                	xor    %ecx,%ecx
40494a:	85 d2                	test   %edx,%edx
40494c:	74 2d                	je     0x40497b
40494e:	52                   	push   %edx
40494f:	66 3b 0a             	cmp    (%edx),%cx
404952:	74 20                	je     0x404974
404954:	66 3b 4a 02          	cmp    0x2(%edx),%cx
404958:	74 17                	je     0x404971
40495a:	66 3b 4a 04          	cmp    0x4(%edx),%cx
40495e:	74 0e                	je     0x40496e
404960:	66 3b 4a 06          	cmp    0x6(%edx),%cx
404964:	74 05                	je     0x40496b
404966:	83 c2 08             	add    $0x8,%edx
404969:	eb e4                	jmp    0x40494f
40496b:	83 c2 02             	add    $0x2,%edx
40496e:	83 c2 02             	add    $0x2,%edx
404971:	83 c2 02             	add    $0x2,%edx
404974:	89 d1                	mov    %edx,%ecx
404976:	5a                   	pop    %edx
404977:	29 d1                	sub    %edx,%ecx
404979:	d1 e9                	shr    $1,%ecx
40497b:	e9 fc fe ff ff       	jmp    0x40487c
404980:	c3                   	ret
404981:	8d 40 00             	lea    0x0(%eax),%eax
404984:	31 c9                	xor    %ecx,%ecx
404986:	8a 0a                	mov    (%edx),%cl
404988:	42                   	inc    %edx
404989:	e9 82 fe ff ff       	jmp    0x404810
40498e:	c3                   	ret
40498f:	90                   	nop
404990:	57                   	push   %edi
404991:	50                   	push   %eax
404992:	51                   	push   %ecx
404993:	89 d7                	mov    %edx,%edi
404995:	31 c0                	xor    %eax,%eax
404997:	f2 ae                	repnz scas %es:(%edi),%al
404999:	75 02                	jne    0x40499d
40499b:	f7 d1                	not    %ecx
40499d:	58                   	pop    %eax
40499e:	01 c1                	add    %eax,%ecx
4049a0:	58                   	pop    %eax
4049a1:	5f                   	pop    %edi
4049a2:	e9 69 fe ff ff       	jmp    0x404810
4049a7:	c3                   	ret
4049a8:	31 c9                	xor    %ecx,%ecx
4049aa:	85 d2                	test   %edx,%edx
4049ac:	74 05                	je     0x4049b3
4049ae:	8b 4a fc             	mov    -0x4(%edx),%ecx
4049b1:	d1 e9                	shr    $1,%ecx
4049b3:	e9 c4 fe ff ff       	jmp    0x40487c
4049b8:	c3                   	ret
4049b9:	8d 40 00             	lea    0x0(%eax),%eax
4049bc:	53                   	push   %ebx
4049bd:	85 d2                	test   %edx,%edx
4049bf:	74 18                	je     0x4049d9
4049c1:	8b 5a fc             	mov    -0x4(%edx),%ebx
4049c4:	85 db                	test   %ebx,%ebx
4049c6:	74 11                	je     0x4049d9
4049c8:	39 d9                	cmp    %ebx,%ecx
4049ca:	7c 02                	jl     0x4049ce
4049cc:	89 d9                	mov    %ebx,%ecx
4049ce:	88 08                	mov    %cl,(%eax)
4049d0:	40                   	inc    %eax
4049d1:	92                   	xchg   %eax,%edx
4049d2:	e8 05 e5 ff ff       	call   0x402edc
4049d7:	5b                   	pop    %ebx
4049d8:	c3                   	ret
4049d9:	c6 00 00             	movb   $0x0,(%eax)
4049dc:	5b                   	pop    %ebx
4049dd:	c3                   	ret
4049de:	8b c0                	mov    %eax,%eax
4049e0:	85 c0                	test   %eax,%eax
4049e2:	74 05                	je     0x4049e9
4049e4:	83 e8 04             	sub    $0x4,%eax
4049e7:	8b 00                	mov    (%eax),%eax
4049e9:	c3                   	ret
4049ea:	8b c0                	mov    %eax,%eax
4049ec:	85 d2                	test   %edx,%edx
4049ee:	74 3f                	je     0x404a2f
4049f0:	8b 08                	mov    (%eax),%ecx
4049f2:	85 c9                	test   %ecx,%ecx
4049f4:	0f 84 7a fd ff ff    	je     0x404774
4049fa:	53                   	push   %ebx
4049fb:	56                   	push   %esi
4049fc:	57                   	push   %edi
4049fd:	89 c3                	mov    %eax,%ebx
4049ff:	89 d6                	mov    %edx,%esi
404a01:	8b 79 fc             	mov    -0x4(%ecx),%edi
404a04:	8b 56 fc             	mov    -0x4(%esi),%edx
404a07:	01 fa                	add    %edi,%edx
404a09:	39 ce                	cmp    %ecx,%esi
404a0b:	74 17                	je     0x404a24
404a0d:	e8 5a 04 00 00       	call   0x404e6c
404a12:	89 f0                	mov    %esi,%eax
404a14:	8b 4e fc             	mov    -0x4(%esi),%ecx
404a17:	8b 13                	mov    (%ebx),%edx
404a19:	01 fa                	add    %edi,%edx
404a1b:	e8 bc e4 ff ff       	call   0x402edc
404a20:	5f                   	pop    %edi
404a21:	5e                   	pop    %esi
404a22:	5b                   	pop    %ebx
404a23:	c3                   	ret
404a24:	e8 43 04 00 00       	call   0x404e6c
404a29:	8b 03                	mov    (%ebx),%eax
404a2b:	89 f9                	mov    %edi,%ecx
404a2d:	eb e8                	jmp    0x404a17
404a2f:	c3                   	ret
404a30:	85 d2                	test   %edx,%edx
404a32:	74 61                	je     0x404a95
404a34:	85 c9                	test   %ecx,%ecx
404a36:	0f 84 38 fd ff ff    	je     0x404774
404a3c:	3b 10                	cmp    (%eax),%edx
404a3e:	74 5c                	je     0x404a9c
404a40:	3b 08                	cmp    (%eax),%ecx
404a42:	74 0e                	je     0x404a52
404a44:	50                   	push   %eax
404a45:	51                   	push   %ecx
404a46:	e8 29 fd ff ff       	call   0x404774
404a4b:	5a                   	pop    %edx
404a4c:	58                   	pop    %eax
404a4d:	e9 9a ff ff ff       	jmp    0x4049ec
404a52:	53                   	push   %ebx
404a53:	56                   	push   %esi
404a54:	57                   	push   %edi
404a55:	89 d3                	mov    %edx,%ebx
404a57:	89 ce                	mov    %ecx,%esi
404a59:	50                   	push   %eax
404a5a:	8b 43 fc             	mov    -0x4(%ebx),%eax
404a5d:	03 46 fc             	add    -0x4(%esi),%eax
404a60:	e8 7f fd ff ff       	call   0x4047e4
404a65:	89 c7                	mov    %eax,%edi
404a67:	89 c2                	mov    %eax,%edx
404a69:	89 d8                	mov    %ebx,%eax
404a6b:	8b 4b fc             	mov    -0x4(%ebx),%ecx
404a6e:	e8 69 e4 ff ff       	call   0x402edc
404a73:	89 fa                	mov    %edi,%edx
404a75:	89 f0                	mov    %esi,%eax
404a77:	8b 4e fc             	mov    -0x4(%esi),%ecx
404a7a:	03 53 fc             	add    -0x4(%ebx),%edx
404a7d:	e8 5a e4 ff ff       	call   0x402edc
404a82:	58                   	pop    %eax
404a83:	89 fa                	mov    %edi,%edx
404a85:	85 ff                	test   %edi,%edi
404a87:	74 03                	je     0x404a8c
404a89:	ff 4f f8             	decl   -0x8(%edi)
404a8c:	e8 e3 fc ff ff       	call   0x404774
404a91:	5f                   	pop    %edi
404a92:	5e                   	pop    %esi
404a93:	5b                   	pop    %ebx
404a94:	c3                   	ret
404a95:	89 ca                	mov    %ecx,%edx
404a97:	e9 d8 fc ff ff       	jmp    0x404774
404a9c:	89 ca                	mov    %ecx,%edx
404a9e:	e9 49 ff ff ff       	jmp    0x4049ec
404aa3:	c3                   	ret
404aa4:	53                   	push   %ebx
404aa5:	56                   	push   %esi
404aa6:	57                   	push   %edi
404aa7:	52                   	push   %edx
404aa8:	50                   	push   %eax
404aa9:	89 d3                	mov    %edx,%ebx
404aab:	31 ff                	xor    %edi,%edi
404aad:	8b 4c 94 14          	mov    0x14(%esp,%edx,4),%ecx
404ab1:	85 c9                	test   %ecx,%ecx
404ab3:	74 0c                	je     0x404ac1
404ab5:	39 08                	cmp    %ecx,(%eax)
404ab7:	75 08                	jne    0x404ac1
404ab9:	89 cf                	mov    %ecx,%edi
404abb:	8b 41 fc             	mov    -0x4(%ecx),%eax
404abe:	4a                   	dec    %edx
404abf:	eb 02                	jmp    0x404ac3
404ac1:	31 c0                	xor    %eax,%eax