401f85:	c7 85 7c ff ff ff 00 	movl   $0x0,-0x84(%ebp)
401f8c:	00 00 00
401f8f:	c7 45 80 07 00 00 00 	movl   $0x7,-0x80(%ebp)
401f96:	66 89 85 6c ff ff ff 	mov    %ax,-0x94(%ebp)
401f9d:	83 ff 08             	cmp    $0x8,%edi
401fa0:	72 4a                	jb     0x401fec
401fa2:	8d 0c 7d 02 00 00 00 	lea    0x2(,%edi,2),%ecx
401fa9:	8b c3                	mov    %ebx,%eax
401fab:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
401fb1:	72 2f                	jb     0x401fe2
401fb3:	8b 58 fc             	mov    -0x4(%eax),%ebx
401fb6:	83 c1 23             	add    $0x23,%ecx
401fb9:	2b c3                	sub    %ebx,%eax
401fbb:	83 c0 fc             	add    $0xfffffffc,%eax
401fbe:	83 f8 1f             	cmp    $0x1f,%eax
401fc1:	0f 87 82 00 00 00    	ja     0x402049
401fc7:	eb 19                	jmp    0x401fe2
401fc9:	8d 85 b8 fe ff ff    	lea    -0x148(%ebp),%eax
401fcf:	68 e0 b0 44 00       	push   $0x44b0e0
401fd4:	50                   	push   %eax
401fd5:	e8 66 d5 00 00       	call   0x40f540
401fda:	83 c4 08             	add    $0x8,%esp
401fdd:	e9 4b ff ff ff       	jmp    0x401f2d
401fe2:	51                   	push   %ecx
401fe3:	53                   	push   %ebx
401fe4:	e8 25 99 01 00       	call   0x41b90e
401fe9:	83 c4 08             	add    $0x8,%esp
401fec:	8d 45 b4             	lea    -0x4c(%ebp),%eax
401fef:	50                   	push   %eax
401ff0:	8b c8                	mov    %eax,%ecx
401ff2:	e8 19 9d 00 00       	call   0x40bd10
401ff7:	8d 8d b8 fe ff ff    	lea    -0x148(%ebp),%ecx
401ffd:	e8 4e 00 00 00       	call   0x402050
402002:	8d 8d a8 fd ff ff    	lea    -0x258(%ebp),%ecx
402008:	e8 b3 2e 00 00       	call   0x404ec0
40200d:	33 c0                	xor    %eax,%eax
40200f:	8b 4d f4             	mov    -0xc(%ebp),%ecx
402012:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
402019:	59                   	pop    %ecx
40201a:	5f                   	pop    %edi
40201b:	5e                   	pop    %esi
40201c:	5b                   	pop    %ebx
40201d:	8b 4d f0             	mov    -0x10(%ebp),%ecx
402020:	33 cd                	xor    %ebp,%ecx
402022:	e8 a9 98 01 00       	call   0x41b8d0
402027:	8b e5                	mov    %ebp,%esp
402029:	5d                   	pop    %ebp
40202a:	c3                   	ret
40202b:	e8 4f ea 01 00       	call   0x420a7f
402030:	e8 4a ea 01 00       	call   0x420a7f
402035:	e8 45 ea 01 00       	call   0x420a7f
40203a:	e8 40 ea 01 00       	call   0x420a7f
40203f:	e8 3b ea 01 00       	call   0x420a7f
402044:	e8 36 ea 01 00       	call   0x420a7f
402049:	e8 31 ea 01 00       	call   0x420a7f
40204e:	cc                   	int3
40204f:	cc                   	int3
402050:	56                   	push   %esi
402051:	8b f1                	mov    %ecx,%esi
402053:	8b 4e 7c             	mov    0x7c(%esi),%ecx
402056:	83 f9 08             	cmp    $0x8,%ecx
402059:	72 32                	jb     0x40208d
40205b:	8b 46 68             	mov    0x68(%esi),%eax
40205e:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
402065:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40206b:	72 16                	jb     0x402083
40206d:	8b 50 fc             	mov    -0x4(%eax),%edx
402070:	83 c1 23             	add    $0x23,%ecx
402073:	2b c2                	sub    %edx,%eax
402075:	83 c0 fc             	add    $0xfffffffc,%eax
402078:	83 f8 1f             	cmp    $0x1f,%eax
40207b:	0f 87 52 01 00 00    	ja     0x4021d3
402081:	8b c2                	mov    %edx,%eax
402083:	51                   	push   %ecx
402084:	50                   	push   %eax
402085:	e8 84 98 01 00       	call   0x41b90e
40208a:	83 c4 08             	add    $0x8,%esp
40208d:	33 c0                	xor    %eax,%eax
40208f:	c7 46 78 00 00 00 00 	movl   $0x0,0x78(%esi)
402096:	c7 46 7c 07 00 00 00 	movl   $0x7,0x7c(%esi)
40209d:	66 89 46 68          	mov    %ax,0x68(%esi)
4020a1:	8b 4e 64             	mov    0x64(%esi),%ecx
4020a4:	83 f9 08             	cmp    $0x8,%ecx
4020a7:	72 32                	jb     0x4020db
4020a9:	8b 46 50             	mov    0x50(%esi),%eax
4020ac:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
4020b3:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4020b9:	72 16                	jb     0x4020d1
4020bb:	8b 50 fc             	mov    -0x4(%eax),%edx
4020be:	83 c1 23             	add    $0x23,%ecx
4020c1:	2b c2                	sub    %edx,%eax
4020c3:	83 c0 fc             	add    $0xfffffffc,%eax
4020c6:	83 f8 1f             	cmp    $0x1f,%eax
4020c9:	0f 87 04 01 00 00    	ja     0x4021d3
4020cf:	8b c2                	mov    %edx,%eax
4020d1:	51                   	push   %ecx
4020d2:	50                   	push   %eax
4020d3:	e8 36 98 01 00       	call   0x41b90e
4020d8:	83 c4 08             	add    $0x8,%esp
4020db:	33 c0                	xor    %eax,%eax
4020dd:	c7 46 60 00 00 00 00 	movl   $0x0,0x60(%esi)
4020e4:	c7 46 64 07 00 00 00 	movl   $0x7,0x64(%esi)
4020eb:	66 89 46 50          	mov    %ax,0x50(%esi)
4020ef:	8b 4e 4c             	mov    0x4c(%esi),%ecx
4020f2:	83 f9 08             	cmp    $0x8,%ecx
4020f5:	72 32                	jb     0x402129
4020f7:	8b 46 38             	mov    0x38(%esi),%eax
4020fa:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
402101:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
402107:	72 16                	jb     0x40211f
402109:	8b 50 fc             	mov    -0x4(%eax),%edx
40210c:	83 c1 23             	add    $0x23,%ecx
40210f:	2b c2                	sub    %edx,%eax
402111:	83 c0 fc             	add    $0xfffffffc,%eax
402114:	83 f8 1f             	cmp    $0x1f,%eax
402117:	0f 87 b6 00 00 00    	ja     0x4021d3
40211d:	8b c2                	mov    %edx,%eax
40211f:	51                   	push   %ecx
402120:	50                   	push   %eax
402121:	e8 e8 97 01 00       	call   0x41b90e
402126:	83 c4 08             	add    $0x8,%esp
402129:	33 c0                	xor    %eax,%eax
40212b:	c7 46 48 00 00 00 00 	movl   $0x0,0x48(%esi)
402132:	c7 46 4c 07 00 00 00 	movl   $0x7,0x4c(%esi)
402139:	66 89 46 38          	mov    %ax,0x38(%esi)
40213d:	8b 4e 34             	mov    0x34(%esi),%ecx
402140:	83 f9 08             	cmp    $0x8,%ecx
402143:	72 2e                	jb     0x402173
402145:	8b 46 20             	mov    0x20(%esi),%eax
402148:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40214f:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
402155:	72 12                	jb     0x402169
402157:	8b 50 fc             	mov    -0x4(%eax),%edx
40215a:	83 c1 23             	add    $0x23,%ecx
40215d:	2b c2                	sub    %edx,%eax
40215f:	83 c0 fc             	add    $0xfffffffc,%eax
402162:	83 f8 1f             	cmp    $0x1f,%eax
402165:	77 6c                	ja     0x4021d3
402167:	8b c2                	mov    %edx,%eax
402169:	51                   	push   %ecx
40216a:	50                   	push   %eax
40216b:	e8 9e 97 01 00       	call   0x41b90e
402170:	83 c4 08             	add    $0x8,%esp
402173:	33 c0                	xor    %eax,%eax
402175:	c7 46 30 00 00 00 00 	movl   $0x0,0x30(%esi)
40217c:	c7 46 34 07 00 00 00 	movl   $0x7,0x34(%esi)
402183:	66 89 46 20          	mov    %ax,0x20(%esi)
402187:	8b 4e 1c             	mov    0x1c(%esi),%ecx
40218a:	83 f9 08             	cmp    $0x8,%ecx
40218d:	72 2e                	jb     0x4021bd
40218f:	8b 46 08             	mov    0x8(%esi),%eax
402192:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
402199:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40219f:	72 12                	jb     0x4021b3
4021a1:	8b 50 fc             	mov    -0x4(%eax),%edx
4021a4:	83 c1 23             	add    $0x23,%ecx
4021a7:	2b c2                	sub    %edx,%eax
4021a9:	83 c0 fc             	add    $0xfffffffc,%eax
4021ac:	83 f8 1f             	cmp    $0x1f,%eax
4021af:	77 22                	ja     0x4021d3
4021b1:	8b c2                	mov    %edx,%eax
4021b3:	51                   	push   %ecx
4021b4:	50                   	push   %eax
4021b5:	e8 54 97 01 00       	call   0x41b90e
4021ba:	83 c4 08             	add    $0x8,%esp
4021bd:	33 c0                	xor    %eax,%eax
4021bf:	c7 46 18 00 00 00 00 	movl   $0x0,0x18(%esi)
4021c6:	c7 46 1c 07 00 00 00 	movl   $0x7,0x1c(%esi)
4021cd:	66 89 46 08          	mov    %ax,0x8(%esi)
4021d1:	5e                   	pop    %esi
4021d2:	c3                   	ret
4021d3:	e8 a7 e8 01 00       	call   0x420a7f
4021d8:	cc                   	int3
4021d9:	cc                   	int3
4021da:	cc                   	int3
4021db:	cc                   	int3
4021dc:	cc                   	int3
4021dd:	cc                   	int3
4021de:	cc                   	int3
4021df:	cc                   	int3
4021e0:	55                   	push   %ebp
4021e1:	8b ec                	mov    %esp,%ebp
4021e3:	51                   	push   %ecx
4021e4:	8b 55 08             	mov    0x8(%ebp),%edx
4021e7:	8b c2                	mov    %edx,%eax
4021e9:	53                   	push   %ebx
4021ea:	56                   	push   %esi
4021eb:	57                   	push   %edi
4021ec:	8b f1                	mov    %ecx,%esi
4021ee:	8d 78 02             	lea    0x2(%eax),%edi
4021f1:	66 8b 08             	mov    (%eax),%cx
4021f4:	83 c0 02             	add    $0x2,%eax
4021f7:	66 85 c9             	test   %cx,%cx
4021fa:	75 f5                	jne    0x4021f1
4021fc:	8b 4e 14             	mov    0x14(%esi),%ecx
4021ff:	2b c7                	sub    %edi,%eax
402201:	8b 5e 10             	mov    0x10(%esi),%ebx
402204:	2b cb                	sub    %ebx,%ecx
402206:	d1 f8                	sar    $1,%eax
402208:	3b c1                	cmp    %ecx,%eax
40220a:	77 37                	ja     0x402243
40220c:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
402210:	8d 0c 03             	lea    (%ebx,%eax,1),%ecx
402213:	89 4d fc             	mov    %ecx,-0x4(%ebp)
402216:	8b fe                	mov    %esi,%edi
402218:	89 4e 10             	mov    %ecx,0x10(%esi)
40221b:	72 02                	jb     0x40221f
40221d:	8b 3e                	mov    (%esi),%edi
40221f:	03 c0                	add    %eax,%eax
402221:	8d 0c 5f             	lea    (%edi,%ebx,2),%ecx
402224:	50                   	push   %eax
402225:	52                   	push   %edx
402226:	51                   	push   %ecx
402227:	e8 24 b2 01 00       	call   0x41d450
40222c:	8b 45 fc             	mov    -0x4(%ebp),%eax
40222f:	83 c4 0c             	add    $0xc,%esp
402232:	33 c9                	xor    %ecx,%ecx
402234:	66 89 0c 47          	mov    %cx,(%edi,%eax,2)
402238:	8b c6                	mov    %esi,%eax
40223a:	5f                   	pop    %edi
40223b:	5e                   	pop    %esi
40223c:	5b                   	pop    %ebx
40223d:	8b e5                	mov    %ebp,%esp
40223f:	5d                   	pop    %ebp
402240:	c2 04 00             	ret    $0x4
402243:	50                   	push   %eax
402244:	52                   	push   %edx
402245:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
402249:	8b ce                	mov    %esi,%ecx
40224b:	ff 75 fc             	push   -0x4(%ebp)
40224e:	50                   	push   %eax
40224f:	e8 ec 04 00 00       	call   0x402740
402254:	5f                   	pop    %edi
402255:	5e                   	pop    %esi
402256:	5b                   	pop    %ebx
402257:	8b e5                	mov    %ebp,%esp
402259:	5d                   	pop    %ebp
40225a:	c2 04 00             	ret    $0x4
40225d:	cc                   	int3
40225e:	cc                   	int3
40225f:	cc                   	int3
402260:	56                   	push   %esi
402261:	8b f1                	mov    %ecx,%esi
402263:	8b 4e 14             	mov    0x14(%esi),%ecx
402266:	83 f9 08             	cmp    $0x8,%ecx
402269:	72 2d                	jb     0x402298
40226b:	8b 06                	mov    (%esi),%eax
40226d:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
402274:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40227a:	72 12                	jb     0x40228e
40227c:	8b 50 fc             	mov    -0x4(%eax),%edx
40227f:	83 c1 23             	add    $0x23,%ecx
402282:	2b c2                	sub    %edx,%eax
402284:	83 c0 fc             	add    $0xfffffffc,%eax
402287:	83 f8 1f             	cmp    $0x1f,%eax
40228a:	77 21                	ja     0x4022ad
40228c:	8b c2                	mov    %edx,%eax
40228e:	51                   	push   %ecx
40228f:	50                   	push   %eax
402290:	e8 79 96 01 00       	call   0x41b90e
402295:	83 c4 08             	add    $0x8,%esp
402298:	33 c0                	xor    %eax,%eax
40229a:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
4022a1:	c7 46 14 07 00 00 00 	movl   $0x7,0x14(%esi)
4022a8:	66 89 06             	mov    %ax,(%esi)
4022ab:	5e                   	pop    %esi
4022ac:	c3                   	ret
4022ad:	e8 cd e7 01 00       	call   0x420a7f
4022b2:	cc                   	int3
4022b3:	cc                   	int3
4022b4:	cc                   	int3
4022b5:	cc                   	int3
4022b6:	cc                   	int3
4022b7:	cc                   	int3
4022b8:	cc                   	int3
4022b9:	cc                   	int3
4022ba:	cc                   	int3
4022bb:	cc                   	int3
4022bc:	cc                   	int3
4022bd:	cc                   	int3
4022be:	cc                   	int3
4022bf:	cc                   	int3
4022c0:	55                   	push   %ebp
4022c1:	8b ec                	mov    %esp,%ebp
4022c3:	51                   	push   %ecx
4022c4:	56                   	push   %esi
4022c5:	8b f1                	mov    %ecx,%esi
4022c7:	57                   	push   %edi
4022c8:	8b 7d 08             	mov    0x8(%ebp),%edi
4022cb:	8b c7                	mov    %edi,%eax
4022cd:	89 7d fc             	mov    %edi,-0x4(%ebp)
4022d0:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
4022d6:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
4022dd:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)
4022e4:	83 7f 14 08          	cmpl   $0x8,0x14(%edi)
4022e8:	72 05                	jb     0x4022ef
4022ea:	8b 07                	mov    (%edi),%eax
4022ec:	89 45 fc             	mov    %eax,-0x4(%ebp)
4022ef:	8b 7f 10             	mov    0x10(%edi),%edi
4022f2:	81 ff fe ff ff 7f    	cmp    $0x7ffffffe,%edi
4022f8:	0f 87 bc 00 00 00    	ja     0x4023ba
4022fe:	c7 46 14 07 00 00 00 	movl   $0x7,0x14(%esi)
402305:	83 ff 08             	cmp    $0x8,%edi
402308:	73 19                	jae    0x402323
40230a:	6a 10                	push   $0x10
40230c:	50                   	push   %eax
40230d:	56                   	push   %esi
40230e:	89 7e 10             	mov    %edi,0x10(%esi)
402311:	e8 3a b1 01 00       	call   0x41d450
402316:	83 c4 0c             	add    $0xc,%esp
402319:	8b c6                	mov    %esi,%eax
40231b:	5f                   	pop    %edi
40231c:	5e                   	pop    %esi
40231d:	8b e5                	mov    %ebp,%esp
40231f:	5d                   	pop    %ebp
402320:	c2 04 00             	ret    $0x4
402323:	53                   	push   %ebx
402324:	8b df                	mov    %edi,%ebx
402326:	83 cb 07             	or     $0x7,%ebx
402329:	81 fb fe ff ff 7f    	cmp    $0x7ffffffe,%ebx
40232f:	76 0e                	jbe    0x40233f
402331:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
402336:	bb fe ff ff 7f       	mov    $0x7ffffffe,%ebx
40233b:	03 c0                	add    %eax,%eax
40233d:	eb 1d                	jmp    0x40235c
40233f:	b8 0a 00 00 00       	mov    $0xa,%eax
402344:	3b d8                	cmp    %eax,%ebx
402346:	0f 42 d8             	cmovb  %eax,%ebx
402349:	8d 43 01             	lea    0x1(%ebx),%eax
40234c:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
402351:	77 62                	ja     0x4023b5
402353:	03 c0                	add    %eax,%eax
402355:	3d 00 10 00 00       	cmp    $0x1000,%eax
40235a:	72 21                	jb     0x40237d
40235c:	8d 48 23             	lea    0x23(%eax),%ecx
40235f:	3b c8                	cmp    %eax,%ecx
402361:	76 52                	jbe    0x4023b5
402363:	51                   	push   %ecx
402364:	e8 75 95 01 00       	call   0x41b8de
402369:	8b c8                	mov    %eax,%ecx
40236b:	83 c4 04             	add    $0x4,%esp
40236e:	85 c9                	test   %ecx,%ecx
402370:	74 4d                	je     0x4023bf
402372:	8d 41 23             	lea    0x23(%ecx),%eax
402375:	83 e0 e0             	and    $0xffffffe0,%eax
402378:	89 48 fc             	mov    %ecx,-0x4(%eax)
40237b:	eb 11                	jmp    0x40238e
40237d:	85 c0                	test   %eax,%eax
40237f:	74 0b                	je     0x40238c
402381:	50                   	push   %eax