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
4020d1:	e8 02 fb ff ff       	call   0x401bd8
4020d6:	8b 53 08             	mov    0x8(%ebx),%edx
4020d9:	8b c2                	mov    %edx,%eax
4020db:	2b c6                	sub    %esi,%eax
4020dd:	83 f8 0c             	cmp    $0xc,%eax
4020e0:	7c 0c                	jl     0x4020ee
4020e2:	8b d3                	mov    %ebx,%edx
4020e4:	03 d6                	add    %esi,%edx
4020e6:	92                   	xchg   %eax,%edx
4020e7:	e8 54 fd ff ff       	call   0x401e40
4020ec:	eb 12                	jmp    0x402100
4020ee:	8b f2                	mov    %edx,%esi
4020f0:	3b 1f                	cmp    (%edi),%ebx
4020f2:	75 05                	jne    0x4020f9
4020f4:	8b 43 04             	mov    0x4(%ebx),%eax
4020f7:	89 07                	mov    %eax,(%edi)
4020f9:	8b c3                	mov    %ebx,%eax
4020fb:	03 c6                	add    %esi,%eax
4020fd:	83 20 fe             	andl   $0xfffffffe,(%eax)
402100:	8b c3                	mov    %ebx,%eax
402102:	8b d6                	mov    %esi,%edx
402104:	83 ca 02             	or     $0x2,%edx
402107:	89 10                	mov    %edx,(%eax)
402109:	83 c0 04             	add    $0x4,%eax
40210c:	ff 05 b0 55 47 00    	incl   0x4755b0
402112:	83 ee 04             	sub    $0x4,%esi
402115:	01 35 b4 55 47 00    	add    %esi,0x4755b4
40211b:	5d                   	pop    %ebp
40211c:	5f                   	pop    %edi
40211d:	5e                   	pop    %esi
40211e:	5b                   	pop    %ebx
40211f:	c3                   	ret
402120:	55                   	push   %ebp
402121:	8b ec                	mov    %esp,%ebp
402123:	83 c4 f8             	add    $0xfffffff8,%esp
402126:	53                   	push   %ebx
402127:	56                   	push   %esi
402128:	57                   	push   %edi
402129:	8b d8                	mov    %eax,%ebx
40212b:	80 3d c0 55 47 00 00 	cmpb   $0x0,0x4755c0
402132:	75 09                	jne    0x40213d
402134:	e8 fb f8 ff ff       	call   0x401a34
402139:	84 c0                	test   %al,%al
40213b:	74 08                	je     0x402145
40213d:	81 fb f8 ff ff 7f    	cmp    $0x7ffffff8,%ebx
402143:	7e 0a                	jle    0x40214f
402145:	33 c0                	xor    %eax,%eax
402147:	89 45 fc             	mov    %eax,-0x4(%ebp)
40214a:	e9 54 01 00 00       	jmp    0x4022a3
40214f:	33 c9                	xor    %ecx,%ecx
402151:	55                   	push   %ebp
402152:	68 9c 22 40 00       	push   $0x40229c
402157:	64 ff 31             	push   %fs:(%ecx)
40215a:	64 89 21             	mov    %esp,%fs:(%ecx)
40215d:	80 3d 49 50 47 00 00 	cmpb   $0x0,0x475049
402164:	74 0a                	je     0x402170
402166:	68 c8 55 47 00       	push   $0x4755c8
40216b:	e8 20 f2 ff ff       	call   0x401390
402170:	83 c3 07             	add    $0x7,%ebx
402173:	83 e3 fc             	and    $0xfffffffc,%ebx
402176:	83 fb 0c             	cmp    $0xc,%ebx
402179:	7d 05                	jge    0x402180
40217b:	bb 0c 00 00 00       	mov    $0xc,%ebx
402180:	81 fb 00 10 00 00    	cmp    $0x1000,%ebx
402186:	0f 8f 93 00 00 00    	jg     0x40221f
40218c:	8b c3                	mov    %ebx,%eax
40218e:	85 c0                	test   %eax,%eax
402190:	79 03                	jns    0x402195
402192:	83 c0 03             	add    $0x3,%eax
402195:	c1 f8 02             	sar    $0x2,%eax
402198:	8b 15 20 56 47 00    	mov    0x475620,%edx
40219e:	8b 54 82 f4          	mov    -0xc(%edx,%eax,4),%edx
4021a2:	85 d2                	test   %edx,%edx
4021a4:	74 79                	je     0x40221f
4021a6:	8b f2                	mov    %edx,%esi
4021a8:	8b c6                	mov    %esi,%eax
4021aa:	03 c3                	add    %ebx,%eax
4021ac:	83 20 fe             	andl   $0xfffffffe,(%eax)
4021af:	8b 42 04             	mov    0x4(%edx),%eax
4021b2:	3b d0                	cmp    %eax,%edx
4021b4:	75 1a                	jne    0x4021d0
4021b6:	8b c3                	mov    %ebx,%eax
4021b8:	85 c0                	test   %eax,%eax
4021ba:	79 03                	jns    0x4021bf
4021bc:	83 c0 03             	add    $0x3,%eax
4021bf:	c1 f8 02             	sar    $0x2,%eax
4021c2:	8b 0d 20 56 47 00    	mov    0x475620,%ecx
4021c8:	33 ff                	xor    %edi,%edi
4021ca:	89 7c 81 f4          	mov    %edi,-0xc(%ecx,%eax,4)
4021ce:	eb 26                	jmp    0x4021f6
4021d0:	8b cb                	mov    %ebx,%ecx
4021d2:	85 c9                	test   %ecx,%ecx
4021d4:	79 03                	jns    0x4021d9
4021d6:	83 c1 03             	add    $0x3,%ecx
4021d9:	c1 f9 02             	sar    $0x2,%ecx
4021dc:	8b 3d 20 56 47 00    	mov    0x475620,%edi
4021e2:	89 44 8f f4          	mov    %eax,-0xc(%edi,%ecx,4)
4021e6:	8b 0a                	mov    (%edx),%ecx
4021e8:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4021eb:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4021ee:	89 41 04             	mov    %eax,0x4(%ecx)
4021f1:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4021f4:	89 08                	mov    %ecx,(%eax)
4021f6:	8b c6                	mov    %esi,%eax
4021f8:	8b 52 08             	mov    0x8(%edx),%edx
4021fb:	83 ca 02             	or     $0x2,%edx
4021fe:	89 10                	mov    %edx,(%eax)
402200:	83 c0 04             	add    $0x4,%eax
402203:	89 45 fc             	mov    %eax,-0x4(%ebp)
402206:	ff 05 b0 55 47 00    	incl   0x4755b0
40220c:	83 eb 04             	sub    $0x4,%ebx
40220f:	01 1d b4 55 47 00    	add    %ebx,0x4755b4
402215:	e8 1e 19 00 00       	call   0x403b38
40221a:	e9 84 00 00 00       	jmp    0x4022a3
40221f:	3b 1d 18 56 47 00    	cmp    0x475618,%ebx
402225:	7f 4a                	jg     0x402271
402227:	29 1d 18 56 47 00    	sub    %ebx,0x475618
40222d:	83 3d 18 56 47 00 0c 	cmpl   $0xc,0x475618
402234:	7d 0d                	jge    0x402243
402236:	03 1d 18 56 47 00    	add    0x475618,%ebx
40223c:	33 c0                	xor    %eax,%eax
40223e:	a3 18 56 47 00       	mov    %eax,0x475618
402243:	a1 1c 56 47 00       	mov    0x47561c,%eax
402248:	01 1d 1c 56 47 00    	add    %ebx,0x47561c
40224e:	8b d3                	mov    %ebx,%edx
402250:	83 ca 02             	or     $0x2,%edx
402253:	89 10                	mov    %edx,(%eax)
402255:	83 c0 04             	add    $0x4,%eax
402258:	89 45 fc             	mov    %eax,-0x4(%ebp)
40225b:	ff 05 b0 55 47 00    	incl   0x4755b0
402261:	83 eb 04             	sub    $0x4,%ebx
402264:	01 1d b4 55 47 00    	add    %ebx,0x4755b4
40226a:	e8 c9 18 00 00       	call   0x403b38
40226f:	eb 32                	jmp    0x4022a3
402271:	8b c3                	mov    %ebx,%eax
402273:	e8 b4 fd ff ff       	call   0x40202c
402278:	89 45 fc             	mov    %eax,-0x4(%ebp)
40227b:	33 c0                	xor    %eax,%eax
40227d:	5a                   	pop    %edx
40227e:	59                   	pop    %ecx
40227f:	59                   	pop    %ecx
402280:	64 89 10             	mov    %edx,%fs:(%eax)
402283:	68 a3 22 40 00       	push   $0x4022a3
402288:	80 3d 49 50 47 00 00 	cmpb   $0x0,0x475049
40228f:	74 0a                	je     0x40229b
402291:	68 c8 55 47 00       	push   $0x4755c8
402296:	e8 fd f0 ff ff       	call   0x401398
40229b:	c3                   	ret
40229c:	e9 b3 17 00 00       	jmp    0x403a54
4022a1:	eb e5                	jmp    0x402288
4022a3:	8b 45 fc             	mov    -0x4(%ebp),%eax
4022a6:	5f                   	pop    %edi
4022a7:	5e                   	pop    %esi
4022a8:	5b                   	pop    %ebx
4022a9:	59                   	pop    %ecx
4022aa:	59                   	pop    %ecx
4022ab:	5d                   	pop    %ebp
4022ac:	c3                   	ret
4022ad:	8d 40 00             	lea    0x0(%eax),%eax
4022b0:	55                   	push   %ebp
4022b1:	8b ec                	mov    %esp,%ebp
4022b3:	51                   	push   %ecx
4022b4:	53                   	push   %ebx
4022b5:	56                   	push   %esi
4022b6:	57                   	push   %edi
4022b7:	8b d8                	mov    %eax,%ebx
4022b9:	33 c0                	xor    %eax,%eax
4022bb:	a3 c4 55 47 00       	mov    %eax,0x4755c4
4022c0:	80 3d c0 55 47 00 00 	cmpb   $0x0,0x4755c0
4022c7:	75 1f                	jne    0x4022e8
4022c9:	e8 66 f7 ff ff       	call   0x401a34
4022ce:	84 c0                	test   %al,%al
4022d0:	75 16                	jne    0x4022e8
4022d2:	c7 05 c4 55 47 00 08 	movl   $0x8,0x4755c4
4022d9:	00 00 00