401fb7:	03 74 24 0c          	add    0xc(%esp),%esi
401fbb:	3b c6                	cmp    %esi,%eax
401fbd:	73 08                	jae    0x401fc7
401fbf:	e8 6c fd ff ff       	call   0x401d30
401fc4:	01 47 04             	add    %eax,0x4(%edi)
401fc7:	8b 07                	mov    (%edi),%eax
401fc9:	03 47 04             	add    0x4(%edi),%eax
401fcc:	3b f0                	cmp    %eax,%esi
401fce:	75 11                	jne    0x401fe1
401fd0:	83 e8 04             	sub    $0x4,%eax
401fd3:	ba 04 00 00 00       	mov    $0x4,%edx
401fd8:	e8 53 fc ff ff       	call   0x401c30
401fdd:	83 6f 04 04          	subl   $0x4,0x4(%edi)
401fe1:	8b 07                	mov    (%edi),%eax
401fe3:	a3 08 96 42 00       	mov    %eax,0x429608
401fe8:	8b 47 04             	mov    0x4(%edi),%eax
401feb:	a3 04 96 42 00       	mov    %eax,0x429604
401ff0:	b0 01                	mov    $0x1,%al
401ff2:	83 c4 10             	add    $0x10,%esp
401ff5:	5f                   	pop    %edi
401ff6:	5e                   	pop    %esi
401ff7:	5b                   	pop    %ebx
401ff8:	c3                   	ret
401ff9:	8d 40 00             	lea    0x0(%eax),%eax
401ffc:	53                   	push   %ebx
401ffd:	83 c4 f8             	add    $0xfffffff8,%esp
402000:	8b d8                	mov    %eax,%ebx
402002:	8b d4                	mov    %esp,%edx
402004:	8d 43 04             	lea    0x4(%ebx),%eax
402007:	e8 f4 f6 ff ff       	call   0x401700
40200c:	83 3c 24 00          	cmpl   $0x0,(%esp)
402010:	74 0b                	je     0x40201d
402012:	8b c4                	mov    %esp,%eax
402014:	e8 57 ff ff ff       	call   0x401f70
402019:	84 c0                	test   %al,%al
40201b:	75 04                	jne    0x402021
40201d:	33 c0                	xor    %eax,%eax
40201f:	eb 02                	jmp    0x402023
402021:	b0 01                	mov    $0x1,%al
402023:	59                   	pop    %ecx
402024:	5a                   	pop    %edx
402025:	5b                   	pop    %ebx
402026:	c3                   	ret
402027:	90                   	nop
402028:	53                   	push   %ebx
402029:	56                   	push   %esi
40202a:	83 c4 f8             	add    $0xfffffff8,%esp
40202d:	8b f2                	mov    %edx,%esi
40202f:	8b d8                	mov    %eax,%ebx
402031:	8b cc                	mov    %esp,%ecx
402033:	8d 56 04             	lea    0x4(%esi),%edx
402036:	8b c3                	mov    %ebx,%eax
402038:	e8 6b f7 ff ff       	call   0x4017a8
40203d:	83 3c 24 00          	cmpl   $0x0,(%esp)
402041:	74 0b                	je     0x40204e
402043:	8b c4                	mov    %esp,%eax
402045:	e8 26 ff ff ff       	call   0x401f70
40204a:	84 c0                	test   %al,%al
40204c:	75 04                	jne    0x402052
40204e:	33 c0                	xor    %eax,%eax
402050:	eb 02                	jmp    0x402054
402052:	b0 01                	mov    $0x1,%al
402054:	59                   	pop    %ecx
402055:	5a                   	pop    %edx
402056:	5e                   	pop    %esi
402057:	5b                   	pop    %ebx
402058:	c3                   	ret
402059:	8d 40 00             	lea    0x0(%eax),%eax
40205c:	51                   	push   %ecx
40205d:	8b d4                	mov    %esp,%edx
40205f:	33 c9                	xor    %ecx,%ecx
402061:	89 0a                	mov    %ecx,(%edx)
402063:	85 c0                	test   %eax,%eax
402065:	79 03                	jns    0x40206a
402067:	83 c0 03             	add    $0x3,%eax
40206a:	c1 f8 02             	sar    $0x2,%eax
40206d:	3d 00 04 00 00       	cmp    $0x400,%eax
402072:	7f 19                	jg     0x40208d
402074:	8b 0d 0c 96 42 00    	mov    0x42960c,%ecx
40207a:	8b 4c 81 f4          	mov    -0xc(%ecx,%eax,4),%ecx
40207e:	89 0a                	mov    %ecx,(%edx)
402080:	83 3a 00             	cmpl   $0x0,(%edx)
402083:	75 08                	jne    0x40208d
402085:	40                   	inc    %eax
402086:	3d 01 04 00 00       	cmp    $0x401,%eax
40208b:	75 e7                	jne    0x402074
40208d:	8b 02                	mov    (%edx),%eax
40208f:	5a                   	pop    %edx
402090:	c3                   	ret
402091:	8d 40 00             	lea    0x0(%eax),%eax
402094:	53                   	push   %ebx
402095:	56                   	push   %esi
402096:	57                   	push   %edi
402097:	55                   	push   %ebp
402098:	83 c4 f4             	add    $0xfffffff4,%esp
40209b:	8b d8                	mov    %eax,%ebx
40209d:	8d 74 24 08          	lea    0x8(%esp),%esi
4020a1:	bf 00 96 42 00       	mov    $0x429600,%edi
4020a6:	bd 04 96 42 00       	mov    $0x429604,%ebp
4020ab:	a1 f8 95 42 00       	mov    0x4295f8,%eax
4020b0:	89 06                	mov    %eax,(%esi)
4020b2:	8b 06                	mov    (%esi),%eax
4020b4:	3b 58 08             	cmp    0x8(%eax),%ebx
4020b7:	0f 8e ab 00 00 00    	jle    0x402168
4020bd:	8b 07                	mov    (%edi),%eax
4020bf:	89 06                	mov    %eax,(%esi)
4020c1:	8b 06                	mov    (%esi),%eax
4020c3:	8b 40 08             	mov    0x8(%eax),%eax
4020c6:	3b d8                	cmp    %eax,%ebx
4020c8:	0f 8e 9a 00 00 00    	jle    0x402168
4020ce:	8b 16                	mov    (%esi),%edx
4020d0:	89 5a 08             	mov    %ebx,0x8(%edx)
4020d3:	8b 16                	mov    (%esi),%edx
4020d5:	8b 52 04             	mov    0x4(%edx),%edx
4020d8:	89 16                	mov    %edx,(%esi)
4020da:	8b 16                	mov    (%esi),%edx
4020dc:	3b 5a 08             	cmp    0x8(%edx),%ebx
4020df:	7f f2                	jg     0x4020d3
4020e1:	8b 17                	mov    (%edi),%edx
4020e3:	89 42 08             	mov    %eax,0x8(%edx)
4020e6:	8b 06                	mov    (%esi),%eax
4020e8:	3b 07                	cmp    (%edi),%eax
4020ea:	74 06                	je     0x4020f2
4020ec:	8b 06                	mov    (%esi),%eax
4020ee:	89 07                	mov    %eax,(%edi)
4020f0:	eb 76                	jmp    0x402168
4020f2:	81 fb 00 10 00 00    	cmp    $0x1000,%ebx
4020f8:	7f 0e                	jg     0x402108
4020fa:	8b c3                	mov    %ebx,%eax
4020fc:	e8 5b ff ff ff       	call   0x40205c
402101:	89 06                	mov    %eax,(%esi)
402103:	83 3e 00             	cmpl   $0x0,(%esi)
402106:	75 60                	jne    0x402168
402108:	8b c3                	mov    %ebx,%eax
40210a:	e8 ed fe ff ff       	call   0x401ffc
40210f:	84 c0                	test   %al,%al
402111:	75 0a                	jne    0x40211d
402113:	33 c0                	xor    %eax,%eax
402115:	89 04 24             	mov    %eax,(%esp)
402118:	e9 b4 00 00 00       	jmp    0x4021d1
40211d:	3b 5d 00             	cmp    0x0(%ebp),%ebx
402120:	7f 89                	jg     0x4020ab
402122:	29 5d 00             	sub    %ebx,0x0(%ebp)
402125:	83 7d 00 0c          	cmpl   $0xc,0x0(%ebp)
402129:	7d 08                	jge    0x402133
40212b:	03 5d 00             	add    0x0(%ebp),%ebx
40212e:	33 c0                	xor    %eax,%eax
402130:	89 45 00             	mov    %eax,0x0(%ebp)
402133:	a1 08 96 42 00       	mov    0x429608,%eax
402138:	89 44 24 04          	mov    %eax,0x4(%esp)
40213c:	01 1d 08 96 42 00    	add    %ebx,0x429608
402142:	8b c3                	mov    %ebx,%eax
402144:	83 c8 02             	or     $0x2,%eax
402147:	8b 54 24 04          	mov    0x4(%esp),%edx
40214b:	89 02                	mov    %eax,(%edx)
40214d:	8b 44 24 04          	mov    0x4(%esp),%eax
402151:	83 c0 04             	add    $0x4,%eax
402154:	89 04 24             	mov    %eax,(%esp)
402157:	ff 05 9c 95 42 00    	incl   0x42959c
40215d:	83 eb 04             	sub    $0x4,%ebx
402160:	01 1d a0 95 42 00    	add    %ebx,0x4295a0
402166:	eb 69                	jmp    0x4021d1
402168:	8b 06                	mov    (%esi),%eax
40216a:	e8 e9 f9 ff ff       	call   0x401b58
40216f:	8b 06                	mov    (%esi),%eax
402171:	8b 50 08             	mov    0x8(%eax),%edx
402174:	8b c2                	mov    %edx,%eax
402176:	2b c3                	sub    %ebx,%eax
402178:	83 f8 0c             	cmp    $0xc,%eax
40217b:	7c 0c                	jl     0x402189
40217d:	8b 16                	mov    (%esi),%edx
40217f:	03 d3                	add    %ebx,%edx
402181:	92                   	xchg   %eax,%edx
402182:	e8 a5 fc ff ff       	call   0x401e2c
402187:	eb 1e                	jmp    0x4021a7
402189:	8b da                	mov    %edx,%ebx
40218b:	8b 06                	mov    (%esi),%eax
40218d:	3b 07                	cmp    (%edi),%eax
40218f:	75 07                	jne    0x402198
402191:	8b 06                	mov    (%esi),%eax
402193:	8b 40 04             	mov    0x4(%eax),%eax
402196:	89 07                	mov    %eax,(%edi)
402198:	8b 06                	mov    (%esi),%eax
40219a:	03 c3                	add    %ebx,%eax
40219c:	89 44 24 04          	mov    %eax,0x4(%esp)
4021a0:	8b 44 24 04          	mov    0x4(%esp),%eax
4021a4:	83 20 fe             	andl   $0xfffffffe,(%eax)
4021a7:	8b 06                	mov    (%esi),%eax
4021a9:	89 44 24 04          	mov    %eax,0x4(%esp)
4021ad:	8b c3                	mov    %ebx,%eax
4021af:	83 c8 02             	or     $0x2,%eax
4021b2:	8b 54 24 04          	mov    0x4(%esp),%edx
4021b6:	89 02                	mov    %eax,(%edx)
4021b8:	8b 44 24 04          	mov    0x4(%esp),%eax
4021bc:	83 c0 04             	add    $0x4,%eax
4021bf:	89 04 24             	mov    %eax,(%esp)
4021c2:	ff 05 9c 95 42 00    	incl   0x42959c
4021c8:	83 eb 04             	sub    $0x4,%ebx
4021cb:	01 1d a0 95 42 00    	add    %ebx,0x4295a0
4021d1:	8b 04 24             	mov    (%esp),%eax
4021d4:	83 c4 0c             	add    $0xc,%esp
4021d7:	5d                   	pop    %ebp
4021d8:	5f                   	pop    %edi
4021d9:	5e                   	pop    %esi
4021da:	5b                   	pop    %ebx
4021db:	c3                   	ret
4021dc:	55                   	push   %ebp
4021dd:	8b ec                	mov    %esp,%ebp
4021df:	83 c4 ec             	add    $0xffffffec,%esp
4021e2:	53                   	push   %ebx
4021e3:	8b d8                	mov    %eax,%ebx
4021e5:	80 3d ac 95 42 00 00 	cmpb   $0x0,0x4295ac
4021ec:	75 09                	jne    0x4021f7
4021ee:	e8 8d f7 ff ff       	call   0x401980
4021f3:	84 c0                	test   %al,%al
4021f5:	74 08                	je     0x4021ff
4021f7:	81 fb f8 ff ff 7f    	cmp    $0x7ffffff8,%ebx
4021fd:	7e 0a                	jle    0x402209
4021ff:	33 c0                	xor    %eax,%eax
402201:	89 45 fc             	mov    %eax,-0x4(%ebp)
402204:	e9 76 01 00 00       	jmp    0x40237f
402209:	33 d2                	xor    %edx,%edx
40220b:	55                   	push   %ebp
40220c:	68 78 23 40 00       	push   $0x402378
402211:	64 ff 32             	push   %fs:(%edx)
402214:	64 89 22             	mov    %esp,%fs:(%edx)
402217:	80 3d 35 90 42 00 00 	cmpb   $0x0,0x429035
40221e:	74 0a                	je     0x40222a
402220:	68 b4 95 42 00       	push   $0x4295b4
402225:	e8 36 ef ff ff       	call   0x401160
40222a:	83 c3 07             	add    $0x7,%ebx
40222d:	83 e3 fc             	and    $0xfffffffc,%ebx
402230:	83 fb 0c             	cmp    $0xc,%ebx
402233:	7d 05                	jge    0x40223a
402235:	bb 0c 00 00 00       	mov    $0xc,%ebx
40223a:	81 fb 00 10 00 00    	cmp    $0x1000,%ebx
402240:	0f 8f ac 00 00 00    	jg     0x4022f2
402246:	8b c3                	mov    %ebx,%eax
402248:	85 c0                	test   %eax,%eax
40224a:	79 03                	jns    0x40224f
40224c:	83 c0 03             	add    $0x3,%eax
40224f:	c1 f8 02             	sar    $0x2,%eax
402252:	8b 15 0c 96 42 00    	mov    0x42960c,%edx
402258:	8b 54 82 f4          	mov    -0xc(%edx,%eax,4),%edx
40225c:	89 55 f8             	mov    %edx,-0x8(%ebp)
40225f:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
402263:	0f 84 89 00 00 00    	je     0x4022f2
402269:	8b 55 f8             	mov    -0x8(%ebp),%edx
40226c:	03 d3                	add    %ebx,%edx
40226e:	89 55 ec             	mov    %edx,-0x14(%ebp)
402271:	8b 55 ec             	mov    -0x14(%ebp),%edx
402274:	83 22 fe             	andl   $0xfffffffe,(%edx)
402277:	8b 55 f8             	mov    -0x8(%ebp),%edx
40227a:	8b 52 04             	mov    0x4(%edx),%edx
40227d:	89 55 f0             	mov    %edx,-0x10(%ebp)
402280:	8b 55 f0             	mov    -0x10(%ebp),%edx
402283:	3b 55 f8             	cmp    -0x8(%ebp),%edx
402286:	75 0e                	jne    0x402296
402288:	8b 15 0c 96 42 00    	mov    0x42960c,%edx
40228e:	33 c9                	xor    %ecx,%ecx
402290:	89 4c 82 f4          	mov    %ecx,-0xc(%edx,%eax,4)
402294:	eb 26                	jmp    0x4022bc
402296:	8b 15 0c 96 42 00    	mov    0x42960c,%edx
40229c:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40229f:	89 4c 82 f4          	mov    %ecx,-0xc(%edx,%eax,4)
4022a3:	8b 45 f8             	mov    -0x8(%ebp),%eax
4022a6:	8b 00                	mov    (%eax),%eax
4022a8:	89 45 f4             	mov    %eax,-0xc(%ebp)
4022ab:	8b 45 f4             	mov    -0xc(%ebp),%eax
4022ae:	8b 55 f0             	mov    -0x10(%ebp),%edx
4022b1:	89 50 04             	mov    %edx,0x4(%eax)
4022b4:	8b 45 f0             	mov    -0x10(%ebp),%eax
4022b7:	8b 55 f4             	mov    -0xc(%ebp),%edx
4022ba:	89 10                	mov    %edx,(%eax)
4022bc:	8b 45 f8             	mov    -0x8(%ebp),%eax
4022bf:	89 45 ec             	mov    %eax,-0x14(%ebp)
4022c2:	8b 45 f8             	mov    -0x8(%ebp),%eax
4022c5:	8b 40 08             	mov    0x8(%eax),%eax
4022c8:	83 c8 02             	or     $0x2,%eax
4022cb:	8b 55 ec             	mov    -0x14(%ebp),%edx
4022ce:	89 02                	mov    %eax,(%edx)
4022d0:	8b 45 ec             	mov    -0x14(%ebp),%eax
4022d3:	83 c0 04             	add    $0x4,%eax
4022d6:	89 45 fc             	mov    %eax,-0x4(%ebp)
4022d9:	ff 05 9c 95 42 00    	incl   0x42959c
4022df:	83 eb 04             	sub    $0x4,%ebx
4022e2:	01 1d a0 95 42 00    	add    %ebx,0x4295a0
4022e8:	e8 d7 0e 00 00       	call   0x4031c4
4022ed:	e9 8d 00 00 00       	jmp    0x40237f
4022f2:	3b 1d 04 96 42 00    	cmp    0x429604,%ebx
4022f8:	7f 53                	jg     0x40234d
4022fa:	29 1d 04 96 42 00    	sub    %ebx,0x429604
402300:	83 3d 04 96 42 00 0c 	cmpl   $0xc,0x429604
402307:	7d 0d                	jge    0x402316
402309:	03 1d 04 96 42 00    	add    0x429604,%ebx
40230f:	33 c0                	xor    %eax,%eax
402311:	a3 04 96 42 00       	mov    %eax,0x429604
402316:	a1 08 96 42 00       	mov    0x429608,%eax
40231b:	89 45 ec             	mov    %eax,-0x14(%ebp)
40231e:	01 1d 08 96 42 00    	add    %ebx,0x429608
402324:	8b c3                	mov    %ebx,%eax
402326:	83 c8 02             	or     $0x2,%eax
402329:	8b 55 ec             	mov    -0x14(%ebp),%edx
40232c:	89 02                	mov    %eax,(%edx)
40232e:	8b 45 ec             	mov    -0x14(%ebp),%eax
402331:	83 c0 04             	add    $0x4,%eax
402334:	89 45 fc             	mov    %eax,-0x4(%ebp)
402337:	ff 05 9c 95 42 00    	incl   0x42959c
40233d:	83 eb 04             	sub    $0x4,%ebx
402340:	01 1d a0 95 42 00    	add    %ebx,0x4295a0
402346:	e8 79 0e 00 00       	call   0x4031c4
40234b:	eb 32                	jmp    0x40237f
40234d:	8b c3                	mov    %ebx,%eax
40234f:	e8 40 fd ff ff       	call   0x402094
402354:	89 45 fc             	mov    %eax,-0x4(%ebp)
402357:	33 c0                	xor    %eax,%eax
402359:	5a                   	pop    %edx
40235a:	59                   	pop    %ecx
40235b:	59                   	pop    %ecx
40235c:	64 89 10             	mov    %edx,%fs:(%eax)
40235f:	68 7f 23 40 00       	push   $0x40237f
402364:	80 3d 35 90 42 00 00 	cmpb   $0x0,0x429035
40236b:	74 0a                	je     0x402377
40236d:	68 b4 95 42 00       	push   $0x4295b4
402372:	e8 f1 ed ff ff       	call   0x401168
402377:	c3                   	ret
402378:	e9 8b 0d 00 00       	jmp    0x403108
40237d:	eb e5                	jmp    0x402364
40237f:	8b 45 fc             	mov    -0x4(%ebp),%eax
402382:	5b                   	pop    %ebx
402383:	8b e5                	mov    %ebp,%esp
402385:	5d                   	pop    %ebp
402386:	c3                   	ret
402387:	90                   	nop
402388:	55                   	push   %ebp
402389:	8b ec                	mov    %esp,%ebp
40238b:	83 c4 f0             	add    $0xfffffff0,%esp
40238e:	53                   	push   %ebx
40238f:	8b d8                	mov    %eax,%ebx
402391:	33 c0                	xor    %eax,%eax
402393:	a3 b0 95 42 00       	mov    %eax,0x4295b0
402398:	80 3d ac 95 42 00 00 	cmpb   $0x0,0x4295ac
40239f:	75 1f                	jne    0x4023c0
4023a1:	e8 da f5 ff ff       	call   0x401980
4023a6:	84 c0                	test   %al,%al
4023a8:	75 16                	jne    0x4023c0
4023aa:	c7 05 b0 95 42 00 08 	movl   $0x8,0x4295b0
4023b1:	00 00 00
4023b4:	c7 45 fc 08 00 00 00 	movl   $0x8,-0x4(%ebp)
4023bb:	e9 96 01 00 00       	jmp    0x402556