401997:	e8 bc f7 ff ff       	call   0x401158
40199c:	80 3d 35 90 42 00 00 	cmpb   $0x0,0x429035
4019a3:	74 0a                	je     0x4019af
4019a5:	68 b4 95 42 00       	push   $0x4295b4
4019aa:	e8 b1 f7 ff ff       	call   0x401160
4019af:	b8 d4 95 42 00       	mov    $0x4295d4,%eax
4019b4:	e8 43 f8 ff ff       	call   0x4011fc
4019b9:	b8 e4 95 42 00       	mov    $0x4295e4,%eax
4019be:	e8 39 f8 ff ff       	call   0x4011fc
4019c3:	b8 10 96 42 00       	mov    $0x429610,%eax
4019c8:	e8 2f f8 ff ff       	call   0x4011fc
4019cd:	68 f8 0f 00 00       	push   $0xff8
4019d2:	6a 00                	push   $0x0
4019d4:	e8 5f f7 ff ff       	call   0x401138
4019d9:	a3 0c 96 42 00       	mov    %eax,0x42960c
4019de:	83 3d 0c 96 42 00 00 	cmpl   $0x0,0x42960c
4019e5:	74 40                	je     0x401a27
4019e7:	b8 03 00 00 00       	mov    $0x3,%eax
4019ec:	8b 15 0c 96 42 00    	mov    0x42960c,%edx
4019f2:	33 c9                	xor    %ecx,%ecx
4019f4:	89 4c 82 f4          	mov    %ecx,-0xc(%edx,%eax,4)
4019f8:	40                   	inc    %eax
4019f9:	3d 01 04 00 00       	cmp    $0x401,%eax
4019fe:	75 ec                	jne    0x4019ec
401a00:	c7 45 fc f4 95 42 00 	movl   $0x4295f4,-0x4(%ebp)
401a07:	8b 45 fc             	mov    -0x4(%ebp),%eax
401a0a:	8b 55 fc             	mov    -0x4(%ebp),%edx
401a0d:	89 50 04             	mov    %edx,0x4(%eax)
401a10:	8b 45 fc             	mov    -0x4(%ebp),%eax
401a13:	8b 55 fc             	mov    -0x4(%ebp),%edx
401a16:	89 10                	mov    %edx,(%eax)
401a18:	8b 45 fc             	mov    -0x4(%ebp),%eax
401a1b:	a3 00 96 42 00       	mov    %eax,0x429600
401a20:	c6 05 ac 95 42 00 01 	movb   $0x1,0x4295ac
401a27:	33 c0                	xor    %eax,%eax
401a29:	5a                   	pop    %edx
401a2a:	59                   	pop    %ecx
401a2b:	59                   	pop    %ecx
401a2c:	64 89 10             	mov    %edx,%fs:(%eax)
401a2f:	68 4f 1a 40 00       	push   $0x401a4f
401a34:	80 3d 35 90 42 00 00 	cmpb   $0x0,0x429035
401a3b:	74 0a                	je     0x401a47
401a3d:	68 b4 95 42 00       	push   $0x4295b4
401a42:	e8 21 f7 ff ff       	call   0x401168
401a47:	c3                   	ret
401a48:	e9 bb 16 00 00       	jmp    0x403108
401a4d:	eb e5                	jmp    0x401a34
401a4f:	a0 ac 95 42 00       	mov    0x4295ac,%al
401a54:	59                   	pop    %ecx
401a55:	5d                   	pop    %ebp
401a56:	c3                   	ret
401a57:	90                   	nop
401a58:	55                   	push   %ebp
401a59:	8b ec                	mov    %esp,%ebp
401a5b:	83 c4 f8             	add    $0xfffffff8,%esp
401a5e:	80 3d ac 95 42 00 00 	cmpb   $0x0,0x4295ac
401a65:	0f 84 e8 00 00 00    	je     0x401b53
401a6b:	33 c0                	xor    %eax,%eax
401a6d:	55                   	push   %ebp
401a6e:	68 4c 1b 40 00       	push   $0x401b4c
401a73:	64 ff 30             	push   %fs:(%eax)
401a76:	64 89 20             	mov    %esp,%fs:(%eax)
401a79:	80 3d 35 90 42 00 00 	cmpb   $0x0,0x429035
401a80:	74 0a                	je     0x401a8c
401a82:	68 b4 95 42 00       	push   $0x4295b4
401a87:	e8 d4 f6 ff ff       	call   0x401160
401a8c:	c6 05 ac 95 42 00 00 	movb   $0x0,0x4295ac
401a93:	a1 0c 96 42 00       	mov    0x42960c,%eax
401a98:	50                   	push   %eax
401a99:	e8 a2 f6 ff ff       	call   0x401140
401a9e:	33 c0                	xor    %eax,%eax
401aa0:	a3 0c 96 42 00       	mov    %eax,0x42960c
401aa5:	a1 d4 95 42 00       	mov    0x4295d4,%eax
401aaa:	89 45 f8             	mov    %eax,-0x8(%ebp)
401aad:	eb 1b                	jmp    0x401aca
401aaf:	68 00 80 00 00       	push   $0x8000
401ab4:	6a 00                	push   $0x0
401ab6:	8b 45 f8             	mov    -0x8(%ebp),%eax
401ab9:	8b 40 08             	mov    0x8(%eax),%eax
401abc:	50                   	push   %eax
401abd:	e8 8e f6 ff ff       	call   0x401150
401ac2:	8b 45 f8             	mov    -0x8(%ebp),%eax
401ac5:	8b 00                	mov    (%eax),%eax
401ac7:	89 45 f8             	mov    %eax,-0x8(%ebp)
401aca:	b8 d4 95 42 00       	mov    $0x4295d4,%eax
401acf:	3b 45 f8             	cmp    -0x8(%ebp),%eax
401ad2:	75 db                	jne    0x401aaf
401ad4:	b8 d4 95 42 00       	mov    $0x4295d4,%eax
401ad9:	e8 1e f7 ff ff       	call   0x4011fc
401ade:	b8 e4 95 42 00       	mov    $0x4295e4,%eax
401ae3:	e8 14 f7 ff ff       	call   0x4011fc
401ae8:	b8 10 96 42 00       	mov    $0x429610,%eax
401aed:	e8 0a f7 ff ff       	call   0x4011fc
401af2:	a1 cc 95 42 00       	mov    0x4295cc,%eax
401af7:	89 45 fc             	mov    %eax,-0x4(%ebp)
401afa:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
401afe:	74 21                	je     0x401b21
401b00:	8b 45 fc             	mov    -0x4(%ebp),%eax
401b03:	8b 00                	mov    (%eax),%eax
401b05:	a3 cc 95 42 00       	mov    %eax,0x4295cc
401b0a:	8b 45 fc             	mov    -0x4(%ebp),%eax
401b0d:	50                   	push   %eax
401b0e:	e8 2d f6 ff ff       	call   0x401140
401b13:	a1 cc 95 42 00       	mov    0x4295cc,%eax
401b18:	89 45 fc             	mov    %eax,-0x4(%ebp)
401b1b:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
401b1f:	75 df                	jne    0x401b00
401b21:	33 c0                	xor    %eax,%eax
401b23:	5a                   	pop    %edx
401b24:	59                   	pop    %ecx
401b25:	59                   	pop    %ecx
401b26:	64 89 10             	mov    %edx,%fs:(%eax)
401b29:	68 53 1b 40 00       	push   $0x401b53
401b2e:	80 3d 35 90 42 00 00 	cmpb   $0x0,0x429035
401b35:	74 0a                	je     0x401b41
401b37:	68 b4 95 42 00       	push   $0x4295b4
401b3c:	e8 27 f6 ff ff       	call   0x401168
401b41:	68 b4 95 42 00       	push   $0x4295b4
401b46:	e8 25 f6 ff ff       	call   0x401170
401b4b:	c3                   	ret
401b4c:	e9 b7 15 00 00       	jmp    0x403108
401b51:	eb db                	jmp    0x401b2e
401b53:	59                   	pop    %ecx
401b54:	59                   	pop    %ecx
401b55:	5d                   	pop    %ebp
401b56:	c3                   	ret
401b57:	90                   	nop
401b58:	53                   	push   %ebx
401b59:	83 c4 f8             	add    $0xfffffff8,%esp
401b5c:	3b 05 00 96 42 00    	cmp    0x429600,%eax
401b62:	75 09                	jne    0x401b6d
401b64:	8b 50 04             	mov    0x4(%eax),%edx
401b67:	89 15 00 96 42 00    	mov    %edx,0x429600
401b6d:	8b 50 04             	mov    0x4(%eax),%edx
401b70:	89 14 24             	mov    %edx,(%esp)
401b73:	8b 50 08             	mov    0x8(%eax),%edx
401b76:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
401b7c:	7f 4e                	jg     0x401bcc
401b7e:	3b 04 24             	cmp    (%esp),%eax
401b81:	75 17                	jne    0x401b9a
401b83:	85 d2                	test   %edx,%edx
401b85:	79 03                	jns    0x401b8a
401b87:	83 c2 03             	add    $0x3,%edx
401b8a:	c1 fa 02             	sar    $0x2,%edx
401b8d:	a1 0c 96 42 00       	mov    0x42960c,%eax
401b92:	33 c9                	xor    %ecx,%ecx
401b94:	89 4c 90 f4          	mov    %ecx,-0xc(%eax,%edx,4)
401b98:	eb 4b                	jmp    0x401be5
401b9a:	85 d2                	test   %edx,%edx
401b9c:	79 03                	jns    0x401ba1
401b9e:	83 c2 03             	add    $0x3,%edx
401ba1:	c1 fa 02             	sar    $0x2,%edx
401ba4:	8b 0d 0c 96 42 00    	mov    0x42960c,%ecx
401baa:	8b 1c 24             	mov    (%esp),%ebx
401bad:	89 5c 91 f4          	mov    %ebx,-0xc(%ecx,%edx,4)
401bb1:	8b 00                	mov    (%eax),%eax
401bb3:	89 44 24 04          	mov    %eax,0x4(%esp)
401bb7:	8b 04 24             	mov    (%esp),%eax
401bba:	8b 54 24 04          	mov    0x4(%esp),%edx
401bbe:	89 10                	mov    %edx,(%eax)
401bc0:	8b 44 24 04          	mov    0x4(%esp),%eax
401bc4:	8b 14 24             	mov    (%esp),%edx
401bc7:	89 50 04             	mov    %edx,0x4(%eax)
401bca:	eb 19                	jmp    0x401be5
401bcc:	8b 00                	mov    (%eax),%eax
401bce:	89 44 24 04          	mov    %eax,0x4(%esp)
401bd2:	8b 04 24             	mov    (%esp),%eax
401bd5:	8b 54 24 04          	mov    0x4(%esp),%edx
401bd9:	89 10                	mov    %edx,(%eax)
401bdb:	8b 44 24 04          	mov    0x4(%esp),%eax
401bdf:	8b 14 24             	mov    (%esp),%edx
401be2:	89 50 04             	mov    %edx,0x4(%eax)
401be5:	59                   	pop    %ecx
401be6:	5a                   	pop    %edx
401be7:	5b                   	pop    %ebx
401be8:	c3                   	ret
401be9:	8d 40 00             	lea    0x0(%eax),%eax
401bec:	53                   	push   %ebx
401bed:	51                   	push   %ecx
401bee:	8b cc                	mov    %esp,%ecx
401bf0:	8b 15 10 96 42 00    	mov    0x429610,%edx
401bf6:	89 11                	mov    %edx,(%ecx)
401bf8:	eb 18                	jmp    0x401c12
401bfa:	8b 11                	mov    (%ecx),%edx
401bfc:	8b 52 08             	mov    0x8(%edx),%edx
401bff:	3b c2                	cmp    %edx,%eax
401c01:	72 09                	jb     0x401c0c
401c03:	8b 19                	mov    (%ecx),%ebx
401c05:	03 53 0c             	add    0xc(%ebx),%edx
401c08:	3b c2                	cmp    %edx,%eax
401c0a:	72 1d                	jb     0x401c29
401c0c:	8b 11                	mov    (%ecx),%edx
401c0e:	8b 12                	mov    (%edx),%edx
401c10:	89 11                	mov    %edx,(%ecx)
401c12:	ba 10 96 42 00       	mov    $0x429610,%edx
401c17:	3b 11                	cmp    (%ecx),%edx
401c19:	75 df                	jne    0x401bfa
401c1b:	c7 05 b0 95 42 00 03 	movl   $0x3,0x4295b0
401c22:	00 00 00
401c25:	33 c0                	xor    %eax,%eax
401c27:	89 01                	mov    %eax,(%ecx)
401c29:	8b 01                	mov    (%ecx),%eax
401c2b:	5a                   	pop    %edx
401c2c:	5b                   	pop    %ebx
401c2d:	c3                   	ret
401c2e:	8b c0                	mov    %eax,%eax
401c30:	53                   	push   %ebx
401c31:	51                   	push   %ecx
401c32:	8b ca                	mov    %edx,%ecx
401c34:	83 e9 04             	sub    $0x4,%ecx
401c37:	8d 1c 01             	lea    (%ecx,%eax,1),%ebx
401c3a:	89 1c 24             	mov    %ebx,(%esp)
401c3d:	83 fa 10             	cmp    $0x10,%edx
401c40:	7c 13                	jl     0x401c55
401c42:	8b 14 24             	mov    (%esp),%edx
401c45:	c7 02 07 00 00 80    	movl   $0x80000007,(%edx)
401c4b:	8b d1                	mov    %ecx,%edx
401c4d:	e8 da 01 00 00       	call   0x401e2c
401c52:	5a                   	pop    %edx
401c53:	5b                   	pop    %ebx
401c54:	c3                   	ret
401c55:	83 fa 04             	cmp    $0x4,%edx
401c58:	7c 0f                	jl     0x401c69
401c5a:	8b ca                	mov    %edx,%ecx
401c5c:	81 c9 02 00 00 80    	or     $0x80000002,%ecx
401c62:	89 08                	mov    %ecx,(%eax)
401c64:	8b 04 24             	mov    (%esp),%eax
401c67:	89 08                	mov    %ecx,(%eax)
401c69:	5a                   	pop    %edx
401c6a:	5b                   	pop    %ebx
401c6b:	c3                   	ret
401c6c:	ff 05 9c 95 42 00    	incl   0x42959c
401c72:	8b d0                	mov    %eax,%edx
401c74:	83 ea 04             	sub    $0x4,%edx
401c77:	8b 12                	mov    (%edx),%edx
401c79:	81 e2 fc ff ff 7f    	and    $0x7ffffffc,%edx
401c7f:	83 ea 04             	sub    $0x4,%edx
401c82:	01 15 a0 95 42 00    	add    %edx,0x4295a0
401c88:	e8 fb 06 00 00       	call   0x402388
401c8d:	c3                   	ret
401c8e:	8b c0                	mov    %eax,%eax
401c90:	83 fa 0c             	cmp    $0xc,%edx
401c93:	7c 0e                	jl     0x401ca3
401c95:	83 ca 02             	or     $0x2,%edx
401c98:	89 10                	mov    %edx,(%eax)
401c9a:	83 c0 04             	add    $0x4,%eax
401c9d:	e8 ca ff ff ff       	call   0x401c6c
401ca2:	c3                   	ret
401ca3:	83 fa 04             	cmp    $0x4,%edx
401ca6:	7c 0a                	jl     0x401cb2
401ca8:	8b ca                	mov    %edx,%ecx
401caa:	81 c9 02 00 00 80    	or     $0x80000002,%ecx
401cb0:	89 08                	mov    %ecx,(%eax)
401cb2:	03 c2                	add    %edx,%eax
401cb4:	83 20 fe             	andl   $0xfffffffe,(%eax)
401cb7:	c3                   	ret
401cb8:	53                   	push   %ebx
401cb9:	56                   	push   %esi
401cba:	51                   	push   %ecx
401cbb:	8b d0                	mov    %eax,%edx
401cbd:	83 ea 04             	sub    $0x4,%edx
401cc0:	8b 12                	mov    (%edx),%edx
401cc2:	8b ca                	mov    %edx,%ecx
401cc4:	81 e1 02 00 00 80    	and    $0x80000002,%ecx
401cca:	81 f9 02 00 00 80    	cmp    $0x80000002,%ecx
401cd0:	74 0a                	je     0x401cdc
401cd2:	c7 05 b0 95 42 00 04 	movl   $0x4,0x4295b0
401cd9:	00 00 00
401cdc:	8b da                	mov    %edx,%ebx
401cde:	81 e3 fc ff ff 7f    	and    $0x7ffffffc,%ebx
401ce4:	2b c3                	sub    %ebx,%eax
401ce6:	8b c8                	mov    %eax,%ecx
401ce8:	33 11                	xor    (%ecx),%edx
401cea:	f7 c2 fe ff ff ff    	test   $0xfffffffe,%edx
401cf0:	74 0a                	je     0x401cfc
401cf2:	c7 05 b0 95 42 00 05 	movl   $0x5,0x4295b0
401cf9:	00 00 00
401cfc:	f6 01 01             	testb  $0x1,(%ecx)
401cff:	74 29                	je     0x401d2a
401d01:	8b d0                	mov    %eax,%edx
401d03:	83 ea 0c             	sub    $0xc,%edx
401d06:	8b 72 08             	mov    0x8(%edx),%esi
401d09:	2b c6                	sub    %esi,%eax
401d0b:	89 04 24             	mov    %eax,(%esp)
401d0e:	8b 04 24             	mov    (%esp),%eax
401d11:	3b 70 08             	cmp    0x8(%eax),%esi
401d14:	74 0a                	je     0x401d20
401d16:	c7 05 b0 95 42 00 06 	movl   $0x6,0x4295b0
401d1d:	00 00 00
401d20:	8b 04 24             	mov    (%esp),%eax
401d23:	e8 30 fe ff ff       	call   0x401b58
401d28:	03 de                	add    %esi,%ebx
401d2a:	8b c3                	mov    %ebx,%eax
401d2c:	5a                   	pop    %edx
401d2d:	5e                   	pop    %esi
401d2e:	5b                   	pop    %ebx
401d2f:	c3                   	ret
401d30:	53                   	push   %ebx
401d31:	56                   	push   %esi
401d32:	51                   	push   %ecx
401d33:	8b d8                	mov    %eax,%ebx
401d35:	33 f6                	xor    %esi,%esi
401d37:	8b 03                	mov    (%ebx),%eax
401d39:	a9 00 00 00 80       	test   $0x80000000,%eax
401d3e:	74 0b                	je     0x401d4b
401d40:	25 fc ff ff 7f       	and    $0x7ffffffc,%eax
401d45:	03 f0                	add    %eax,%esi
401d47:	03 d8                	add    %eax,%ebx
401d49:	8b 03                	mov    (%ebx),%eax
401d4b:	a8 02                	test   $0x2,%al
401d4d:	75 18                	jne    0x401d67
401d4f:	89 1c 24             	mov    %ebx,(%esp)
401d52:	8b 04 24             	mov    (%esp),%eax
401d55:	e8 fe fd ff ff       	call   0x401b58
401d5a:	8b 04 24             	mov    (%esp),%eax
401d5d:	8b 40 08             	mov    0x8(%eax),%eax
401d60:	03 f0                	add    %eax,%esi
401d62:	03 d8                	add    %eax,%ebx
401d64:	83 23 fe             	andl   $0xfffffffe,(%ebx)
401d67:	8b c6                	mov    %esi,%eax
401d69:	5a                   	pop    %edx
401d6a:	5e                   	pop    %esi
401d6b:	5b                   	pop    %ebx
401d6c:	c3                   	ret
401d6d:	8d 40 00             	lea    0x0(%eax),%eax
401d70:	53                   	push   %ebx
401d71:	56                   	push   %esi
401d72:	57                   	push   %edi
401d73:	55                   	push   %ebp
401d74:	83 c4 f4             	add    $0xfffffff4,%esp
401d77:	8b f2                	mov    %edx,%esi
401d79:	8b e8                	mov    %eax,%ebp
401d7b:	33 db                	xor    %ebx,%ebx
401d7d:	8b c5                	mov    %ebp,%eax
401d7f:	e8 68 fe ff ff       	call   0x401bec
401d84:	89 44 24 08          	mov    %eax,0x8(%esp)
401d88:	83 7c 24 08 00       	cmpl   $0x0,0x8(%esp)
401d8d:	0f 84 8f 00 00 00    	je     0x401e22
401d93:	8b 44 24 08          	mov    0x8(%esp),%eax
401d97:	8b 78 08             	mov    0x8(%eax),%edi
401d9a:	8b c7                	mov    %edi,%eax
401d9c:	8b 54 24 08          	mov    0x8(%esp),%edx
401da0:	03 42 0c             	add    0xc(%edx),%eax
401da3:	8b d0                	mov    %eax,%edx
401da5:	8d 0c 2e             	lea    (%esi,%ebp,1),%ecx
401da8:	2b d1                	sub    %ecx,%edx
401daa:	83 fa 0c             	cmp    $0xc,%edx
401dad:	7f 04                	jg     0x401db3
401daf:	8b f0                	mov    %eax,%esi
401db1:	2b f5                	sub    %ebp,%esi