40fc93:	ff 75 14             	push   0x14(%ebp)
40fc96:	0f 95 c0             	setne  %al
40fc99:	ff 75 10             	push   0x10(%ebp)
40fc9c:	8d 04 c5 01 00 00 00 	lea    0x1(,%eax,8),%eax
40fca3:	50                   	push   %eax
40fca4:	53                   	push   %ebx
40fca5:	e8 ca f2 ff ff       	call   0x40ef74
40fcaa:	83 c4 18             	add    $0x18,%esp
40fcad:	89 45 f4             	mov    %eax,-0xc(%ebp)
40fcb0:	85 c0                	test   %eax,%eax
40fcb2:	0f 84 82 00 00 00    	je     0x40fd3a
40fcb8:	03 c0                	add    %eax,%eax
40fcba:	89 45 f8             	mov    %eax,-0x8(%ebp)
40fcbd:	8d 48 08             	lea    0x8(%eax),%ecx
40fcc0:	3b c1                	cmp    %ecx,%eax
40fcc2:	1b c0                	sbb    %eax,%eax
40fcc4:	23 c1                	and    %ecx,%eax
40fcc6:	74 69                	je     0x40fd31
40fcc8:	3d 00 04 00 00       	cmp    $0x400,%eax
40fccd:	77 13                	ja     0x40fce2
40fccf:	e8 0c 80 00 00       	call   0x417ce0
40fcd4:	8b f4                	mov    %esp,%esi
40fcd6:	85 f6                	test   %esi,%esi
40fcd8:	74 59                	je     0x40fd33
40fcda:	c7 06 cc cc 00 00    	movl   $0xcccc,(%esi)
40fce0:	eb 13                	jmp    0x40fcf5
40fce2:	50                   	push   %eax
40fce3:	e8 ea d2 ff ff       	call   0x40cfd2
40fce8:	8b f0                	mov    %eax,%esi
40fcea:	59                   	pop    %ecx
40fceb:	85 f6                	test   %esi,%esi
40fced:	74 44                	je     0x40fd33
40fcef:	c7 06 dd dd 00 00    	movl   $0xdddd,(%esi)
40fcf5:	83 c6 08             	add    $0x8,%esi
40fcf8:	85 f6                	test   %esi,%esi
40fcfa:	74 37                	je     0x40fd33
40fcfc:	ff 75 f8             	push   -0x8(%ebp)
40fcff:	57                   	push   %edi
40fd00:	56                   	push   %esi
40fd01:	e8 6a 4d ff ff       	call   0x404a70
40fd06:	ff 75 f4             	push   -0xc(%ebp)
40fd09:	56                   	push   %esi
40fd0a:	ff 75 14             	push   0x14(%ebp)
40fd0d:	ff 75 10             	push   0x10(%ebp)
40fd10:	6a 01                	push   $0x1
40fd12:	53                   	push   %ebx
40fd13:	e8 5c f2 ff ff       	call   0x40ef74
40fd18:	83 c4 24             	add    $0x24,%esp
40fd1b:	85 c0                	test   %eax,%eax
40fd1d:	74 14                	je     0x40fd33
40fd1f:	ff 75 18             	push   0x18(%ebp)
40fd22:	50                   	push   %eax
40fd23:	56                   	push   %esi
40fd24:	ff 75 0c             	push   0xc(%ebp)
40fd27:	ff 15 28 91 41 00    	call   *0x419128
40fd2d:	8b f8                	mov    %eax,%edi
40fd2f:	eb 02                	jmp    0x40fd33
40fd31:	8b f7                	mov    %edi,%esi
40fd33:	56                   	push   %esi
40fd34:	e8 25 00 00 00       	call   0x40fd5e
40fd39:	59                   	pop    %ecx
40fd3a:	80 7d f0 00          	cmpb   $0x0,-0x10(%ebp)
40fd3e:	74 0a                	je     0x40fd4a
40fd40:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40fd43:	83 a0 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%eax)
40fd4a:	8b c7                	mov    %edi,%eax
40fd4c:	8d 65 d8             	lea    -0x28(%ebp),%esp
40fd4f:	5f                   	pop    %edi
40fd50:	5e                   	pop    %esi
40fd51:	5b                   	pop    %ebx
40fd52:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40fd55:	33 cd                	xor    %ebp,%ecx
40fd57:	e8 6c 43 ff ff       	call   0x4040c8
40fd5c:	c9                   	leave
40fd5d:	c3                   	ret
40fd5e:	8b ff                	mov    %edi,%edi
40fd60:	55                   	push   %ebp
40fd61:	8b ec                	mov    %esp,%ebp
40fd63:	8b 45 08             	mov    0x8(%ebp),%eax
40fd66:	85 c0                	test   %eax,%eax
40fd68:	74 12                	je     0x40fd7c
40fd6a:	83 e8 08             	sub    $0x8,%eax
40fd6d:	81 38 dd dd 00 00    	cmpl   $0xdddd,(%eax)
40fd73:	75 07                	jne    0x40fd7c
40fd75:	50                   	push   %eax
40fd76:	e8 24 aa ff ff       	call   0x40a79f
40fd7b:	59                   	pop    %ecx
40fd7c:	5d                   	pop    %ebp
40fd7d:	c3                   	ret
40fd7e:	8b ff                	mov    %edi,%edi
40fd80:	55                   	push   %ebp
40fd81:	8b ec                	mov    %esp,%ebp
40fd83:	8b 45 08             	mov    0x8(%ebp),%eax
40fd86:	f0 ff 40 0c          	lock incl 0xc(%eax)
40fd8a:	8b 48 7c             	mov    0x7c(%eax),%ecx
40fd8d:	85 c9                	test   %ecx,%ecx
40fd8f:	74 03                	je     0x40fd94
40fd91:	f0 ff 01             	lock incl (%ecx)
40fd94:	8b 88 84 00 00 00    	mov    0x84(%eax),%ecx
40fd9a:	85 c9                	test   %ecx,%ecx
40fd9c:	74 03                	je     0x40fda1
40fd9e:	f0 ff 01             	lock incl (%ecx)
40fda1:	8b 88 80 00 00 00    	mov    0x80(%eax),%ecx
40fda7:	85 c9                	test   %ecx,%ecx
40fda9:	74 03                	je     0x40fdae
40fdab:	f0 ff 01             	lock incl (%ecx)
40fdae:	8b 88 8c 00 00 00    	mov    0x8c(%eax),%ecx
40fdb4:	85 c9                	test   %ecx,%ecx
40fdb6:	74 03                	je     0x40fdbb
40fdb8:	f0 ff 01             	lock incl (%ecx)
40fdbb:	56                   	push   %esi
40fdbc:	6a 06                	push   $0x6
40fdbe:	8d 48 28             	lea    0x28(%eax),%ecx
40fdc1:	5e                   	pop    %esi
40fdc2:	81 79 f8 e8 12 42 00 	cmpl   $0x4212e8,-0x8(%ecx)
40fdc9:	74 09                	je     0x40fdd4
40fdcb:	8b 11                	mov    (%ecx),%edx
40fdcd:	85 d2                	test   %edx,%edx
40fdcf:	74 03                	je     0x40fdd4
40fdd1:	f0 ff 02             	lock incl (%edx)
40fdd4:	83 79 f4 00          	cmpl   $0x0,-0xc(%ecx)
40fdd8:	74 0a                	je     0x40fde4
40fdda:	8b 51 fc             	mov    -0x4(%ecx),%edx
40fddd:	85 d2                	test   %edx,%edx
40fddf:	74 03                	je     0x40fde4
40fde1:	f0 ff 02             	lock incl (%edx)
40fde4:	83 c1 10             	add    $0x10,%ecx
40fde7:	83 ee 01             	sub    $0x1,%esi
40fdea:	75 d6                	jne    0x40fdc2
40fdec:	ff b0 9c 00 00 00    	push   0x9c(%eax)
40fdf2:	e8 4c 01 00 00       	call   0x40ff43
40fdf7:	59                   	pop    %ecx
40fdf8:	5e                   	pop    %esi
40fdf9:	5d                   	pop    %ebp
40fdfa:	c3                   	ret
40fdfb:	8b ff                	mov    %edi,%edi
40fdfd:	55                   	push   %ebp
40fdfe:	8b ec                	mov    %esp,%ebp
40fe00:	51                   	push   %ecx
40fe01:	53                   	push   %ebx
40fe02:	56                   	push   %esi
40fe03:	8b 75 08             	mov    0x8(%ebp),%esi
40fe06:	57                   	push   %edi
40fe07:	8b 86 88 00 00 00    	mov    0x88(%esi),%eax
40fe0d:	85 c0                	test   %eax,%eax
40fe0f:	74 6c                	je     0x40fe7d
40fe11:	3d 10 18 42 00       	cmp    $0x421810,%eax
40fe16:	74 65                	je     0x40fe7d
40fe18:	8b 46 7c             	mov    0x7c(%esi),%eax
40fe1b:	85 c0                	test   %eax,%eax
40fe1d:	74 5e                	je     0x40fe7d
40fe1f:	83 38 00             	cmpl   $0x0,(%eax)
40fe22:	75 59                	jne    0x40fe7d
40fe24:	8b 86 84 00 00 00    	mov    0x84(%esi),%eax
40fe2a:	85 c0                	test   %eax,%eax
40fe2c:	74 18                	je     0x40fe46
40fe2e:	83 38 00             	cmpl   $0x0,(%eax)
40fe31:	75 13                	jne    0x40fe46
40fe33:	50                   	push   %eax
40fe34:	e8 66 a9 ff ff       	call   0x40a79f
40fe39:	ff b6 88 00 00 00    	push   0x88(%esi)
40fe3f:	e8 37 fb ff ff       	call   0x40f97b
40fe44:	59                   	pop    %ecx
40fe45:	59                   	pop    %ecx
40fe46:	8b 86 80 00 00 00    	mov    0x80(%esi),%eax
40fe4c:	85 c0                	test   %eax,%eax
40fe4e:	74 18                	je     0x40fe68
40fe50:	83 38 00             	cmpl   $0x0,(%eax)
40fe53:	75 13                	jne    0x40fe68
40fe55:	50                   	push   %eax
40fe56:	e8 44 a9 ff ff       	call   0x40a79f
40fe5b:	ff b6 88 00 00 00    	push   0x88(%esi)
40fe61:	e8 13 fc ff ff       	call   0x40fa79
40fe66:	59                   	pop    %ecx
40fe67:	59                   	pop    %ecx
40fe68:	ff 76 7c             	push   0x7c(%esi)
40fe6b:	e8 2f a9 ff ff       	call   0x40a79f
40fe70:	ff b6 88 00 00 00    	push   0x88(%esi)
40fe76:	e8 24 a9 ff ff       	call   0x40a79f
40fe7b:	59                   	pop    %ecx
40fe7c:	59                   	pop    %ecx
40fe7d:	8b 86 8c 00 00 00    	mov    0x8c(%esi),%eax
40fe83:	85 c0                	test   %eax,%eax
40fe85:	74 45                	je     0x40fecc
40fe87:	83 38 00             	cmpl   $0x0,(%eax)
40fe8a:	75 40                	jne    0x40fecc
40fe8c:	8b 86 90 00 00 00    	mov    0x90(%esi),%eax
40fe92:	2d fe 00 00 00       	sub    $0xfe,%eax
40fe97:	50                   	push   %eax
40fe98:	e8 02 a9 ff ff       	call   0x40a79f
40fe9d:	8b 86 94 00 00 00    	mov    0x94(%esi),%eax
40fea3:	bf 80 00 00 00       	mov    $0x80,%edi
40fea8:	2b c7                	sub    %edi,%eax
40feaa:	50                   	push   %eax
40feab:	e8 ef a8 ff ff       	call   0x40a79f
40feb0:	8b 86 98 00 00 00    	mov    0x98(%esi),%eax
40feb6:	2b c7                	sub    %edi,%eax
40feb8:	50                   	push   %eax
40feb9:	e8 e1 a8 ff ff       	call   0x40a79f
40febe:	ff b6 8c 00 00 00    	push   0x8c(%esi)
40fec4:	e8 d6 a8 ff ff       	call   0x40a79f
40fec9:	83 c4 10             	add    $0x10,%esp
40fecc:	ff b6 9c 00 00 00    	push   0x9c(%esi)
40fed2:	e8 95 00 00 00       	call   0x40ff6c
40fed7:	59                   	pop    %ecx
40fed8:	6a 06                	push   $0x6
40feda:	58                   	pop    %eax
40fedb:	8d 9e a0 00 00 00    	lea    0xa0(%esi),%ebx
40fee1:	89 45 fc             	mov    %eax,-0x4(%ebp)
40fee4:	8d 7e 28             	lea    0x28(%esi),%edi
40fee7:	81 7f f8 e8 12 42 00 	cmpl   $0x4212e8,-0x8(%edi)
40feee:	74 1d                	je     0x40ff0d
40fef0:	8b 07                	mov    (%edi),%eax
40fef2:	85 c0                	test   %eax,%eax
40fef4:	74 14                	je     0x40ff0a
40fef6:	83 38 00             	cmpl   $0x0,(%eax)
40fef9:	75 0f                	jne    0x40ff0a
40fefb:	50                   	push   %eax
40fefc:	e8 9e a8 ff ff       	call   0x40a79f
40ff01:	ff 33                	push   (%ebx)
40ff03:	e8 97 a8 ff ff       	call   0x40a79f
40ff08:	59                   	pop    %ecx
40ff09:	59                   	pop    %ecx
40ff0a:	8b 45 fc             	mov    -0x4(%ebp),%eax
40ff0d:	83 7f f4 00          	cmpl   $0x0,-0xc(%edi)
40ff11:	74 16                	je     0x40ff29
40ff13:	8b 47 fc             	mov    -0x4(%edi),%eax
40ff16:	85 c0                	test   %eax,%eax
40ff18:	74 0c                	je     0x40ff26
40ff1a:	83 38 00             	cmpl   $0x0,(%eax)
40ff1d:	75 07                	jne    0x40ff26
40ff1f:	50                   	push   %eax
40ff20:	e8 7a a8 ff ff       	call   0x40a79f
40ff25:	59                   	pop    %ecx
40ff26:	8b 45 fc             	mov    -0x4(%ebp),%eax
40ff29:	83 c3 04             	add    $0x4,%ebx
40ff2c:	83 c7 10             	add    $0x10,%edi
40ff2f:	83 e8 01             	sub    $0x1,%eax
40ff32:	89 45 fc             	mov    %eax,-0x4(%ebp)
40ff35:	75 b0                	jne    0x40fee7
40ff37:	56                   	push   %esi
40ff38:	e8 62 a8 ff ff       	call   0x40a79f
40ff3d:	59                   	pop    %ecx
40ff3e:	5f                   	pop    %edi
40ff3f:	5e                   	pop    %esi
40ff40:	5b                   	pop    %ebx
40ff41:	c9                   	leave
40ff42:	c3                   	ret
40ff43:	8b ff                	mov    %edi,%edi
40ff45:	55                   	push   %ebp
40ff46:	8b ec                	mov    %esp,%ebp
40ff48:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ff4b:	85 c9                	test   %ecx,%ecx
40ff4d:	74 16                	je     0x40ff65
40ff4f:	81 f9 30 aa 41 00    	cmp    $0x41aa30,%ecx
40ff55:	74 0e                	je     0x40ff65
40ff57:	33 c0                	xor    %eax,%eax
40ff59:	40                   	inc    %eax
40ff5a:	f0 0f c1 81 b0 00 00 	lock xadd %eax,0xb0(%ecx)
40ff61:	00
40ff62:	40                   	inc    %eax
40ff63:	5d                   	pop    %ebp
40ff64:	c3                   	ret
40ff65:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
40ff6a:	5d                   	pop    %ebp
40ff6b:	c3                   	ret
40ff6c:	8b ff                	mov    %edi,%edi
40ff6e:	55                   	push   %ebp
40ff6f:	8b ec                	mov    %esp,%ebp
40ff71:	56                   	push   %esi
40ff72:	8b 75 08             	mov    0x8(%ebp),%esi
40ff75:	85 f6                	test   %esi,%esi
40ff77:	74 21                	je     0x40ff9a
40ff79:	81 fe 30 aa 41 00    	cmp    $0x41aa30,%esi
40ff7f:	74 19                	je     0x40ff9a
40ff81:	8b 86 b0 00 00 00    	mov    0xb0(%esi),%eax
40ff87:	90                   	nop
40ff88:	85 c0                	test   %eax,%eax
40ff8a:	75 0e                	jne    0x40ff9a
40ff8c:	56                   	push   %esi
40ff8d:	e8 75 fb ff ff       	call   0x40fb07
40ff92:	56                   	push   %esi
40ff93:	e8 07 a8 ff ff       	call   0x40a79f
40ff98:	59                   	pop    %ecx
40ff99:	59                   	pop    %ecx
40ff9a:	5e                   	pop    %esi
40ff9b:	5d                   	pop    %ebp
40ff9c:	c3                   	ret
40ff9d:	8b ff                	mov    %edi,%edi
40ff9f:	55                   	push   %ebp
40ffa0:	8b ec                	mov    %esp,%ebp
40ffa2:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ffa5:	85 c9                	test   %ecx,%ecx
40ffa7:	74 16                	je     0x40ffbf
40ffa9:	81 f9 30 aa 41 00    	cmp    $0x41aa30,%ecx
40ffaf:	74 0e                	je     0x40ffbf
40ffb1:	83 c8 ff             	or     $0xffffffff,%eax
40ffb4:	f0 0f c1 81 b0 00 00 	lock xadd %eax,0xb0(%ecx)
40ffbb:	00
40ffbc:	48                   	dec    %eax
40ffbd:	5d                   	pop    %ebp
40ffbe:	c3                   	ret
40ffbf:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
40ffc4:	5d                   	pop    %ebp
40ffc5:	c3                   	ret
40ffc6:	8b ff                	mov    %edi,%edi
40ffc8:	55                   	push   %ebp
40ffc9:	8b ec                	mov    %esp,%ebp
40ffcb:	8b 45 08             	mov    0x8(%ebp),%eax
40ffce:	85 c0                	test   %eax,%eax
40ffd0:	74 73                	je     0x410045
40ffd2:	f0 ff 48 0c          	lock decl 0xc(%eax)
40ffd6:	8b 48 7c             	mov    0x7c(%eax),%ecx
40ffd9:	85 c9                	test   %ecx,%ecx
40ffdb:	74 03                	je     0x40ffe0
40ffdd:	f0 ff 09             	lock decl (%ecx)
40ffe0:	8b 88 84 00 00 00    	mov    0x84(%eax),%ecx
40ffe6:	85 c9                	test   %ecx,%ecx
40ffe8:	74 03                	je     0x40ffed
40ffea:	f0 ff 09             	lock decl (%ecx)
40ffed:	8b 88 80 00 00 00    	mov    0x80(%eax),%ecx
40fff3:	85 c9                	test   %ecx,%ecx
40fff5:	74 03                	je     0x40fffa
40fff7:	f0 ff 09             	lock decl (%ecx)
40fffa:	8b 88 8c 00 00 00    	mov    0x8c(%eax),%ecx
410000:	85 c9                	test   %ecx,%ecx
410002:	74 03                	je     0x410007
410004:	f0 ff 09             	lock decl (%ecx)
410007:	56                   	push   %esi
410008:	6a 06                	push   $0x6
41000a:	8d 48 28             	lea    0x28(%eax),%ecx
41000d:	5e                   	pop    %esi
41000e:	81 79 f8 e8 12 42 00 	cmpl   $0x4212e8,-0x8(%ecx)
410015:	74 09                	je     0x410020
410017:	8b 11                	mov    (%ecx),%edx
410019:	85 d2                	test   %edx,%edx
41001b:	74 03                	je     0x410020
41001d:	f0 ff 0a             	lock decl (%edx)
410020:	83 79 f4 00          	cmpl   $0x0,-0xc(%ecx)
410024:	74 0a                	je     0x410030
410026:	8b 51 fc             	mov    -0x4(%ecx),%edx
410029:	85 d2                	test   %edx,%edx
41002b:	74 03                	je     0x410030
41002d:	f0 ff 0a             	lock decl (%edx)
410030:	83 c1 10             	add    $0x10,%ecx
410033:	83 ee 01             	sub    $0x1,%esi
410036:	75 d6                	jne    0x41000e
410038:	ff b0 9c 00 00 00    	push   0x9c(%eax)
41003e:	e8 5a ff ff ff       	call   0x40ff9d
410043:	59                   	pop    %ecx