40981e:	85 c9                	test   %ecx,%ecx
409820:	74 03                	je     0x409825
409822:	f0 ff 01             	lock incl (%ecx)
409825:	8b 88 8c 00 00 00    	mov    0x8c(%eax),%ecx
40982b:	85 c9                	test   %ecx,%ecx
40982d:	74 03                	je     0x409832
40982f:	f0 ff 01             	lock incl (%ecx)
409832:	56                   	push   %esi
409833:	6a 06                	push   $0x6
409835:	8d 48 28             	lea    0x28(%eax),%ecx
409838:	5e                   	pop    %esi
409839:	81 79 f8 18 61 41 00 	cmpl   $0x416118,-0x8(%ecx)
409840:	74 09                	je     0x40984b
409842:	8b 11                	mov    (%ecx),%edx
409844:	85 d2                	test   %edx,%edx
409846:	74 03                	je     0x40984b
409848:	f0 ff 02             	lock incl (%edx)
40984b:	83 79 f4 00          	cmpl   $0x0,-0xc(%ecx)
40984f:	74 0a                	je     0x40985b
409851:	8b 51 fc             	mov    -0x4(%ecx),%edx
409854:	85 d2                	test   %edx,%edx
409856:	74 03                	je     0x40985b
409858:	f0 ff 02             	lock incl (%edx)
40985b:	83 c1 10             	add    $0x10,%ecx
40985e:	83 ee 01             	sub    $0x1,%esi
409861:	75 d6                	jne    0x409839
409863:	ff b0 9c 00 00 00    	push   0x9c(%eax)
409869:	e8 4c 01 00 00       	call   0x4099ba
40986e:	59                   	pop    %ecx
40986f:	5e                   	pop    %esi
409870:	5d                   	pop    %ebp
409871:	c3                   	ret
409872:	8b ff                	mov    %edi,%edi
409874:	55                   	push   %ebp
409875:	8b ec                	mov    %esp,%ebp
409877:	51                   	push   %ecx
409878:	53                   	push   %ebx
409879:	56                   	push   %esi
40987a:	8b 75 08             	mov    0x8(%ebp),%esi
40987d:	57                   	push   %edi
40987e:	8b 86 88 00 00 00    	mov    0x88(%esi),%eax
409884:	85 c0                	test   %eax,%eax
409886:	74 6c                	je     0x4098f4
409888:	3d 48 66 41 00       	cmp    $0x416648,%eax
40988d:	74 65                	je     0x4098f4
40988f:	8b 46 7c             	mov    0x7c(%esi),%eax
409892:	85 c0                	test   %eax,%eax
409894:	74 5e                	je     0x4098f4
409896:	83 38 00             	cmpl   $0x0,(%eax)
409899:	75 59                	jne    0x4098f4
40989b:	8b 86 84 00 00 00    	mov    0x84(%esi),%eax
4098a1:	85 c0                	test   %eax,%eax
4098a3:	74 18                	je     0x4098bd
4098a5:	83 38 00             	cmpl   $0x0,(%eax)
4098a8:	75 13                	jne    0x4098bd
4098aa:	50                   	push   %eax
4098ab:	e8 c9 df ff ff       	call   0x407879
4098b0:	ff b6 88 00 00 00    	push   0x88(%esi)
4098b6:	e8 a9 fb ff ff       	call   0x409464
4098bb:	59                   	pop    %ecx
4098bc:	59                   	pop    %ecx
4098bd:	8b 86 80 00 00 00    	mov    0x80(%esi),%eax
4098c3:	85 c0                	test   %eax,%eax
4098c5:	74 18                	je     0x4098df
4098c7:	83 38 00             	cmpl   $0x0,(%eax)
4098ca:	75 13                	jne    0x4098df
4098cc:	50                   	push   %eax
4098cd:	e8 a7 df ff ff       	call   0x407879
4098d2:	ff b6 88 00 00 00    	push   0x88(%esi)
4098d8:	e8 85 fc ff ff       	call   0x409562
4098dd:	59                   	pop    %ecx
4098de:	59                   	pop    %ecx
4098df:	ff 76 7c             	push   0x7c(%esi)
4098e2:	e8 92 df ff ff       	call   0x407879
4098e7:	ff b6 88 00 00 00    	push   0x88(%esi)
4098ed:	e8 87 df ff ff       	call   0x407879
4098f2:	59                   	pop    %ecx
4098f3:	59                   	pop    %ecx
4098f4:	8b 86 8c 00 00 00    	mov    0x8c(%esi),%eax
4098fa:	85 c0                	test   %eax,%eax
4098fc:	74 45                	je     0x409943
4098fe:	83 38 00             	cmpl   $0x0,(%eax)
409901:	75 40                	jne    0x409943
409903:	8b 86 90 00 00 00    	mov    0x90(%esi),%eax
409909:	2d fe 00 00 00       	sub    $0xfe,%eax
40990e:	50                   	push   %eax
40990f:	e8 65 df ff ff       	call   0x407879
409914:	8b 86 94 00 00 00    	mov    0x94(%esi),%eax
40991a:	bf 80 00 00 00       	mov    $0x80,%edi
40991f:	2b c7                	sub    %edi,%eax
409921:	50                   	push   %eax
409922:	e8 52 df ff ff       	call   0x407879
409927:	8b 86 98 00 00 00    	mov    0x98(%esi),%eax
40992d:	2b c7                	sub    %edi,%eax
40992f:	50                   	push   %eax
409930:	e8 44 df ff ff       	call   0x407879
409935:	ff b6 8c 00 00 00    	push   0x8c(%esi)
40993b:	e8 39 df ff ff       	call   0x407879
409940:	83 c4 10             	add    $0x10,%esp
409943:	ff b6 9c 00 00 00    	push   0x9c(%esi)
409949:	e8 95 00 00 00       	call   0x4099e3
40994e:	59                   	pop    %ecx
40994f:	6a 06                	push   $0x6
409951:	58                   	pop    %eax
409952:	8d 9e a0 00 00 00    	lea    0xa0(%esi),%ebx
409958:	89 45 fc             	mov    %eax,-0x4(%ebp)
40995b:	8d 7e 28             	lea    0x28(%esi),%edi
40995e:	81 7f f8 18 61 41 00 	cmpl   $0x416118,-0x8(%edi)
409965:	74 1d                	je     0x409984
409967:	8b 07                	mov    (%edi),%eax
409969:	85 c0                	test   %eax,%eax
40996b:	74 14                	je     0x409981
40996d:	83 38 00             	cmpl   $0x0,(%eax)
409970:	75 0f                	jne    0x409981
409972:	50                   	push   %eax
409973:	e8 01 df ff ff       	call   0x407879
409978:	ff 33                	push   (%ebx)
40997a:	e8 fa de ff ff       	call   0x407879
40997f:	59                   	pop    %ecx
409980:	59                   	pop    %ecx
409981:	8b 45 fc             	mov    -0x4(%ebp),%eax
409984:	83 7f f4 00          	cmpl   $0x0,-0xc(%edi)
409988:	74 16                	je     0x4099a0
40998a:	8b 47 fc             	mov    -0x4(%edi),%eax
40998d:	85 c0                	test   %eax,%eax
40998f:	74 0c                	je     0x40999d
409991:	83 38 00             	cmpl   $0x0,(%eax)
409994:	75 07                	jne    0x40999d
409996:	50                   	push   %eax
409997:	e8 dd de ff ff       	call   0x407879
40999c:	59                   	pop    %ecx
40999d:	8b 45 fc             	mov    -0x4(%ebp),%eax
4099a0:	83 c3 04             	add    $0x4,%ebx
4099a3:	83 c7 10             	add    $0x10,%edi
4099a6:	83 e8 01             	sub    $0x1,%eax
4099a9:	89 45 fc             	mov    %eax,-0x4(%ebp)
4099ac:	75 b0                	jne    0x40995e
4099ae:	56                   	push   %esi
4099af:	e8 c5 de ff ff       	call   0x407879
4099b4:	59                   	pop    %ecx
4099b5:	5f                   	pop    %edi
4099b6:	5e                   	pop    %esi
4099b7:	5b                   	pop    %ebx
4099b8:	c9                   	leave
4099b9:	c3                   	ret
4099ba:	8b ff                	mov    %edi,%edi
4099bc:	55                   	push   %ebp
4099bd:	8b ec                	mov    %esp,%ebp
4099bf:	8b 4d 08             	mov    0x8(%ebp),%ecx
4099c2:	85 c9                	test   %ecx,%ecx
4099c4:	74 16                	je     0x4099dc
4099c6:	81 f9 10 fe 40 00    	cmp    $0x40fe10,%ecx
4099cc:	74 0e                	je     0x4099dc
4099ce:	33 c0                	xor    %eax,%eax
4099d0:	40                   	inc    %eax
4099d1:	f0 0f c1 81 b0 00 00 	lock xadd %eax,0xb0(%ecx)
4099d8:	00
4099d9:	40                   	inc    %eax
4099da:	5d                   	pop    %ebp
4099db:	c3                   	ret
4099dc:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
4099e1:	5d                   	pop    %ebp
4099e2:	c3                   	ret
4099e3:	8b ff                	mov    %edi,%edi
4099e5:	55                   	push   %ebp
4099e6:	8b ec                	mov    %esp,%ebp
4099e8:	56                   	push   %esi
4099e9:	8b 75 08             	mov    0x8(%ebp),%esi
4099ec:	85 f6                	test   %esi,%esi
4099ee:	74 21                	je     0x409a11
4099f0:	81 fe 10 fe 40 00    	cmp    $0x40fe10,%esi
4099f6:	74 19                	je     0x409a11
4099f8:	8b 86 b0 00 00 00    	mov    0xb0(%esi),%eax
4099fe:	90                   	nop
4099ff:	85 c0                	test   %eax,%eax
409a01:	75 0e                	jne    0x409a11
409a03:	56                   	push   %esi
409a04:	e8 e7 fb ff ff       	call   0x4095f0
409a09:	56                   	push   %esi
409a0a:	e8 6a de ff ff       	call   0x407879
409a0f:	59                   	pop    %ecx
409a10:	59                   	pop    %ecx
409a11:	5e                   	pop    %esi
409a12:	5d                   	pop    %ebp
409a13:	c3                   	ret
409a14:	8b ff                	mov    %edi,%edi
409a16:	55                   	push   %ebp
409a17:	8b ec                	mov    %esp,%ebp
409a19:	8b 4d 08             	mov    0x8(%ebp),%ecx
409a1c:	85 c9                	test   %ecx,%ecx
409a1e:	74 16                	je     0x409a36
409a20:	81 f9 10 fe 40 00    	cmp    $0x40fe10,%ecx
409a26:	74 0e                	je     0x409a36
409a28:	83 c8 ff             	or     $0xffffffff,%eax
409a2b:	f0 0f c1 81 b0 00 00 	lock xadd %eax,0xb0(%ecx)
409a32:	00
409a33:	48                   	dec    %eax
409a34:	5d                   	pop    %ebp
409a35:	c3                   	ret
409a36:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
409a3b:	5d                   	pop    %ebp
409a3c:	c3                   	ret
409a3d:	8b ff                	mov    %edi,%edi
409a3f:	55                   	push   %ebp
409a40:	8b ec                	mov    %esp,%ebp
409a42:	8b 45 08             	mov    0x8(%ebp),%eax
409a45:	85 c0                	test   %eax,%eax
409a47:	74 73                	je     0x409abc
409a49:	f0 ff 48 0c          	lock decl 0xc(%eax)
409a4d:	8b 48 7c             	mov    0x7c(%eax),%ecx
409a50:	85 c9                	test   %ecx,%ecx
409a52:	74 03                	je     0x409a57
409a54:	f0 ff 09             	lock decl (%ecx)
409a57:	8b 88 84 00 00 00    	mov    0x84(%eax),%ecx
409a5d:	85 c9                	test   %ecx,%ecx
409a5f:	74 03                	je     0x409a64
409a61:	f0 ff 09             	lock decl (%ecx)
409a64:	8b 88 80 00 00 00    	mov    0x80(%eax),%ecx
409a6a:	85 c9                	test   %ecx,%ecx
409a6c:	74 03                	je     0x409a71
409a6e:	f0 ff 09             	lock decl (%ecx)
409a71:	8b 88 8c 00 00 00    	mov    0x8c(%eax),%ecx
409a77:	85 c9                	test   %ecx,%ecx
409a79:	74 03                	je     0x409a7e
409a7b:	f0 ff 09             	lock decl (%ecx)
409a7e:	56                   	push   %esi
409a7f:	6a 06                	push   $0x6
409a81:	8d 48 28             	lea    0x28(%eax),%ecx
409a84:	5e                   	pop    %esi
409a85:	81 79 f8 18 61 41 00 	cmpl   $0x416118,-0x8(%ecx)
409a8c:	74 09                	je     0x409a97
409a8e:	8b 11                	mov    (%ecx),%edx
409a90:	85 d2                	test   %edx,%edx
409a92:	74 03                	je     0x409a97
409a94:	f0 ff 0a             	lock decl (%edx)
409a97:	83 79 f4 00          	cmpl   $0x0,-0xc(%ecx)
409a9b:	74 0a                	je     0x409aa7
409a9d:	8b 51 fc             	mov    -0x4(%ecx),%edx
409aa0:	85 d2                	test   %edx,%edx
409aa2:	74 03                	je     0x409aa7
409aa4:	f0 ff 0a             	lock decl (%edx)
409aa7:	83 c1 10             	add    $0x10,%ecx
409aaa:	83 ee 01             	sub    $0x1,%esi
409aad:	75 d6                	jne    0x409a85
409aaf:	ff b0 9c 00 00 00    	push   0x9c(%eax)
409ab5:	e8 5a ff ff ff       	call   0x409a14
409aba:	59                   	pop    %ecx
409abb:	5e                   	pop    %esi
409abc:	5d                   	pop    %ebp
409abd:	c3                   	ret
409abe:	6a 0c                	push   $0xc
409ac0:	68 18 4c 41 00       	push   $0x414c18
409ac5:	e8 46 99 ff ff       	call   0x403410
409aca:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
409ace:	e8 cd d9 ff ff       	call   0x4074a0
409ad3:	8d 78 4c             	lea    0x4c(%eax),%edi
409ad6:	8b 0d a0 66 41 00    	mov    0x4166a0,%ecx
409adc:	85 88 50 03 00 00    	test   %ecx,0x350(%eax)
409ae2:	74 06                	je     0x409aea
409ae4:	8b 37                	mov    (%edi),%esi
409ae6:	85 f6                	test   %esi,%esi
409ae8:	75 3d                	jne    0x409b27
409aea:	6a 04                	push   $0x4
409aec:	e8 db dc ff ff       	call   0x4077cc
409af1:	59                   	pop    %ecx
409af2:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
409af6:	ff 35 ec 6e 41 00    	push   0x416eec
409afc:	57                   	push   %edi
409afd:	e8 3d 00 00 00       	call   0x409b3f
409b02:	59                   	pop    %ecx
409b03:	59                   	pop    %ecx
409b04:	8b f0                	mov    %eax,%esi
409b06:	89 75 e4             	mov    %esi,-0x1c(%ebp)
409b09:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
409b10:	e8 09 00 00 00       	call   0x409b1e
409b15:	85 f6                	test   %esi,%esi
409b17:	74 20                	je     0x409b39
409b19:	eb 0c                	jmp    0x409b27
409b1b:	8b 75 e4             	mov    -0x1c(%ebp),%esi
409b1e:	6a 04                	push   $0x4
409b20:	e8 ef dc ff ff       	call   0x407814
409b25:	59                   	pop    %ecx
409b26:	c3                   	ret
409b27:	8b c6                	mov    %esi,%eax
409b29:	8b 4d f0             	mov    -0x10(%ebp),%ecx
409b2c:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
409b33:	59                   	pop    %ecx
409b34:	5f                   	pop    %edi
409b35:	5e                   	pop    %esi
409b36:	5b                   	pop    %ebx
409b37:	c9                   	leave
409b38:	c3                   	ret
409b39:	e8 60 d4 ff ff       	call   0x406f9e
409b3e:	cc                   	int3
409b3f:	8b ff                	mov    %edi,%edi
409b41:	55                   	push   %ebp
409b42:	8b ec                	mov    %esp,%ebp
409b44:	56                   	push   %esi
409b45:	8b 75 0c             	mov    0xc(%ebp),%esi
409b48:	57                   	push   %edi
409b49:	85 f6                	test   %esi,%esi
409b4b:	74 3c                	je     0x409b89
409b4d:	8b 45 08             	mov    0x8(%ebp),%eax
409b50:	85 c0                	test   %eax,%eax
409b52:	74 35                	je     0x409b89
409b54:	8b 38                	mov    (%eax),%edi
409b56:	3b fe                	cmp    %esi,%edi
409b58:	75 04                	jne    0x409b5e
409b5a:	8b c6                	mov    %esi,%eax
409b5c:	eb 2d                	jmp    0x409b8b
409b5e:	56                   	push   %esi
409b5f:	89 30                	mov    %esi,(%eax)
409b61:	e8 8f fc ff ff       	call   0x4097f5
409b66:	59                   	pop    %ecx
409b67:	85 ff                	test   %edi,%edi
409b69:	74 ef                	je     0x409b5a
409b6b:	57                   	push   %edi
409b6c:	e8 cc fe ff ff       	call   0x409a3d
409b71:	83 7f 0c 00          	cmpl   $0x0,0xc(%edi)
409b75:	59                   	pop    %ecx
409b76:	75 e2                	jne    0x409b5a
409b78:	81 ff 58 60 41 00    	cmp    $0x416058,%edi
409b7e:	74 da                	je     0x409b5a
409b80:	57                   	push   %edi
409b81:	e8 ec fc ff ff       	call   0x409872
409b86:	59                   	pop    %ecx
409b87:	eb d1                	jmp    0x409b5a
409b89:	33 c0                	xor    %eax,%eax
409b8b:	5f                   	pop    %edi
409b8c:	5e                   	pop    %esi
409b8d:	5d                   	pop    %ebp
409b8e:	c3                   	ret
409b8f:	68 90 0f 41 00       	push   $0x410f90
409b94:	68 8c 0f 41 00       	push   $0x410f8c
409b99:	68 90 0f 41 00       	push   $0x410f90
409b9e:	6a 00                	push   $0x0
409ba0:	e8 03 01 00 00       	call   0x409ca8
409ba5:	83 c4 10             	add    $0x10,%esp
409ba8:	c3                   	ret
409ba9:	68 b0 0f 41 00       	push   $0x410fb0
409bae:	68 a8 0f 41 00       	push   $0x410fa8
409bb3:	68 b0 0f 41 00       	push   $0x410fb0
409bb8:	6a 11                	push   $0x11
409bba:	e8 e9 00 00 00       	call   0x409ca8
409bbf:	83 c4 10             	add    $0x10,%esp
409bc2:	c3                   	ret
409bc3:	68 c8 0f 41 00       	push   $0x410fc8
409bc8:	68 c0 0f 41 00       	push   $0x410fc0
409bcd:	68 c8 0f 41 00       	push   $0x410fc8
409bd2:	6a 13                	push   $0x13