404988:	59                   	pop    %ecx
404989:	85 c0                	test   %eax,%eax
40498b:	74 02                	je     0x40498f
40498d:	89 30                	mov    %esi,(%eax)
40498f:	8b 45 fc             	mov    -0x4(%ebp),%eax
404992:	03 c6                	add    %esi,%eax
404994:	eb 0c                	jmp    0x4049a2
404996:	8b 45 0c             	mov    0xc(%ebp),%eax
404999:	85 c0                	test   %eax,%eax
40499b:	74 03                	je     0x4049a0
40499d:	83 20 00             	andl   $0x0,(%eax)
4049a0:	8b c6                	mov    %esi,%eax
4049a2:	5f                   	pop    %edi
4049a3:	5e                   	pop    %esi
4049a4:	5b                   	pop    %ebx
4049a5:	c9                   	leave
4049a6:	c2 08 00             	ret    $0x8
4049a9:	6a 10                	push   $0x10
4049ab:	b8 8d ad 40 00       	mov    $0x40ad8d,%eax
4049b0:	e8 96 62 00 00       	call   0x40ac4b
4049b5:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4049b9:	e8 52 f8 ff ff       	call   0x404210
4049be:	33 c0                	xor    %eax,%eax
4049c0:	e9 10 01 00 00       	jmp    0x404ad5
4049c5:	8b 75 e4             	mov    -0x1c(%ebp),%esi
4049c8:	81 7e 10 27 a0 04 80 	cmpl   $0x8004a027,0x10(%esi)
4049cf:	74 28                	je     0x4049f9
4049d1:	a1 00 d0 40 00       	mov    0x40d000,%eax
4049d6:	3d 00 d0 40 00       	cmp    $0x40d000,%eax
4049db:	74 1c                	je     0x4049f9
4049dd:	80 78 19 03          	cmpb   $0x3,0x19(%eax)
4049e1:	72 16                	jb     0x4049f9
4049e3:	ff 76 10             	push   0x10(%esi)
4049e6:	ba 4c 18 40 00       	mov    $0x40184c,%edx
4049eb:	ff 70 14             	push   0x14(%eax)
4049ee:	ff 70 10             	push   0x10(%eax)
4049f1:	6a 0a                	push   $0xa
4049f3:	59                   	pop    %ecx
4049f4:	e8 b2 f5 ff ff       	call   0x403fab
4049f9:	8b 46 10             	mov    0x10(%esi),%eax
4049fc:	89 45 ec             	mov    %eax,-0x14(%ebp)
4049ff:	b8 05 4a 40 00       	mov    $0x404a05,%eax
404a04:	c3                   	ret
404a05:	8b 45 ec             	mov    -0x14(%ebp),%eax
404a08:	e9 c8 00 00 00       	jmp    0x404ad5
404a0d:	a1 00 d0 40 00       	mov    0x40d000,%eax
404a12:	3d 00 d0 40 00       	cmp    $0x40d000,%eax
404a17:	74 20                	je     0x404a39
404a19:	80 78 19 03          	cmpb   $0x3,0x19(%eax)
404a1d:	72 1a                	jb     0x404a39
404a1f:	8b 75 e8             	mov    -0x18(%ebp),%esi
404a22:	ba 4c 18 40 00       	mov    $0x40184c,%edx
404a27:	ff 36                	push   (%esi)
404a29:	ff 70 14             	push   0x14(%eax)
404a2c:	ff 70 10             	push   0x10(%eax)
404a2f:	6a 0b                	push   $0xb
404a31:	59                   	pop    %ecx
404a32:	e8 74 f5 ff ff       	call   0x403fab
404a37:	eb 03                	jmp    0x404a3c
404a39:	8b 75 e8             	mov    -0x18(%ebp),%esi
404a3c:	8b 06                	mov    (%esi),%eax
404a3e:	89 45 ec             	mov    %eax,-0x14(%ebp)
404a41:	b8 05 4a 40 00       	mov    $0x404a05,%eax
404a46:	c3                   	ret
404a47:	a1 00 d0 40 00       	mov    0x40d000,%eax
404a4c:	3d 00 d0 40 00       	cmp    $0x40d000,%eax
404a51:	74 19                	je     0x404a6c
404a53:	80 78 19 02          	cmpb   $0x2,0x19(%eax)
404a57:	72 13                	jb     0x404a6c
404a59:	ff 70 14             	push   0x14(%eax)
404a5c:	ba 4c 18 40 00       	mov    $0x40184c,%edx
404a61:	ff 70 10             	push   0x10(%eax)
404a64:	6a 0c                	push   $0xc
404a66:	59                   	pop    %ecx
404a67:	e8 21 f5 ff ff       	call   0x403f8d
404a6c:	b8 9d 4a 40 00       	mov    $0x404a9d,%eax
404a71:	c3                   	ret
404a72:	a1 00 d0 40 00       	mov    0x40d000,%eax
404a77:	3d 00 d0 40 00       	cmp    $0x40d000,%eax
404a7c:	74 19                	je     0x404a97
404a7e:	80 78 19 02          	cmpb   $0x2,0x19(%eax)
404a82:	72 13                	jb     0x404a97
404a84:	ff 70 14             	push   0x14(%eax)
404a87:	ba 4c 18 40 00       	mov    $0x40184c,%edx
404a8c:	ff 70 10             	push   0x10(%eax)
404a8f:	6a 0d                	push   $0xd
404a91:	59                   	pop    %ecx
404a92:	e8 f6 f4 ff ff       	call   0x403f8d
404a97:	b8 9d 4a 40 00       	mov    $0x404a9d,%eax
404a9c:	c3                   	ret
404a9d:	b8 0e 00 07 80       	mov    $0x8007000e,%eax
404aa2:	eb 31                	jmp    0x404ad5
404aa4:	a1 00 d0 40 00       	mov    0x40d000,%eax
404aa9:	3d 00 d0 40 00       	cmp    $0x40d000,%eax
404aae:	74 19                	je     0x404ac9
404ab0:	80 78 19 01          	cmpb   $0x1,0x19(%eax)
404ab4:	72 13                	jb     0x404ac9
404ab6:	ff 70 14             	push   0x14(%eax)
404ab9:	ba 4c 18 40 00       	mov    $0x40184c,%edx
404abe:	ff 70 10             	push   0x10(%eax)
404ac1:	6a 0e                	push   $0xe
404ac3:	59                   	pop    %ecx
404ac4:	e8 c4 f4 ff ff       	call   0x403f8d
404ac9:	cc                   	int3
404aca:	b8 d0 4a 40 00       	mov    $0x404ad0,%eax
404acf:	c3                   	ret
404ad0:	b8 ff ff 00 80       	mov    $0x8000ffff,%eax
404ad5:	e8 e0 60 00 00       	call   0x40abba
404ada:	c2 04 00             	ret    $0x4
404add:	8b ff                	mov    %edi,%edi
404adf:	55                   	push   %ebp
404ae0:	8b ec                	mov    %esp,%ebp
404ae2:	6a 00                	push   $0x0
404ae4:	6a 10                	push   $0x10
404ae6:	ff 75 10             	push   0x10(%ebp)
404ae9:	6a 0a                	push   $0xa
404aeb:	68 5c 18 40 00       	push   $0x40185c
404af0:	6a 2b                	push   $0x2b
404af2:	ff 75 0c             	push   0xc(%ebp)
404af5:	ff 75 08             	push   0x8(%ebp)
404af8:	ff 15 dc e1 40 00    	call   *0x40e1dc
404afe:	83 c4 20             	add    $0x20,%esp
404b01:	5d                   	pop    %ebp
404b02:	c2 0c 00             	ret    $0xc
404b05:	8b ff                	mov    %edi,%edi
404b07:	56                   	push   %esi
404b08:	8b f1                	mov    %ecx,%esi
404b0a:	8b 06                	mov    (%esi),%eax
404b0c:	83 e8 01             	sub    $0x1,%eax
404b0f:	74 15                	je     0x404b26
404b11:	83 e8 01             	sub    $0x1,%eax
404b14:	75 1c                	jne    0x404b32
404b16:	8b 46 04             	mov    0x4(%esi),%eax
404b19:	50                   	push   %eax
404b1a:	83 60 04 00          	andl   $0x0,0x4(%eax)
404b1e:	ff 15 f4 e0 40 00    	call   *0x40e0f4
404b24:	eb 09                	jmp    0x404b2f
404b26:	ff 76 04             	push   0x4(%esi)
404b29:	ff 15 f8 e0 40 00    	call   *0x40e0f8
404b2f:	83 26 00             	andl   $0x0,(%esi)
404b32:	5e                   	pop    %esi
404b33:	c3                   	ret
404b34:	8b ff                	mov    %edi,%edi
404b36:	55                   	push   %ebp
404b37:	8b ec                	mov    %esp,%ebp
404b39:	56                   	push   %esi
404b3a:	8b 75 08             	mov    0x8(%ebp),%esi
404b3d:	57                   	push   %edi
404b3e:	8b f9                	mov    %ecx,%edi
404b40:	56                   	push   %esi
404b41:	83 27 00             	andl   $0x0,(%edi)
404b44:	89 77 04             	mov    %esi,0x4(%edi)
404b47:	ff 15 fc e0 40 00    	call   *0x40e0fc
404b4d:	ff 15 b4 e0 40 00    	call   *0x40e0b4
404b53:	89 46 04             	mov    %eax,0x4(%esi)
404b56:	8b c7                	mov    %edi,%eax
404b58:	c7 07 02 00 00 00    	movl   $0x2,(%edi)
404b5e:	5f                   	pop    %edi
404b5f:	5e                   	pop    %esi
404b60:	5d                   	pop    %ebp
404b61:	c2 04 00             	ret    $0x4
404b64:	e9 9c ff ff ff       	jmp    0x404b05
404b69:	8b ff                	mov    %edi,%edi
404b6b:	55                   	push   %ebp
404b6c:	8b ec                	mov    %esp,%ebp
404b6e:	51                   	push   %ecx
404b6f:	51                   	push   %ecx
404b70:	56                   	push   %esi
404b71:	8b f1                	mov    %ecx,%esi
404b73:	c6 46 30 00          	movb   $0x0,0x30(%esi)
404b77:	e8 c2 03 00 00       	call   0x404f3e
404b7c:	68 f0 d5 40 00       	push   $0x40d5f0
404b81:	8d 4d f8             	lea    -0x8(%ebp),%ecx
404b84:	e8 ab ff ff ff       	call   0x404b34
404b89:	a1 18 d7 40 00       	mov    0x40d718,%eax
404b8e:	b9 18 d7 40 00       	mov    $0x40d718,%ecx
404b93:	eb 09                	jmp    0x404b9e
404b95:	3b c6                	cmp    %esi,%eax
404b97:	74 0b                	je     0x404ba4
404b99:	8d 48 38             	lea    0x38(%eax),%ecx
404b9c:	8b 01                	mov    (%ecx),%eax
404b9e:	85 c0                	test   %eax,%eax
404ba0:	75 f3                	jne    0x404b95
404ba2:	eb 05                	jmp    0x404ba9
404ba4:	8b 46 38             	mov    0x38(%esi),%eax
404ba7:	89 01                	mov    %eax,(%ecx)
404ba9:	8d 4d f8             	lea    -0x8(%ebp),%ecx
404bac:	e8 54 ff ff ff       	call   0x404b05
404bb1:	8d 4e 0c             	lea    0xc(%esi),%ecx
404bb4:	e8 93 00 00 00       	call   0x404c4c
404bb9:	8b ce                	mov    %esi,%ecx
404bbb:	e8 7e 03 00 00       	call   0x404f3e
404bc0:	5e                   	pop    %esi
404bc1:	c9                   	leave
404bc2:	c3                   	ret
404bc3:	6a 74                	push   $0x74
404bc5:	b8 b0 ad 40 00       	mov    $0x40adb0,%eax
404bca:	e8 11 60 00 00       	call   0x40abe0
404bcf:	8b f9                	mov    %ecx,%edi
404bd1:	68 f0 d5 40 00       	push   $0x40d5f0
404bd6:	8d 4d ec             	lea    -0x14(%ebp),%ecx
404bd9:	e8 56 ff ff ff       	call   0x404b34
404bde:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
404be2:	8b 35 18 d7 40 00    	mov    0x40d718,%esi
404be8:	eb 24                	jmp    0x404c0e
404bea:	33 c9                	xor    %ecx,%ecx
404bec:	8b 44 8e 1c          	mov    0x1c(%esi,%ecx,4),%eax
404bf0:	3b 04 8f             	cmp    (%edi,%ecx,4),%eax
404bf3:	75 16                	jne    0x404c0b
404bf5:	41                   	inc    %ecx
404bf6:	83 f9 04             	cmp    $0x4,%ecx
404bf9:	75 f1                	jne    0x404bec
404bfb:	8d 4d ec             	lea    -0x14(%ebp),%ecx
404bfe:	e8 02 ff ff ff       	call   0x404b05
404c03:	8b c6                	mov    %esi,%eax
404c05:	e8 b0 5f 00 00       	call   0x40abba
404c0a:	c3                   	ret
404c0b:	8b 76 38             	mov    0x38(%esi),%esi
404c0e:	85 f6                	test   %esi,%esi
404c10:	75 d8                	jne    0x404bea
404c12:	a1 00 d0 40 00       	mov    0x40d000,%eax
404c17:	3d 00 d0 40 00       	cmp    $0x40d000,%eax
404c1c:	74 12                	je     0x404c30
404c1e:	80 78 19 02          	cmpb   $0x2,0x19(%eax)
404c22:	72 0c                	jb     0x404c30
404c24:	57                   	push   %edi
404c25:	ff 70 14             	push   0x14(%eax)
404c28:	ff 70 10             	push   0x10(%eax)
404c2b:	e8 ad fe ff ff       	call   0x404add
404c30:	68 03 01 01 80       	push   $0x80010103
404c35:	8d 4d 80             	lea    -0x80(%ebp),%ecx
404c38:	e8 31 f2 ff ff       	call   0x403e6e
404c3d:	68 a4 c6 40 00       	push   $0x40c6a4
404c42:	8d 45 80             	lea    -0x80(%ebp),%eax
404c45:	50                   	push   %eax
404c46:	e8 ef 5e 00 00       	call   0x40ab3a
404c4b:	cc                   	int3
404c4c:	8b ff                	mov    %edi,%edi
404c4e:	55                   	push   %ebp
404c4f:	8b ec                	mov    %esp,%ebp
404c51:	51                   	push   %ecx
404c52:	51                   	push   %ecx
404c53:	56                   	push   %esi
404c54:	8b f1                	mov    %ecx,%esi
404c56:	57                   	push   %edi
404c57:	89 75 f8             	mov    %esi,-0x8(%ebp)
404c5a:	8b 3e                	mov    (%esi),%edi
404c5c:	85 ff                	test   %edi,%edi
404c5e:	74 37                	je     0x404c97
404c60:	8b 46 04             	mov    0x4(%esi),%eax
404c63:	53                   	push   %ebx
404c64:	8b df                	mov    %edi,%ebx
404c66:	3b f8                	cmp    %eax,%edi
404c68:	74 13                	je     0x404c7d
404c6a:	8b f0                	mov    %eax,%esi
404c6c:	8b cb                	mov    %ebx,%ecx
404c6e:	e8 55 00 00 00       	call   0x404cc8
404c73:	83 c3 08             	add    $0x8,%ebx
404c76:	3b de                	cmp    %esi,%ebx
404c78:	75 f2                	jne    0x404c6c
404c7a:	8b 75 f8             	mov    -0x8(%ebp),%esi
404c7d:	8b 56 08             	mov    0x8(%esi),%edx
404c80:	8b cf                	mov    %edi,%ecx
404c82:	2b d7                	sub    %edi,%edx
404c84:	83 e2 f8             	and    $0xfffffff8,%edx
404c87:	e8 0f 00 00 00       	call   0x404c9b
404c8c:	33 c0                	xor    %eax,%eax
404c8e:	89 06                	mov    %eax,(%esi)
404c90:	89 46 04             	mov    %eax,0x4(%esi)
404c93:	89 46 08             	mov    %eax,0x8(%esi)
404c96:	5b                   	pop    %ebx
404c97:	5f                   	pop    %edi
404c98:	5e                   	pop    %esi
404c99:	c9                   	leave
404c9a:	c3                   	ret
404c9b:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
404ca1:	72 14                	jb     0x404cb7
404ca3:	56                   	push   %esi
404ca4:	8b 71 fc             	mov    -0x4(%ecx),%esi
404ca7:	83 c2 23             	add    $0x23,%edx
404caa:	2b ce                	sub    %esi,%ecx
404cac:	8d 41 fc             	lea    -0x4(%ecx),%eax
404caf:	83 f8 1f             	cmp    $0x1f,%eax
404cb2:	77 0d                	ja     0x404cc1
404cb4:	8b ce                	mov    %esi,%ecx
404cb6:	5e                   	pop    %esi
404cb7:	52                   	push   %edx
404cb8:	51                   	push   %ecx
404cb9:	e8 81 55 00 00       	call   0x40a23f
404cbe:	59                   	pop    %ecx
404cbf:	59                   	pop    %ecx
404cc0:	c3                   	ret
404cc1:	ff 15 44 e1 40 00    	call   *0x40e144
404cc7:	cc                   	int3
404cc8:	8b ff                	mov    %edi,%edi
404cca:	57                   	push   %edi
404ccb:	8b 79 04             	mov    0x4(%ecx),%edi
404cce:	85 ff                	test   %edi,%edi
404cd0:	74 1d                	je     0x404cef
404cd2:	83 c8 ff             	or     $0xffffffff,%eax
404cd5:	f0 0f c1 47 08       	lock xadd %eax,0x8(%edi)
404cda:	75 13                	jne    0x404cef
404cdc:	8b 07                	mov    (%edi),%eax
404cde:	56                   	push   %esi
404cdf:	8b 70 04             	mov    0x4(%eax),%esi
404ce2:	8b ce                	mov    %esi,%ecx
404ce4:	ff 15 f0 e1 40 00    	call   *0x40e1f0
404cea:	8b cf                	mov    %edi,%ecx
404cec:	ff d6                	call   *%esi
404cee:	5e                   	pop    %esi
404cef:	5f                   	pop    %edi
404cf0:	c3                   	ret
404cf1:	8b ff                	mov    %edi,%edi
404cf3:	55                   	push   %ebp
404cf4:	8b ec                	mov    %esp,%ebp
404cf6:	83 e4 f8             	and    $0xfffffff8,%esp
404cf9:	81 ec f8 00 00 00    	sub    $0xf8,%esp
404cff:	a1 50 d1 40 00       	mov    0x40d150,%eax
404d04:	33 c4                	xor    %esp,%eax
404d06:	89 84 24 f4 00 00 00 	mov    %eax,0xf4(%esp)
404d0d:	56                   	push   %esi
404d0e:	57                   	push   %edi
404d0f:	ff 15 ac e0 40 00    	call   *0x40e0ac
404d15:	50                   	push   %eax
404d16:	8d 84 24 bc 00 00 00 	lea    0xbc(%esp),%eax
404d1d:	68 6c 18 40 00       	push   $0x40186c
404d22:	50                   	push   %eax
404d23:	e8 4e 02 00 00       	call   0x404f76
404d28:	83 c4 0c             	add    $0xc,%esp
404d2b:	c7 84 24 90 00 00 00 	movl   $0x401170,0x90(%esp)
404d32:	70 11 40 00
404d36:	33 c9                	xor    %ecx,%ecx
404d38:	c7 84 24 9c 00 00 00 	movl   $0x29,0x9c(%esp)
404d3f:	29 00 00 00
404d43:	8d 84 24 b8 00 00 00 	lea    0xb8(%esp),%eax
404d4a:	89 8c 24 8c 00 00 00 	mov    %ecx,0x8c(%esp)
404d51:	33 ff                	xor    %edi,%edi
404d53:	89 84 24 80 00 00 00 	mov    %eax,0x80(%esp)
404d5a:	68 1c d7 40 00       	push   $0x40d71c
404d5f:	51                   	push   %ecx
404d60:	51                   	push   %ecx
404d61:	6a ff                	push   $0xffffffff
404d63:	47                   	inc    %edi
404d64:	89 8c 24 a4 00 00 00 	mov    %ecx,0xa4(%esp)
404d6b:	57                   	push   %edi
404d6c:	8d 84 24 8c 00 00 00 	lea    0x8c(%esp),%eax
404d73:	89 8c 24 ac 00 00 00 	mov    %ecx,0xac(%esp)
404d7a:	50                   	push   %eax
404d7b:	57                   	push   %edi
404d7c:	8d 84 24 a8 00 00 00 	lea    0xa8(%esp),%eax