403b1b:	8b ec                	mov    %esp,%ebp
403b1d:	51                   	push   %ecx
403b1e:	53                   	push   %ebx
403b1f:	56                   	push   %esi
403b20:	57                   	push   %edi
403b21:	8b 3d f8 d4 40 00    	mov    0x40d4f8,%edi
403b27:	33 db                	xor    %ebx,%ebx
403b29:	8b f3                	mov    %ebx,%esi
403b2b:	85 ff                	test   %edi,%edi
403b2d:	74 60                	je     0x403b8f
403b2f:	39 5f 04             	cmp    %ebx,0x4(%edi)
403b32:	75 1c                	jne    0x403b50
403b34:	8b 0f                	mov    (%edi),%ecx
403b36:	8d 55 fc             	lea    -0x4(%ebp),%edx
403b39:	89 5d fc             	mov    %ebx,-0x4(%ebp)
403b3c:	e8 eb 08 00 00       	call   0x40442c
403b41:	85 c0                	test   %eax,%eax
403b43:	78 0b                	js     0x403b50
403b45:	39 5f 04             	cmp    %ebx,0x4(%edi)
403b48:	75 06                	jne    0x403b50
403b4a:	8b 45 fc             	mov    -0x4(%ebp),%eax
403b4d:	89 47 04             	mov    %eax,0x4(%edi)
403b50:	8b 7f 04             	mov    0x4(%edi),%edi
403b53:	8d 47 10             	lea    0x10(%edi),%eax
403b56:	f7 df                	neg    %edi
403b58:	1b ff                	sbb    %edi,%edi
403b5a:	23 f8                	and    %eax,%edi
403b5c:	74 31                	je     0x403b8f
403b5e:	ff 15 b4 e0 40 00    	call   *0x40e0b4
403b64:	6a 0a                	push   $0xa
403b66:	5e                   	pop    %esi
403b67:	33 d2                	xor    %edx,%edx
403b69:	8b c8                	mov    %eax,%ecx
403b6b:	f7 f6                	div    %esi
403b6d:	8b 74 97 08          	mov    0x8(%edi,%edx,4),%esi
403b71:	eb 07                	jmp    0x403b7a
403b73:	39 0e                	cmp    %ecx,(%esi)
403b75:	74 1f                	je     0x403b96
403b77:	8b 76 04             	mov    0x4(%esi),%esi
403b7a:	85 f6                	test   %esi,%esi
403b7c:	75 f5                	jne    0x403b73
403b7e:	8b f3                	mov    %ebx,%esi
403b80:	85 f6                	test   %esi,%esi
403b82:	74 0b                	je     0x403b8f
403b84:	39 5e 08             	cmp    %ebx,0x8(%esi)
403b87:	75 06                	jne    0x403b8f
403b89:	8d 4f 04             	lea    0x4(%edi),%ecx
403b8c:	89 4e 08             	mov    %ecx,0x8(%esi)
403b8f:	5f                   	pop    %edi
403b90:	8b c6                	mov    %esi,%eax
403b92:	5e                   	pop    %esi
403b93:	5b                   	pop    %ebx
403b94:	c9                   	leave
403b95:	c3                   	ret
403b96:	83 c6 08             	add    $0x8,%esi
403b99:	eb e5                	jmp    0x403b80
403b9b:	8b ff                	mov    %edi,%edi
403b9d:	55                   	push   %ebp
403b9e:	8b ec                	mov    %esp,%ebp
403ba0:	51                   	push   %ecx
403ba1:	53                   	push   %ebx
403ba2:	8b 5d 08             	mov    0x8(%ebp),%ebx
403ba5:	32 c0                	xor    %al,%al
403ba7:	56                   	push   %esi
403ba8:	57                   	push   %edi
403ba9:	8b f2                	mov    %edx,%esi
403bab:	8b f9                	mov    %ecx,%edi
403bad:	89 7d fc             	mov    %edi,-0x4(%ebp)
403bb0:	c6 03 00             	movb   $0x0,(%ebx)
403bb3:	85 f6                	test   %esi,%esi
403bb5:	0f 84 91 00 00 00    	je     0x403c4c
403bbb:	ff 75 0c             	push   0xc(%ebp)
403bbe:	8b 56 08             	mov    0x8(%esi),%edx
403bc1:	53                   	push   %ebx
403bc2:	e8 d4 ff ff ff       	call   0x403b9b
403bc7:	8b 56 10             	mov    0x10(%esi),%edx
403bca:	85 d2                	test   %edx,%edx
403bcc:	74 7e                	je     0x403c4c
403bce:	83 3a 00             	cmpl   $0x0,(%edx)
403bd1:	75 0e                	jne    0x403be1
403bd3:	33 c0                	xor    %eax,%eax
403bd5:	40                   	inc    %eax
403bd6:	f0 0f c1 05 60 d1 40 	lock xadd %eax,0x40d160
403bdd:	00
403bde:	40                   	inc    %eax
403bdf:	89 02                	mov    %eax,(%edx)
403be1:	83 7f 2c 00          	cmpl   $0x0,0x2c(%edi)
403be5:	75 0b                	jne    0x403bf2
403be7:	8b f2                	mov    %edx,%esi
403be9:	8d 7f 2c             	lea    0x2c(%edi),%edi
403bec:	a5                   	movsl  %ds:(%esi),%es:(%edi)
403bed:	a5                   	movsl  %ds:(%esi),%es:(%edi)
403bee:	a5                   	movsl  %ds:(%esi),%es:(%edi)
403bef:	8b 7d fc             	mov    -0x4(%ebp),%edi
403bf2:	83 c7 38             	add    $0x38,%edi
403bf5:	8b f2                	mov    %edx,%esi
403bf7:	8b cb                	mov    %ebx,%ecx
403bf9:	a5                   	movsl  %ds:(%esi),%es:(%edi)
403bfa:	a5                   	movsl  %ds:(%esi),%es:(%edi)
403bfb:	a5                   	movsl  %ds:(%esi),%es:(%edi)
403bfc:	8b 75 0c             	mov    0xc(%ebp),%esi
403bff:	8d 79 01             	lea    0x1(%ecx),%edi
403c02:	03 f3                	add    %ebx,%esi
403c04:	8a 01                	mov    (%ecx),%al
403c06:	41                   	inc    %ecx
403c07:	84 c0                	test   %al,%al
403c09:	75 f9                	jne    0x403c04
403c0b:	2b cf                	sub    %edi,%ecx
403c0d:	8b c6                	mov    %esi,%eax
403c0f:	03 d9                	add    %ecx,%ebx
403c11:	2b c3                	sub    %ebx,%eax
403c13:	83 f8 02             	cmp    $0x2,%eax
403c16:	7e 32                	jle    0x403c4a
403c18:	c6 03 5c             	movb   $0x5c,(%ebx)
403c1b:	43                   	inc    %ebx
403c1c:	8b 4a 04             	mov    0x4(%edx),%ecx
403c1f:	8d 79 01             	lea    0x1(%ecx),%edi
403c22:	8a 01                	mov    (%ecx),%al
403c24:	41                   	inc    %ecx
403c25:	84 c0                	test   %al,%al
403c27:	75 f9                	jne    0x403c22
403c29:	2b cf                	sub    %edi,%ecx
403c2b:	2b f3                	sub    %ebx,%esi
403c2d:	8d 79 01             	lea    0x1(%ecx),%edi
403c30:	3b fe                	cmp    %esi,%edi
403c32:	72 02                	jb     0x403c36
403c34:	8b fe                	mov    %esi,%edi
403c36:	57                   	push   %edi
403c37:	ff 72 04             	push   0x4(%edx)
403c3a:	8b d6                	mov    %esi,%edx
403c3c:	8b cb                	mov    %ebx,%ecx
403c3e:	e8 6d e8 ff ff       	call   0x4024b0
403c43:	59                   	pop    %ecx
403c44:	59                   	pop    %ecx
403c45:	c6 44 1f ff 00       	movb   $0x0,-0x1(%edi,%ebx,1)
403c4a:	b0 01                	mov    $0x1,%al
403c4c:	5f                   	pop    %edi
403c4d:	5e                   	pop    %esi
403c4e:	5b                   	pop    %ebx
403c4f:	c9                   	leave
403c50:	c2 08 00             	ret    $0x8
403c53:	8b ff                	mov    %edi,%edi
403c55:	55                   	push   %ebp
403c56:	8b ec                	mov    %esp,%ebp
403c58:	83 ec 0c             	sub    $0xc,%esp
403c5b:	53                   	push   %ebx
403c5c:	56                   	push   %esi
403c5d:	57                   	push   %edi
403c5e:	8b fa                	mov    %edx,%edi
403c60:	33 db                	xor    %ebx,%ebx
403c62:	8b c1                	mov    %ecx,%eax
403c64:	88 5d f4             	mov    %bl,-0xc(%ebp)
403c67:	89 45 fc             	mov    %eax,-0x4(%ebp)
403c6a:	88 1f                	mov    %bl,(%edi)
403c6c:	8b 35 08 d5 40 00    	mov    0x40d508,%esi
403c72:	85 f6                	test   %esi,%esi
403c74:	74 27                	je     0x403c9d
403c76:	ff 15 b4 e0 40 00    	call   *0x40e0b4
403c7c:	33 d2                	xor    %edx,%edx
403c7e:	c7 45 f8 0a 00 00 00 	movl   $0xa,-0x8(%ebp)
403c85:	8b c8                	mov    %eax,%ecx
403c87:	f7 75 f8             	divl   -0x8(%ebp)
403c8a:	8b 34 96             	mov    (%esi,%edx,4),%esi
403c8d:	eb 07                	jmp    0x403c96
403c8f:	39 0e                	cmp    %ecx,(%esi)
403c91:	74 7c                	je     0x403d0f
403c93:	8b 76 04             	mov    0x4(%esi),%esi
403c96:	85 f6                	test   %esi,%esi
403c98:	75 f5                	jne    0x403c8f
403c9a:	8b 45 fc             	mov    -0x4(%ebp),%eax
403c9d:	8b f3                	mov    %ebx,%esi
403c9f:	85 f6                	test   %esi,%esi
403ca1:	74 4b                	je     0x403cee
403ca3:	39 1e                	cmp    %ebx,(%esi)
403ca5:	74 47                	je     0x403cee
403ca7:	ff 75 08             	push   0x8(%ebp)
403caa:	88 1f                	mov    %bl,(%edi)
403cac:	8b c8                	mov    %eax,%ecx
403cae:	8b 16                	mov    (%esi),%edx
403cb0:	57                   	push   %edi
403cb1:	e8 e5 fe ff ff       	call   0x403b9b
403cb6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
403cb9:	84 c0                	test   %al,%al
403cbb:	74 03                	je     0x403cc0
403cbd:	89 79 28             	mov    %edi,0x28(%ecx)
403cc0:	8b 06                	mov    (%esi),%eax
403cc2:	89 45 f8             	mov    %eax,-0x8(%ebp)
403cc5:	8b 78 04             	mov    0x4(%eax),%edi
403cc8:	51                   	push   %ecx
403cc9:	8b 07                	mov    (%edi),%eax
403ccb:	8b 30                	mov    (%eax),%esi
403ccd:	8b ce                	mov    %esi,%ecx
403ccf:	ff 15 f0 e1 40 00    	call   *0x40e1f0
403cd5:	8b cf                	mov    %edi,%ecx
403cd7:	ff d6                	call   *%esi
403cd9:	8b 4d fc             	mov    -0x4(%ebp),%ecx
403cdc:	0a d8                	or     %al,%bl
403cde:	8b 45 f8             	mov    -0x8(%ebp),%eax
403ce1:	88 5d f4             	mov    %bl,-0xc(%ebp)
403ce4:	8b 40 08             	mov    0x8(%eax),%eax
403ce7:	89 45 f8             	mov    %eax,-0x8(%ebp)
403cea:	85 c0                	test   %eax,%eax
403cec:	75 d7                	jne    0x403cc5
403cee:	8b 35 10 d5 40 00    	mov    0x40d510,%esi
403cf4:	85 f6                	test   %esi,%esi
403cf6:	74 10                	je     0x403d08
403cf8:	ff 75 fc             	push   -0x4(%ebp)
403cfb:	8b ce                	mov    %esi,%ecx
403cfd:	ff 75 f4             	push   -0xc(%ebp)
403d00:	ff 15 f0 e1 40 00    	call   *0x40e1f0
403d06:	ff d6                	call   *%esi
403d08:	5f                   	pop    %edi
403d09:	5e                   	pop    %esi
403d0a:	5b                   	pop    %ebx
403d0b:	c9                   	leave
403d0c:	c2 04 00             	ret    $0x4
403d0f:	8b 45 fc             	mov    -0x4(%ebp),%eax
403d12:	83 c6 08             	add    $0x8,%esi
403d15:	eb 88                	jmp    0x403c9f
403d17:	cc                   	int3
403d18:	cc                   	int3
403d19:	cc                   	int3
403d1a:	cc                   	int3
403d1b:	cc                   	int3
403d1c:	cc                   	int3
403d1d:	cc                   	int3
403d1e:	cc                   	int3
403d1f:	cc                   	int3
403d20:	8b ff                	mov    %edi,%edi
403d22:	55                   	push   %ebp
403d23:	8b ec                	mov    %esp,%ebp
403d25:	ff 75 10             	push   0x10(%ebp)
403d28:	8b 55 0c             	mov    0xc(%ebp),%edx
403d2b:	8b 4d 08             	mov    0x8(%ebp),%ecx
403d2e:	e8 20 ff ff ff       	call   0x403c53
403d33:	ff 15 b4 e0 40 00    	call   *0x40e0b4
403d39:	39 05 b8 d5 40 00    	cmp    %eax,0x40d5b8
403d3f:	74 3a                	je     0x403d7b
403d41:	33 c9                	xor    %ecx,%ecx
403d43:	41                   	inc    %ecx
403d44:	f0 0f c1 0d c4 d5 40 	lock xadd %ecx,0x40d5c4
403d4b:	00
403d4c:	41                   	inc    %ecx
403d4d:	83 f9 04             	cmp    $0x4,%ecx
403d50:	7d 22                	jge    0x403d74
403d52:	a3 b8 d5 40 00       	mov    %eax,0x40d5b8
403d57:	e8 bc fd ff ff       	call   0x403b18
403d5c:	85 c0                	test   %eax,%eax
403d5e:	74 0a                	je     0x403d6a
403d60:	ff 75 08             	push   0x8(%ebp)
403d63:	8b c8                	mov    %eax,%ecx
403d65:	e8 e0 fc ff ff       	call   0x403a4a
403d6a:	c7 05 b8 d5 40 00 00 	movl   $0x0,0x40d5b8
403d71:	00 00 00
403d74:	f0 ff 0d c4 d5 40 00 	lock decl 0x40d5c4
403d7b:	5d                   	pop    %ebp
403d7c:	c2 0c 00             	ret    $0xc
403d7f:	a1 b0 d5 40 00       	mov    0x40d5b0,%eax
403d84:	85 c0                	test   %eax,%eax
403d86:	75 10                	jne    0x403d98
403d88:	68 04 17 40 00       	push   $0x401704
403d8d:	ff 15 78 e0 40 00    	call   *0x40e078
403d93:	a3 b0 d5 40 00       	mov    %eax,0x40d5b0
403d98:	c3                   	ret
403d99:	cc                   	int3
403d9a:	cc                   	int3
403d9b:	cc                   	int3
403d9c:	cc                   	int3
403d9d:	cc                   	int3
403d9e:	cc                   	int3
403d9f:	cc                   	int3
403da0:	8b ff                	mov    %edi,%edi
403da2:	56                   	push   %esi
403da3:	8b 35 58 d5 40 00    	mov    0x40d558,%esi
403da9:	85 f6                	test   %esi,%esi
403dab:	75 21                	jne    0x403dce
403dad:	68 18 17 40 00       	push   $0x401718
403db2:	e8 c8 ff ff ff       	call   0x403d7f
403db7:	50                   	push   %eax
403db8:	ff 15 80 e0 40 00    	call   *0x40e080
403dbe:	8b f0                	mov    %eax,%esi
403dc0:	89 35 58 d5 40 00    	mov    %esi,0x40d558
403dc6:	85 f6                	test   %esi,%esi
403dc8:	75 04                	jne    0x403dce
403dca:	32 c0                	xor    %al,%al
403dcc:	5e                   	pop    %esi
403dcd:	c3                   	ret
403dce:	8b ce                	mov    %esi,%ecx
403dd0:	ff 15 f0 e1 40 00    	call   *0x40e1f0
403dd6:	ff d6                	call   *%esi
403dd8:	5e                   	pop    %esi
403dd9:	c3                   	ret
403dda:	cc                   	int3
403ddb:	cc                   	int3
403ddc:	cc                   	int3
403ddd:	cc                   	int3
403dde:	cc                   	int3
403ddf:	cc                   	int3
403de0:	8b ff                	mov    %edi,%edi
403de2:	55                   	push   %ebp
403de3:	8b ec                	mov    %esp,%ebp
403de5:	56                   	push   %esi
403de6:	8b 35 4c d5 40 00    	mov    0x40d54c,%esi
403dec:	85 f6                	test   %esi,%esi
403dee:	75 1d                	jne    0x403e0d
403df0:	68 34 17 40 00       	push   $0x401734
403df5:	e8 85 ff ff ff       	call   0x403d7f
403dfa:	50                   	push   %eax
403dfb:	ff 15 80 e0 40 00    	call   *0x40e080
403e01:	8b f0                	mov    %eax,%esi
403e03:	89 35 4c d5 40 00    	mov    %esi,0x40d54c
403e09:	85 f6                	test   %esi,%esi
403e0b:	74 10                	je     0x403e1d
403e0d:	ff 75 0c             	push   0xc(%ebp)
403e10:	8b ce                	mov    %esi,%ecx
403e12:	ff 75 08             	push   0x8(%ebp)
403e15:	ff 15 f0 e1 40 00    	call   *0x40e1f0
403e1b:	ff d6                	call   *%esi
403e1d:	5e                   	pop    %esi
403e1e:	5d                   	pop    %ebp
403e1f:	c2 08 00             	ret    $0x8
403e22:	8b ff                	mov    %edi,%edi
403e24:	56                   	push   %esi
403e25:	8d 42 0e             	lea    0xe(%edx),%eax
403e28:	50                   	push   %eax
403e29:	8d 42 0c             	lea    0xc(%edx),%eax
403e2c:	50                   	push   %eax
403e2d:	8d 42 0a             	lea    0xa(%edx),%eax
403e30:	50                   	push   %eax
403e31:	8d 72 08             	lea    0x8(%edx),%esi
403e34:	56                   	push   %esi
403e35:	8d 42 06             	lea    0x6(%edx),%eax
403e38:	50                   	push   %eax
403e39:	8d 42 04             	lea    0x4(%edx),%eax
403e3c:	50                   	push   %eax
403e3d:	52                   	push   %edx
403e3e:	68 54 17 40 00       	push   $0x401754
403e43:	51                   	push   %ecx
403e44:	e8 35 6b 00 00       	call   0x40a97e
403e49:	83 c4 24             	add    $0x24,%esp
403e4c:	83 f8 07             	cmp    $0x7,%eax
403e4f:	74 04                	je     0x403e55
403e51:	32 c0                	xor    %al,%al
403e53:	5e                   	pop    %esi
403e54:	c3                   	ret
403e55:	6a 04                	push   $0x4
403e57:	5a                   	pop    %edx
403e58:	66 8b 06             	mov    (%esi),%ax
403e5b:	8a e8                	mov    %al,%ch
403e5d:	8a cc                	mov    %ah,%cl