40291d:	5d                   	pop    %ebp
40291e:	c2 04 00             	ret    $0x4
402921:	8b ff                	mov    %edi,%edi
402923:	55                   	push   %ebp
402924:	8b ec                	mov    %esp,%ebp
402926:	51                   	push   %ecx
402927:	53                   	push   %ebx
402928:	56                   	push   %esi
402929:	57                   	push   %edi
40292a:	8b 3d 84 53 40 00    	mov    0x405384,%edi
402930:	33 db                	xor    %ebx,%ebx
402932:	8b f3                	mov    %ebx,%esi
402934:	85 ff                	test   %edi,%edi
402936:	74 60                	je     0x402998
402938:	39 5f 04             	cmp    %ebx,0x4(%edi)
40293b:	75 1c                	jne    0x402959
40293d:	8b 0f                	mov    (%edi),%ecx
40293f:	8d 55 fc             	lea    -0x4(%ebp),%edx
402942:	89 5d fc             	mov    %ebx,-0x4(%ebp)
402945:	e8 46 0f 00 00       	call   0x403890
40294a:	85 c0                	test   %eax,%eax
40294c:	78 0b                	js     0x402959
40294e:	39 5f 04             	cmp    %ebx,0x4(%edi)
402951:	75 06                	jne    0x402959
402953:	8b 45 fc             	mov    -0x4(%ebp),%eax
402956:	89 47 04             	mov    %eax,0x4(%edi)
402959:	8b 7f 04             	mov    0x4(%edi),%edi
40295c:	8d 47 10             	lea    0x10(%edi),%eax
40295f:	f7 df                	neg    %edi
402961:	1b ff                	sbb    %edi,%edi
402963:	23 f8                	and    %eax,%edi
402965:	74 31                	je     0x402998
402967:	ff 15 1c 60 40 00    	call   *0x40601c
40296d:	6a 0a                	push   $0xa
40296f:	5e                   	pop    %esi
402970:	33 d2                	xor    %edx,%edx
402972:	8b c8                	mov    %eax,%ecx
402974:	f7 f6                	div    %esi
402976:	8b 74 97 08          	mov    0x8(%edi,%edx,4),%esi
40297a:	eb 07                	jmp    0x402983
40297c:	39 0e                	cmp    %ecx,(%esi)
40297e:	74 1f                	je     0x40299f
402980:	8b 76 04             	mov    0x4(%esi),%esi
402983:	85 f6                	test   %esi,%esi
402985:	75 f5                	jne    0x40297c
402987:	8b f3                	mov    %ebx,%esi
402989:	85 f6                	test   %esi,%esi
40298b:	74 0b                	je     0x402998
40298d:	39 5e 08             	cmp    %ebx,0x8(%esi)
402990:	75 06                	jne    0x402998
402992:	8d 4f 04             	lea    0x4(%edi),%ecx
402995:	89 4e 08             	mov    %ecx,0x8(%esi)
402998:	5f                   	pop    %edi
402999:	8b c6                	mov    %esi,%eax
40299b:	5e                   	pop    %esi
40299c:	5b                   	pop    %ebx
40299d:	c9                   	leave
40299e:	c3                   	ret
40299f:	83 c6 08             	add    $0x8,%esi
4029a2:	eb e5                	jmp    0x402989
4029a4:	8b ff                	mov    %edi,%edi
4029a6:	55                   	push   %ebp
4029a7:	8b ec                	mov    %esp,%ebp
4029a9:	51                   	push   %ecx
4029aa:	53                   	push   %ebx
4029ab:	8b 5d 08             	mov    0x8(%ebp),%ebx
4029ae:	32 c0                	xor    %al,%al
4029b0:	56                   	push   %esi
4029b1:	57                   	push   %edi
4029b2:	8b f2                	mov    %edx,%esi
4029b4:	8b f9                	mov    %ecx,%edi
4029b6:	89 7d fc             	mov    %edi,-0x4(%ebp)
4029b9:	c6 03 00             	movb   $0x0,(%ebx)
4029bc:	85 f6                	test   %esi,%esi
4029be:	0f 84 91 00 00 00    	je     0x402a55
4029c4:	ff 75 0c             	push   0xc(%ebp)
4029c7:	8b 56 08             	mov    0x8(%esi),%edx
4029ca:	53                   	push   %ebx
4029cb:	e8 d4 ff ff ff       	call   0x4029a4
4029d0:	8b 56 10             	mov    0x10(%esi),%edx
4029d3:	85 d2                	test   %edx,%edx
4029d5:	74 7e                	je     0x402a55
4029d7:	83 3a 00             	cmpl   $0x0,(%edx)
4029da:	75 0e                	jne    0x4029ea
4029dc:	33 c0                	xor    %eax,%eax
4029de:	40                   	inc    %eax
4029df:	f0 0f c1 05 1c 50 40 	lock xadd %eax,0x40501c
4029e6:	00
4029e7:	40                   	inc    %eax
4029e8:	89 02                	mov    %eax,(%edx)
4029ea:	83 7f 2c 00          	cmpl   $0x0,0x2c(%edi)
4029ee:	75 0b                	jne    0x4029fb
4029f0:	8b f2                	mov    %edx,%esi
4029f2:	8d 7f 2c             	lea    0x2c(%edi),%edi
4029f5:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4029f6:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4029f7:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4029f8:	8b 7d fc             	mov    -0x4(%ebp),%edi
4029fb:	83 c7 38             	add    $0x38,%edi
4029fe:	8b f2                	mov    %edx,%esi
402a00:	8b cb                	mov    %ebx,%ecx
402a02:	a5                   	movsl  %ds:(%esi),%es:(%edi)
402a03:	a5                   	movsl  %ds:(%esi),%es:(%edi)
402a04:	a5                   	movsl  %ds:(%esi),%es:(%edi)
402a05:	8b 75 0c             	mov    0xc(%ebp),%esi
402a08:	8d 79 01             	lea    0x1(%ecx),%edi
402a0b:	03 f3                	add    %ebx,%esi
402a0d:	8a 01                	mov    (%ecx),%al
402a0f:	41                   	inc    %ecx
402a10:	84 c0                	test   %al,%al
402a12:	75 f9                	jne    0x402a0d
402a14:	2b cf                	sub    %edi,%ecx
402a16:	8b c6                	mov    %esi,%eax
402a18:	03 d9                	add    %ecx,%ebx
402a1a:	2b c3                	sub    %ebx,%eax
402a1c:	83 f8 02             	cmp    $0x2,%eax
402a1f:	7e 32                	jle    0x402a53
402a21:	c6 03 5c             	movb   $0x5c,(%ebx)
402a24:	43                   	inc    %ebx
402a25:	8b 4a 04             	mov    0x4(%edx),%ecx
402a28:	8d 79 01             	lea    0x1(%ecx),%edi
402a2b:	8a 01                	mov    (%ecx),%al
402a2d:	41                   	inc    %ecx
402a2e:	84 c0                	test   %al,%al
402a30:	75 f9                	jne    0x402a2b
402a32:	2b cf                	sub    %edi,%ecx
402a34:	2b f3                	sub    %ebx,%esi
402a36:	8d 79 01             	lea    0x1(%ecx),%edi
402a39:	3b fe                	cmp    %esi,%edi
402a3b:	72 02                	jb     0x402a3f
402a3d:	8b fe                	mov    %esi,%edi
402a3f:	57                   	push   %edi
402a40:	ff 72 04             	push   0x4(%edx)
402a43:	56                   	push   %esi
402a44:	53                   	push   %ebx
402a45:	ff 15 68 61 40 00    	call   *0x406168
402a4b:	83 c4 10             	add    $0x10,%esp
402a4e:	c6 44 1f ff 00       	movb   $0x0,-0x1(%edi,%ebx,1)
402a53:	b0 01                	mov    $0x1,%al
402a55:	5f                   	pop    %edi
402a56:	5e                   	pop    %esi
402a57:	5b                   	pop    %ebx
402a58:	c9                   	leave
402a59:	c2 08 00             	ret    $0x8
402a5c:	8b ff                	mov    %edi,%edi
402a5e:	55                   	push   %ebp
402a5f:	8b ec                	mov    %esp,%ebp
402a61:	83 ec 0c             	sub    $0xc,%esp
402a64:	53                   	push   %ebx
402a65:	56                   	push   %esi
402a66:	57                   	push   %edi
402a67:	8b fa                	mov    %edx,%edi
402a69:	33 db                	xor    %ebx,%ebx
402a6b:	8b c1                	mov    %ecx,%eax
402a6d:	88 5d f4             	mov    %bl,-0xc(%ebp)
402a70:	89 45 fc             	mov    %eax,-0x4(%ebp)
402a73:	88 1f                	mov    %bl,(%edi)
402a75:	8b 35 94 53 40 00    	mov    0x405394,%esi
402a7b:	85 f6                	test   %esi,%esi
402a7d:	74 27                	je     0x402aa6
402a7f:	ff 15 1c 60 40 00    	call   *0x40601c
402a85:	33 d2                	xor    %edx,%edx
402a87:	c7 45 f8 0a 00 00 00 	movl   $0xa,-0x8(%ebp)
402a8e:	8b c8                	mov    %eax,%ecx
402a90:	f7 75 f8             	divl   -0x8(%ebp)
402a93:	8b 34 96             	mov    (%esi,%edx,4),%esi
402a96:	eb 07                	jmp    0x402a9f
402a98:	39 0e                	cmp    %ecx,(%esi)
402a9a:	74 7c                	je     0x402b18
402a9c:	8b 76 04             	mov    0x4(%esi),%esi
402a9f:	85 f6                	test   %esi,%esi
402aa1:	75 f5                	jne    0x402a98
402aa3:	8b 45 fc             	mov    -0x4(%ebp),%eax
402aa6:	8b f3                	mov    %ebx,%esi
402aa8:	85 f6                	test   %esi,%esi
402aaa:	74 4b                	je     0x402af7
402aac:	39 1e                	cmp    %ebx,(%esi)
402aae:	74 47                	je     0x402af7
402ab0:	ff 75 08             	push   0x8(%ebp)
402ab3:	88 1f                	mov    %bl,(%edi)
402ab5:	8b c8                	mov    %eax,%ecx
402ab7:	8b 16                	mov    (%esi),%edx
402ab9:	57                   	push   %edi
402aba:	e8 e5 fe ff ff       	call   0x4029a4
402abf:	8b 4d fc             	mov    -0x4(%ebp),%ecx
402ac2:	84 c0                	test   %al,%al
402ac4:	74 03                	je     0x402ac9
402ac6:	89 79 28             	mov    %edi,0x28(%ecx)
402ac9:	8b 06                	mov    (%esi),%eax
402acb:	89 45 f8             	mov    %eax,-0x8(%ebp)
402ace:	8b 78 04             	mov    0x4(%eax),%edi
402ad1:	51                   	push   %ecx
402ad2:	8b 07                	mov    (%edi),%eax
402ad4:	8b 30                	mov    (%eax),%esi
402ad6:	8b ce                	mov    %esi,%ecx
402ad8:	ff 15 90 61 40 00    	call   *0x406190
402ade:	8b cf                	mov    %edi,%ecx
402ae0:	ff d6                	call   *%esi
402ae2:	8b 4d fc             	mov    -0x4(%ebp),%ecx
402ae5:	0a d8                	or     %al,%bl
402ae7:	8b 45 f8             	mov    -0x8(%ebp),%eax
402aea:	88 5d f4             	mov    %bl,-0xc(%ebp)
402aed:	8b 40 08             	mov    0x8(%eax),%eax
402af0:	89 45 f8             	mov    %eax,-0x8(%ebp)
402af3:	85 c0                	test   %eax,%eax
402af5:	75 d7                	jne    0x402ace
402af7:	8b 35 9c 53 40 00    	mov    0x40539c,%esi
402afd:	85 f6                	test   %esi,%esi
402aff:	74 10                	je     0x402b11
402b01:	ff 75 fc             	push   -0x4(%ebp)
402b04:	8b ce                	mov    %esi,%ecx
402b06:	ff 75 f4             	push   -0xc(%ebp)
402b09:	ff 15 90 61 40 00    	call   *0x406190
402b0f:	ff d6                	call   *%esi
402b11:	5f                   	pop    %edi
402b12:	5e                   	pop    %esi
402b13:	5b                   	pop    %ebx
402b14:	c9                   	leave
402b15:	c2 04 00             	ret    $0x4
402b18:	8b 45 fc             	mov    -0x4(%ebp),%eax
402b1b:	83 c6 08             	add    $0x8,%esi
402b1e:	eb 88                	jmp    0x402aa8
402b20:	8b ff                	mov    %edi,%edi
402b22:	55                   	push   %ebp
402b23:	8b ec                	mov    %esp,%ebp
402b25:	ff 75 10             	push   0x10(%ebp)
402b28:	8b 55 0c             	mov    0xc(%ebp),%edx
402b2b:	8b 4d 08             	mov    0x8(%ebp),%ecx
402b2e:	e8 29 ff ff ff       	call   0x402a5c
402b33:	ff 15 1c 60 40 00    	call   *0x40601c
402b39:	39 05 38 54 40 00    	cmp    %eax,0x405438
402b3f:	74 3a                	je     0x402b7b
402b41:	33 c9                	xor    %ecx,%ecx
402b43:	41                   	inc    %ecx
402b44:	f0 0f c1 0d 44 54 40 	lock xadd %ecx,0x405444
402b4b:	00
402b4c:	41                   	inc    %ecx
402b4d:	83 f9 04             	cmp    $0x4,%ecx
402b50:	7d 22                	jge    0x402b74
402b52:	a3 38 54 40 00       	mov    %eax,0x405438
402b57:	e8 c5 fd ff ff       	call   0x402921
402b5c:	85 c0                	test   %eax,%eax
402b5e:	74 0a                	je     0x402b6a
402b60:	ff 75 08             	push   0x8(%ebp)
402b63:	8b c8                	mov    %eax,%ecx
402b65:	e8 f3 fc ff ff       	call   0x40285d
402b6a:	c7 05 38 54 40 00 00 	movl   $0x0,0x405438
402b71:	00 00 00
402b74:	f0 ff 0d 44 54 40 00 	lock decl 0x405444
402b7b:	5d                   	pop    %ebp
402b7c:	c2 0c 00             	ret    $0xc
402b7f:	a1 30 54 40 00       	mov    0x405430,%eax
402b84:	85 c0                	test   %eax,%eax
402b86:	75 10                	jne    0x402b98
402b88:	68 0c 14 40 00       	push   $0x40140c
402b8d:	ff 15 5c 60 40 00    	call   *0x40605c
402b93:	a3 30 54 40 00       	mov    %eax,0x405430
402b98:	c3                   	ret
402b99:	cc                   	int3
402b9a:	cc                   	int3
402b9b:	cc                   	int3
402b9c:	cc                   	int3
402b9d:	cc                   	int3
402b9e:	cc                   	int3
402b9f:	cc                   	int3
402ba0:	8b ff                	mov    %edi,%edi
402ba2:	56                   	push   %esi
402ba3:	8b 35 e0 53 40 00    	mov    0x4053e0,%esi
402ba9:	85 f6                	test   %esi,%esi
402bab:	75 21                	jne    0x402bce
402bad:	68 20 14 40 00       	push   $0x401420
402bb2:	e8 c8 ff ff ff       	call   0x402b7f
402bb7:	50                   	push   %eax
402bb8:	ff 15 4c 60 40 00    	call   *0x40604c
402bbe:	8b f0                	mov    %eax,%esi
402bc0:	89 35 e0 53 40 00    	mov    %esi,0x4053e0
402bc6:	85 f6                	test   %esi,%esi
402bc8:	75 04                	jne    0x402bce
402bca:	32 c0                	xor    %al,%al
402bcc:	5e                   	pop    %esi
402bcd:	c3                   	ret
402bce:	8b ce                	mov    %esi,%ecx
402bd0:	ff 15 90 61 40 00    	call   *0x406190
402bd6:	ff d6                	call   *%esi
402bd8:	5e                   	pop    %esi
402bd9:	c3                   	ret
402bda:	cc                   	int3
402bdb:	cc                   	int3
402bdc:	cc                   	int3
402bdd:	cc                   	int3
402bde:	cc                   	int3
402bdf:	cc                   	int3
402be0:	8b ff                	mov    %edi,%edi
402be2:	55                   	push   %ebp
402be3:	8b ec                	mov    %esp,%ebp
402be5:	56                   	push   %esi
402be6:	8b 35 d4 53 40 00    	mov    0x4053d4,%esi
402bec:	85 f6                	test   %esi,%esi
402bee:	75 1d                	jne    0x402c0d
402bf0:	68 3c 14 40 00       	push   $0x40143c
402bf5:	e8 85 ff ff ff       	call   0x402b7f
402bfa:	50                   	push   %eax
402bfb:	ff 15 4c 60 40 00    	call   *0x40604c
402c01:	8b f0                	mov    %eax,%esi
402c03:	89 35 d4 53 40 00    	mov    %esi,0x4053d4
402c09:	85 f6                	test   %esi,%esi
402c0b:	74 10                	je     0x402c1d
402c0d:	ff 75 0c             	push   0xc(%ebp)
402c10:	8b ce                	mov    %esi,%ecx
402c12:	ff 75 08             	push   0x8(%ebp)
402c15:	ff 15 90 61 40 00    	call   *0x406190
402c1b:	ff d6                	call   *%esi
402c1d:	5e                   	pop    %esi
402c1e:	5d                   	pop    %ebp
402c1f:	c2 08 00             	ret    $0x8
402c22:	ff 15 2c 60 40 00    	call   *0x40602c
402c28:	85 c0                	test   %eax,%eax
402c2a:	7e 0a                	jle    0x402c36
402c2c:	0f b7 c0             	movzwl %ax,%eax
402c2f:	0d 00 00 07 80       	or     $0x80070000,%eax
402c34:	85 c0                	test   %eax,%eax
402c36:	78 05                	js     0x402c3d
402c38:	b8 05 40 00 80       	mov    $0x80004005,%eax
402c3d:	c3                   	ret
402c3e:	8b ff                	mov    %edi,%edi
402c40:	55                   	push   %ebp
402c41:	8b ec                	mov    %esp,%ebp
402c43:	51                   	push   %ecx
402c44:	56                   	push   %esi
402c45:	33 c0                	xor    %eax,%eax
402c47:	8b f1                	mov    %ecx,%esi
402c49:	57                   	push   %edi
402c4a:	33 ff                	xor    %edi,%edi
402c4c:	89 45 fc             	mov    %eax,-0x4(%ebp)
402c4f:	39 45 0c             	cmp    %eax,0xc(%ebp)
402c52:	74 16                	je     0x402c6a
402c54:	8d 45 fc             	lea    -0x4(%ebp),%eax
402c57:	50                   	push   %eax
402c58:	ff 75 0c             	push   0xc(%ebp)
402c5b:	ff 75 08             	push   0x8(%ebp)
402c5e:	57                   	push   %edi
402c5f:	ff 15 e0 60 40 00    	call   *0x4060e0
402c65:	8b f8                	mov    %eax,%edi
402c67:	8b 45 fc             	mov    -0x4(%ebp),%eax
402c6a:	8b 0e                	mov    (%esi),%ecx
402c6c:	33 d2                	xor    %edx,%edx
402c6e:	89 55 fc             	mov    %edx,-0x4(%ebp)
402c71:	89 06                	mov    %eax,(%esi)
402c73:	85 c9                	test   %ecx,%ecx
402c75:	74 13                	je     0x402c8a