401d2b:	f6 01 01             	testb  $0x1,(%ecx)
401d2e:	74 20                	je     0x401d50
401d30:	8b d0                	mov    %eax,%edx
401d32:	83 ea 0c             	sub    $0xc,%edx
401d35:	8b 72 08             	mov    0x8(%edx),%esi
401d38:	2b c6                	sub    %esi,%eax
401d3a:	3b 70 08             	cmp    0x8(%eax),%esi
401d3d:	74 0a                	je     0x401d49
401d3f:	c7 05 c4 55 47 00 06 	movl   $0x6,0x4755c4
401d46:	00 00 00
401d49:	e8 8a fe ff ff       	call   0x401bd8
401d4e:	03 de                	add    %esi,%ebx
401d50:	8b c3                	mov    %ebx,%eax
401d52:	5e                   	pop    %esi
401d53:	5b                   	pop    %ebx
401d54:	c3                   	ret
401d55:	8d 40 00             	lea    0x0(%eax),%eax
401d58:	53                   	push   %ebx
401d59:	56                   	push   %esi
401d5a:	57                   	push   %edi
401d5b:	8b d8                	mov    %eax,%ebx
401d5d:	33 ff                	xor    %edi,%edi
401d5f:	8b 03                	mov    (%ebx),%eax
401d61:	a9 00 00 00 80       	test   $0x80000000,%eax
401d66:	74 0b                	je     0x401d73
401d68:	25 fc ff ff 7f       	and    $0x7ffffffc,%eax
401d6d:	03 f8                	add    %eax,%edi
401d6f:	03 d8                	add    %eax,%ebx
401d71:	8b 03                	mov    (%ebx),%eax
401d73:	a8 02                	test   $0x2,%al
401d75:	75 13                	jne    0x401d8a
401d77:	8b f3                	mov    %ebx,%esi
401d79:	8b c6                	mov    %esi,%eax
401d7b:	e8 58 fe ff ff       	call   0x401bd8
401d80:	8b 46 08             	mov    0x8(%esi),%eax
401d83:	03 f8                	add    %eax,%edi
401d85:	03 d8                	add    %eax,%ebx
401d87:	83 23 fe             	andl   $0xfffffffe,(%ebx)
401d8a:	8b c7                	mov    %edi,%eax
401d8c:	5f                   	pop    %edi
401d8d:	5e                   	pop    %esi
401d8e:	5b                   	pop    %ebx
401d8f:	c3                   	ret
401d90:	53                   	push   %ebx
401d91:	56                   	push   %esi
401d92:	57                   	push   %edi
401d93:	55                   	push   %ebp
401d94:	83 c4 f4             	add    $0xfffffff4,%esp
401d97:	8b fa                	mov    %edx,%edi
401d99:	8b f0                	mov    %eax,%esi
401d9b:	c6 04 24 00          	movb   $0x0,(%esp)
401d9f:	8b c6                	mov    %esi,%eax
401da1:	e8 96 fe ff ff       	call   0x401c3c
401da6:	8b d8                	mov    %eax,%ebx
401da8:	85 db                	test   %ebx,%ebx
401daa:	0f 84 82 00 00 00    	je     0x401e32
401db0:	8b 6b 08             	mov    0x8(%ebx),%ebp
401db3:	8b c5                	mov    %ebp,%eax
401db5:	03 43 0c             	add    0xc(%ebx),%eax
401db8:	8b d0                	mov    %eax,%edx
401dba:	8d 0c 37             	lea    (%edi,%esi,1),%ecx
401dbd:	2b d1                	sub    %ecx,%edx
401dbf:	83 fa 0c             	cmp    $0xc,%edx
401dc2:	7f 04                	jg     0x401dc8
401dc4:	8b f8                	mov    %eax,%edi
401dc6:	2b fe                	sub    %esi,%edi
401dc8:	8b c6                	mov    %esi,%eax
401dca:	2b c5                	sub    %ebp,%eax
401dcc:	83 f8 0c             	cmp    $0xc,%eax
401dcf:	7d 14                	jge    0x401de5
401dd1:	8d 4c 24 01          	lea    0x1(%esp),%ecx
401dd5:	8b d6                	mov    %esi,%edx
401dd7:	2b 53 08             	sub    0x8(%ebx),%edx
401dda:	03 d7                	add    %edi,%edx
401ddc:	8b c5                	mov    %ebp,%eax
401dde:	e8 c5 fb ff ff       	call   0x4019a8
401de3:	eb 11                	jmp    0x401df6
401de5:	8d 4c 24 01          	lea    0x1(%esp),%ecx
401de9:	8b d7                	mov    %edi,%edx
401deb:	83 ea 04             	sub    $0x4,%edx
401dee:	8d 46 04             	lea    0x4(%esi),%eax
401df1:	e8 b2 fb ff ff       	call   0x4019a8
401df6:	8b 6c 24 01          	mov    0x1(%esp),%ebp
401dfa:	85 ed                	test   %ebp,%ebp
401dfc:	74 34                	je     0x401e32
401dfe:	8b d5                	mov    %ebp,%edx
401e00:	2b d6                	sub    %esi,%edx
401e02:	8b c6                	mov    %esi,%eax
401e04:	e8 63 fe ff ff       	call   0x401c6c
401e09:	8b c5                	mov    %ebp,%eax
401e0b:	03 44 24 05          	add    0x5(%esp),%eax
401e0f:	8b 53 08             	mov    0x8(%ebx),%edx
401e12:	03 53 0c             	add    0xc(%ebx),%edx
401e15:	3b c2                	cmp    %edx,%eax
401e17:	73 0a                	jae    0x401e23
401e19:	8d 14 37             	lea    (%edi,%esi,1),%edx
401e1c:	2b d0                	sub    %eax,%edx
401e1e:	e8 9d fe ff ff       	call   0x401cc0
401e23:	8d 54 24 01          	lea    0x1(%esp),%edx
401e27:	8b c3                	mov    %ebx,%eax
401e29:	e8 8a f6 ff ff       	call   0x4014b8
401e2e:	c6 04 24 01          	movb   $0x1,(%esp)
401e32:	8a 04 24             	mov    (%esp),%al
401e35:	83 c4 0c             	add    $0xc,%esp
401e38:	5d                   	pop    %ebp
401e39:	5f                   	pop    %edi
401e3a:	5e                   	pop    %esi
401e3b:	5b                   	pop    %ebx
401e3c:	c3                   	ret
401e3d:	8d 40 00             	lea    0x0(%eax),%eax
401e40:	53                   	push   %ebx
401e41:	56                   	push   %esi
401e42:	57                   	push   %edi
401e43:	8b f2                	mov    %edx,%esi
401e45:	8b f8                	mov    %eax,%edi
401e47:	8b df                	mov    %edi,%ebx
401e49:	89 73 08             	mov    %esi,0x8(%ebx)
401e4c:	8b c3                	mov    %ebx,%eax
401e4e:	03 c6                	add    %esi,%eax
401e50:	83 e8 0c             	sub    $0xc,%eax
401e53:	89 70 08             	mov    %esi,0x8(%eax)
401e56:	81 fe 00 10 00 00    	cmp    $0x1000,%esi
401e5c:	7f 37                	jg     0x401e95
401e5e:	8b d6                	mov    %esi,%edx
401e60:	85 d2                	test   %edx,%edx
401e62:	79 03                	jns    0x401e67
401e64:	83 c2 03             	add    $0x3,%edx
401e67:	c1 fa 02             	sar    $0x2,%edx
401e6a:	a1 20 56 47 00       	mov    0x475620,%eax
401e6f:	8b 44 90 f4          	mov    -0xc(%eax,%edx,4),%eax
401e73:	85 c0                	test   %eax,%eax
401e75:	75 10                	jne    0x401e87
401e77:	a1 20 56 47 00       	mov    0x475620,%eax
401e7c:	89 5c 90 f4          	mov    %ebx,-0xc(%eax,%edx,4)
401e80:	89 5b 04             	mov    %ebx,0x4(%ebx)
401e83:	89 1b                	mov    %ebx,(%ebx)
401e85:	eb 3a                	jmp    0x401ec1
401e87:	8b 10                	mov    (%eax),%edx
401e89:	89 43 04             	mov    %eax,0x4(%ebx)
401e8c:	89 13                	mov    %edx,(%ebx)
401e8e:	89 18                	mov    %ebx,(%eax)
401e90:	89 5a 04             	mov    %ebx,0x4(%edx)
401e93:	eb 2c                	jmp    0x401ec1
401e95:	81 fe 00 3c 00 00    	cmp    $0x3c00,%esi
401e9b:	7c 0d                	jl     0x401eaa
401e9d:	8b d6                	mov    %esi,%edx
401e9f:	8b c7                	mov    %edi,%eax
401ea1:	e8 ea fe ff ff       	call   0x401d90
401ea6:	84 c0                	test   %al,%al
401ea8:	75 17                	jne    0x401ec1
401eaa:	a1 14 56 47 00       	mov    0x475614,%eax
401eaf:	89 1d 14 56 47 00    	mov    %ebx,0x475614
401eb5:	8b 10                	mov    (%eax),%edx
401eb7:	89 43 04             	mov    %eax,0x4(%ebx)
401eba:	89 13                	mov    %edx,(%ebx)
401ebc:	89 18                	mov    %ebx,(%eax)
401ebe:	89 5a 04             	mov    %ebx,0x4(%edx)
401ec1:	5f                   	pop    %edi
401ec2:	5e                   	pop    %esi
401ec3:	5b                   	pop    %ebx
401ec4:	c3                   	ret
401ec5:	8d 40 00             	lea    0x0(%eax),%eax
401ec8:	83 3d 18 56 47 00 00 	cmpl   $0x0,0x475618
401ecf:	7e 40                	jle    0x401f11
401ed1:	83 3d 18 56 47 00 0c 	cmpl   $0xc,0x475618
401ed8:	7d 0c                	jge    0x401ee6
401eda:	c7 05 c4 55 47 00 07 	movl   $0x7,0x4755c4
401ee1:	00 00 00
401ee4:	eb 2b                	jmp    0x401f11
401ee6:	a1 18 56 47 00       	mov    0x475618,%eax
401eeb:	83 c8 02             	or     $0x2,%eax
401eee:	8b 15 1c 56 47 00    	mov    0x47561c,%edx
401ef4:	89 02                	mov    %eax,(%edx)
401ef6:	a1 1c 56 47 00       	mov    0x47561c,%eax
401efb:	83 c0 04             	add    $0x4,%eax
401efe:	e8 99 fd ff ff       	call   0x401c9c
401f03:	33 c0                	xor    %eax,%eax
401f05:	a3 1c 56 47 00       	mov    %eax,0x47561c
401f0a:	33 c0                	xor    %eax,%eax
401f0c:	a3 18 56 47 00       	mov    %eax,0x475618
401f11:	c3                   	ret
401f12:	8b c0                	mov    %eax,%eax
401f14:	53                   	push   %ebx
401f15:	56                   	push   %esi
401f16:	57                   	push   %edi
401f17:	83 c4 f0             	add    $0xfffffff0,%esp
401f1a:	8b f0                	mov    %eax,%esi
401f1c:	8d 3c 24             	lea    (%esp),%edi
401f1f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
401f20:	a5                   	movsl  %ds:(%esi),%es:(%edi)
401f21:	8b fc                	mov    %esp,%edi
401f23:	e8 a0 ff ff ff       	call   0x401ec8
401f28:	8d 4c 24 08          	lea    0x8(%esp),%ecx
401f2c:	8b d7                	mov    %edi,%edx
401f2e:	b8 24 56 47 00       	mov    $0x475624,%eax
401f33:	e8 10 f5 ff ff       	call   0x401448
401f38:	8b 5c 24 08          	mov    0x8(%esp),%ebx
401f3c:	85 db                	test   %ebx,%ebx
401f3e:	75 04                	jne    0x401f44
401f40:	33 c0                	xor    %eax,%eax
401f42:	eb 52                	jmp    0x401f96
401f44:	8b 07                	mov    (%edi),%eax
401f46:	3b d8                	cmp    %eax,%ebx
401f48:	73 0a                	jae    0x401f54
401f4a:	e8 99 fd ff ff       	call   0x401ce8
401f4f:	29 07                	sub    %eax,(%edi)
401f51:	01 47 04             	add    %eax,0x4(%edi)
401f54:	8b 07                	mov    (%edi),%eax
401f56:	03 47 04             	add    0x4(%edi),%eax
401f59:	8b f3                	mov    %ebx,%esi
401f5b:	03 74 24 0c          	add    0xc(%esp),%esi
401f5f:	3b c6                	cmp    %esi,%eax
401f61:	73 08                	jae    0x401f6b
401f63:	e8 f0 fd ff ff       	call   0x401d58
401f68:	01 47 04             	add    %eax,0x4(%edi)
401f6b:	8b 07                	mov    (%edi),%eax
401f6d:	03 47 04             	add    0x4(%edi),%eax
401f70:	3b f0                	cmp    %eax,%esi
401f72:	75 11                	jne    0x401f85
401f74:	83 e8 04             	sub    $0x4,%eax
401f77:	ba 04 00 00 00       	mov    $0x4,%edx
401f7c:	e8 eb fc ff ff       	call   0x401c6c
401f81:	83 6f 04 04          	subl   $0x4,0x4(%edi)
401f85:	8b 07                	mov    (%edi),%eax
401f87:	a3 1c 56 47 00       	mov    %eax,0x47561c
401f8c:	8b 47 04             	mov    0x4(%edi),%eax
401f8f:	a3 18 56 47 00       	mov    %eax,0x475618
401f94:	b0 01                	mov    $0x1,%al
401f96:	83 c4 10             	add    $0x10,%esp
401f99:	5f                   	pop    %edi
401f9a:	5e                   	pop    %esi
401f9b:	5b                   	pop    %ebx
401f9c:	c3                   	ret
401f9d:	8d 40 00             	lea    0x0(%eax),%eax
401fa0:	53                   	push   %ebx
401fa1:	83 c4 f8             	add    $0xfffffff8,%esp
401fa4:	8b d8                	mov    %eax,%ebx
401fa6:	8b d4                	mov    %esp,%edx
401fa8:	8d 43 04             	lea    0x4(%ebx),%eax
401fab:	e8 44 f8 ff ff       	call   0x4017f4
401fb0:	83 3c 24 00          	cmpl   $0x0,(%esp)
401fb4:	74 0b                	je     0x401fc1
401fb6:	8b c4                	mov    %esp,%eax
401fb8:	e8 57 ff ff ff       	call   0x401f14
401fbd:	84 c0                	test   %al,%al
401fbf:	75 04                	jne    0x401fc5
401fc1:	33 c0                	xor    %eax,%eax
401fc3:	eb 02                	jmp    0x401fc7
401fc5:	b0 01                	mov    $0x1,%al
401fc7:	59                   	pop    %ecx
401fc8:	5a                   	pop    %edx
401fc9:	5b                   	pop    %ebx
401fca:	c3                   	ret
401fcb:	90                   	nop
401fcc:	53                   	push   %ebx
401fcd:	56                   	push   %esi
401fce:	83 c4 f8             	add    $0xfffffff8,%esp
401fd1:	8b f2                	mov    %edx,%esi
401fd3:	8b d8                	mov    %eax,%ebx
401fd5:	8b cc                	mov    %esp,%ecx
401fd7:	8d 56 04             	lea    0x4(%esi),%edx
401fda:	8b c3                	mov    %ebx,%eax
401fdc:	e8 a3 f8 ff ff       	call   0x401884
401fe1:	83 3c 24 00          	cmpl   $0x0,(%esp)
401fe5:	74 0b                	je     0x401ff2
401fe7:	8b c4                	mov    %esp,%eax
401fe9:	e8 26 ff ff ff       	call   0x401f14
401fee:	84 c0                	test   %al,%al
401ff0:	75 04                	jne    0x401ff6
401ff2:	33 c0                	xor    %eax,%eax
401ff4:	eb 02                	jmp    0x401ff8
401ff6:	b0 01                	mov    $0x1,%al
401ff8:	59                   	pop    %ecx
401ff9:	5a                   	pop    %edx
401ffa:	5e                   	pop    %esi
401ffb:	5b                   	pop    %ebx
401ffc:	c3                   	ret
401ffd:	8d 40 00             	lea    0x0(%eax),%eax
402000:	33 d2                	xor    %edx,%edx
402002:	85 c0                	test   %eax,%eax
402004:	79 03                	jns    0x402009
402006:	83 c0 03             	add    $0x3,%eax
402009:	c1 f8 02             	sar    $0x2,%eax
40200c:	3d 00 04 00 00       	cmp    $0x400,%eax
402011:	7f 16                	jg     0x402029
402013:	8b 15 20 56 47 00    	mov    0x475620,%edx
402019:	8b 54 82 f4          	mov    -0xc(%edx,%eax,4),%edx
40201d:	85 d2                	test   %edx,%edx
40201f:	75 08                	jne    0x402029
402021:	40                   	inc    %eax
402022:	3d 01 04 00 00       	cmp    $0x401,%eax
402027:	75 ea                	jne    0x402013
402029:	8b c2                	mov    %edx,%eax
40202b:	c3                   	ret
40202c:	53                   	push   %ebx
40202d:	56                   	push   %esi
40202e:	57                   	push   %edi
40202f:	55                   	push   %ebp
402030:	8b f0                	mov    %eax,%esi
402032:	bf 14 56 47 00       	mov    $0x475614,%edi
402037:	bd 18 56 47 00       	mov    $0x475618,%ebp
40203c:	8b 1d 0c 56 47 00    	mov    0x47560c,%ebx
402042:	3b 73 08             	cmp    0x8(%ebx),%esi
402045:	0f 8e 84 00 00 00    	jle    0x4020cf
40204b:	8b 1f                	mov    (%edi),%ebx
40204d:	8b 43 08             	mov    0x8(%ebx),%eax
402050:	3b f0                	cmp    %eax,%esi
402052:	7e 7b                	jle    0x4020cf
402054:	89 73 08             	mov    %esi,0x8(%ebx)
402057:	8b 5b 04             	mov    0x4(%ebx),%ebx
40205a:	3b 73 08             	cmp    0x8(%ebx),%esi
40205d:	7f f8                	jg     0x402057
40205f:	8b 17                	mov    (%edi),%edx
402061:	89 42 08             	mov    %eax,0x8(%edx)
402064:	3b 1f                	cmp    (%edi),%ebx
402066:	74 04                	je     0x40206c
402068:	89 1f                	mov    %ebx,(%edi)
40206a:	eb 63                	jmp    0x4020cf
40206c:	81 fe 00 10 00 00    	cmp    $0x1000,%esi
402072:	7f 0d                	jg     0x402081
402074:	8b c6                	mov    %esi,%eax
402076:	e8 85 ff ff ff       	call   0x402000
40207b:	8b d8                	mov    %eax,%ebx
40207d:	85 db                	test   %ebx,%ebx
40207f:	75 4e                	jne    0x4020cf
402081:	8b c6                	mov    %esi,%eax
402083:	e8 18 ff ff ff       	call   0x401fa0
402088:	84 c0                	test   %al,%al
40208a:	75 07                	jne    0x402093
40208c:	33 c0                	xor    %eax,%eax
40208e:	e9 88 00 00 00       	jmp    0x40211b
402093:	3b 75 00             	cmp    0x0(%ebp),%esi
402096:	7f a4                	jg     0x40203c
402098:	29 75 00             	sub    %esi,0x0(%ebp)
40209b:	83 7d 00 0c          	cmpl   $0xc,0x0(%ebp)
40209f:	7d 08                	jge    0x4020a9
4020a1:	03 75 00             	add    0x0(%ebp),%esi
4020a4:	33 c0                	xor    %eax,%eax
4020a6:	89 45 00             	mov    %eax,0x0(%ebp)
4020a9:	a1 1c 56 47 00       	mov    0x47561c,%eax
4020ae:	01 35 1c 56 47 00    	add    %esi,0x47561c
4020b4:	8b d6                	mov    %esi,%edx
4020b6:	83 ca 02             	or     $0x2,%edx
4020b9:	89 10                	mov    %edx,(%eax)
4020bb:	83 c0 04             	add    $0x4,%eax
4020be:	ff 05 b0 55 47 00    	incl   0x4755b0
4020c4:	83 ee 04             	sub    $0x4,%esi
4020c7:	01 35 b4 55 47 00    	add    %esi,0x4755b4
4020cd:	eb 4c                	jmp    0x40211b
4020cf:	8b c3                	mov    %ebx,%eax