40802f:	55                   	push   %ebp
408030:	8b ec                	mov    %esp,%ebp
408032:	83 ec 10             	sub    $0x10,%esp
408035:	ff 75 08             	push   0x8(%ebp)
408038:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40803b:	e8 24 f8 ff ff       	call   0x407864
408040:	ff 75 28             	push   0x28(%ebp)
408043:	8d 4d f0             	lea    -0x10(%ebp),%ecx
408046:	ff 75 24             	push   0x24(%ebp)
408049:	ff 75 20             	push   0x20(%ebp)
40804c:	ff 75 1c             	push   0x1c(%ebp)
40804f:	ff 75 18             	push   0x18(%ebp)
408052:	ff 75 14             	push   0x14(%ebp)
408055:	ff 75 10             	push   0x10(%ebp)
408058:	ff 75 0c             	push   0xc(%ebp)
40805b:	e8 28 fc ff ff       	call   0x407c88
408060:	83 c4 20             	add    $0x20,%esp
408063:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
408067:	74 07                	je     0x408070
408069:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40806c:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
408070:	c9                   	leave
408071:	c3                   	ret
408072:	8b ff                	mov    %edi,%edi
408074:	55                   	push   %ebp
408075:	8b ec                	mov    %esp,%ebp
408077:	83 ec 10             	sub    $0x10,%esp
40807a:	ff 75 0c             	push   0xc(%ebp)
40807d:	8d 4d f0             	lea    -0x10(%ebp),%ecx
408080:	e8 df f7 ff ff       	call   0x407864
408085:	8b 45 f0             	mov    -0x10(%ebp),%eax
408088:	83 b8 ac 00 00 00 01 	cmpl   $0x1,0xac(%eax)
40808f:	7e 13                	jle    0x4080a4
408091:	8d 45 f0             	lea    -0x10(%ebp),%eax
408094:	50                   	push   %eax
408095:	6a 04                	push   $0x4
408097:	ff 75 08             	push   0x8(%ebp)
40809a:	e8 cd 9e 00 00       	call   0x411f6c
40809f:	83 c4 0c             	add    $0xc,%esp
4080a2:	eb 10                	jmp    0x4080b4
4080a4:	8b 80 c8 00 00 00    	mov    0xc8(%eax),%eax
4080aa:	8b 4d 08             	mov    0x8(%ebp),%ecx
4080ad:	0f b7 04 48          	movzwl (%eax,%ecx,2),%eax
4080b1:	83 e0 04             	and    $0x4,%eax
4080b4:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
4080b8:	74 07                	je     0x4080c1
4080ba:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4080bd:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
4080c1:	c9                   	leave
4080c2:	c3                   	ret
4080c3:	8b ff                	mov    %edi,%edi
4080c5:	55                   	push   %ebp
4080c6:	8b ec                	mov    %esp,%ebp
4080c8:	83 3d fc 07 43 00 00 	cmpl   $0x0,0x4307fc
4080cf:	75 12                	jne    0x4080e3
4080d1:	8b 45 08             	mov    0x8(%ebp),%eax
4080d4:	8b 0d 78 b8 42 00    	mov    0x42b878,%ecx
4080da:	0f b7 04 41          	movzwl (%ecx,%eax,2),%eax
4080de:	83 e0 04             	and    $0x4,%eax
4080e1:	5d                   	pop    %ebp
4080e2:	c3                   	ret
4080e3:	6a 00                	push   $0x0
4080e5:	ff 75 08             	push   0x8(%ebp)
4080e8:	e8 85 ff ff ff       	call   0x408072
4080ed:	59                   	pop    %ecx
4080ee:	59                   	pop    %ecx
4080ef:	5d                   	pop    %ebp
4080f0:	c3                   	ret
4080f1:	cc                   	int3
4080f2:	cc                   	int3
4080f3:	cc                   	int3
4080f4:	cc                   	int3
4080f5:	cc                   	int3
4080f6:	cc                   	int3
4080f7:	cc                   	int3
4080f8:	cc                   	int3
4080f9:	cc                   	int3
4080fa:	cc                   	int3
4080fb:	cc                   	int3
4080fc:	cc                   	int3
4080fd:	cc                   	int3
4080fe:	cc                   	int3
4080ff:	cc                   	int3
408100:	55                   	push   %ebp
408101:	8b ec                	mov    %esp,%ebp
408103:	57                   	push   %edi
408104:	56                   	push   %esi
408105:	8b 75 0c             	mov    0xc(%ebp),%esi
408108:	8b 4d 10             	mov    0x10(%ebp),%ecx
40810b:	8b 7d 08             	mov    0x8(%ebp),%edi
40810e:	8b c1                	mov    %ecx,%eax
408110:	8b d1                	mov    %ecx,%edx
408112:	03 c6                	add    %esi,%eax
408114:	3b fe                	cmp    %esi,%edi
408116:	76 08                	jbe    0x408120
408118:	3b f8                	cmp    %eax,%edi
40811a:	0f 82 a4 01 00 00    	jb     0x4082c4
408120:	81 f9 00 01 00 00    	cmp    $0x100,%ecx
408126:	72 1f                	jb     0x408147
408128:	83 3d 64 13 c7 00 00 	cmpl   $0x0,0xc71364
40812f:	74 16                	je     0x408147
408131:	57                   	push   %edi
408132:	56                   	push   %esi
408133:	83 e7 0f             	and    $0xf,%edi
408136:	83 e6 0f             	and    $0xf,%esi
408139:	3b fe                	cmp    %esi,%edi
40813b:	5e                   	pop    %esi
40813c:	5f                   	pop    %edi
40813d:	75 08                	jne    0x408147
40813f:	5e                   	pop    %esi
408140:	5f                   	pop    %edi
408141:	5d                   	pop    %ebp
408142:	e9 64 9f 00 00       	jmp    0x4120ab
408147:	f7 c7 03 00 00 00    	test   $0x3,%edi
40814d:	75 15                	jne    0x408164
40814f:	c1 e9 02             	shr    $0x2,%ecx
408152:	83 e2 03             	and    $0x3,%edx
408155:	83 f9 08             	cmp    $0x8,%ecx
408158:	72 2a                	jb     0x408184
40815a:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40815c:	ff 24 95 74 82 40 00 	jmp    *0x408274(,%edx,4)
408163:	90                   	nop
408164:	8b c7                	mov    %edi,%eax
408166:	ba 03 00 00 00       	mov    $0x3,%edx
40816b:	83 e9 04             	sub    $0x4,%ecx
40816e:	72 0c                	jb     0x40817c
408170:	83 e0 03             	and    $0x3,%eax
408173:	03 c8                	add    %eax,%ecx
408175:	ff 24 85 88 81 40 00 	jmp    *0x408188(,%eax,4)
40817c:	ff 24 8d 84 82 40 00 	jmp    *0x408284(,%ecx,4)
408183:	90                   	nop
408184:	ff 24 8d 08 82 40 00 	jmp    *0x408208(,%ecx,4)
40818b:	90                   	nop
40818c:	98                   	cwtl
40818d:	81 40 00 c4 81 40 00 	addl   $0x4081c4,0x0(%eax)
408194:	e8 81 40 00 23       	call   0x2340c21a
408199:	d1 8a 06 88 07 8a    	rorl   $1,-0x75f877fa(%edx)
40819f:	46                   	inc    %esi
4081a0:	01 88 47 01 8a 46    	add    %ecx,0x468a0147(%eax)
4081a6:	02 c1                	add    %cl,%al
4081a8:	e9 02 88 47 02       	jmp    0x28809af
4081ad:	83 c6 03             	add    $0x3,%esi
4081b0:	83 c7 03             	add    $0x3,%edi
4081b3:	83 f9 08             	cmp    $0x8,%ecx
4081b6:	72 cc                	jb     0x408184
4081b8:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
4081ba:	ff 24 95 74 82 40 00 	jmp    *0x408274(,%edx,4)
4081c1:	8d 49 00             	lea    0x0(%ecx),%ecx
4081c4:	23 d1                	and    %ecx,%edx
4081c6:	8a 06                	mov    (%esi),%al
4081c8:	88 07                	mov    %al,(%edi)
4081ca:	8a 46 01             	mov    0x1(%esi),%al
4081cd:	c1 e9 02             	shr    $0x2,%ecx
4081d0:	88 47 01             	mov    %al,0x1(%edi)
4081d3:	83 c6 02             	add    $0x2,%esi
4081d6:	83 c7 02             	add    $0x2,%edi
4081d9:	83 f9 08             	cmp    $0x8,%ecx
4081dc:	72 a6                	jb     0x408184
4081de:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
4081e0:	ff 24 95 74 82 40 00 	jmp    *0x408274(,%edx,4)
4081e7:	90                   	nop
4081e8:	23 d1                	and    %ecx,%edx
4081ea:	8a 06                	mov    (%esi),%al
4081ec:	88 07                	mov    %al,(%edi)
4081ee:	83 c6 01             	add    $0x1,%esi
4081f1:	c1 e9 02             	shr    $0x2,%ecx
4081f4:	83 c7 01             	add    $0x1,%edi
4081f7:	83 f9 08             	cmp    $0x8,%ecx
4081fa:	72 88                	jb     0x408184
4081fc:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
4081fe:	ff 24 95 74 82 40 00 	jmp    *0x408274(,%edx,4)
408205:	8d 49 00             	lea    0x0(%ecx),%ecx
408208:	6b 82 40 00 58 82 40 	imul   $0x40,-0x7da7ffc0(%edx),%eax
40820f:	00 50 82             	add    %dl,-0x7e(%eax)
408212:	40                   	inc    %eax
408213:	00 48 82             	add    %cl,-0x7e(%eax)
408216:	40                   	inc    %eax
408217:	00 40 82             	add    %al,-0x7e(%eax)
40821a:	40                   	inc    %eax
40821b:	00 38                	add    %bh,(%eax)
40821d:	82 40 00 30          	addb   $0x30,0x0(%eax)
408221:	82 40 00 28          	addb   $0x28,0x0(%eax)
408225:	82 40 00 8b          	addb   $0x8b,0x0(%eax)
408229:	44                   	inc    %esp
40822a:	8e e4                	mov    %esp,%fs
40822c:	89 44 8f e4          	mov    %eax,-0x1c(%edi,%ecx,4)
408230:	8b 44 8e e8          	mov    -0x18(%esi,%ecx,4),%eax
408234:	89 44 8f e8          	mov    %eax,-0x18(%edi,%ecx,4)
408238:	8b 44 8e ec          	mov    -0x14(%esi,%ecx,4),%eax
40823c:	89 44 8f ec          	mov    %eax,-0x14(%edi,%ecx,4)
408240:	8b 44 8e f0          	mov    -0x10(%esi,%ecx,4),%eax
408244:	89 44 8f f0          	mov    %eax,-0x10(%edi,%ecx,4)
408248:	8b 44 8e f4          	mov    -0xc(%esi,%ecx,4),%eax
40824c:	89 44 8f f4          	mov    %eax,-0xc(%edi,%ecx,4)
408250:	8b 44 8e f8          	mov    -0x8(%esi,%ecx,4),%eax
408254:	89 44 8f f8          	mov    %eax,-0x8(%edi,%ecx,4)
408258:	8b 44 8e fc          	mov    -0x4(%esi,%ecx,4),%eax
40825c:	89 44 8f fc          	mov    %eax,-0x4(%edi,%ecx,4)
408260:	8d 04 8d 00 00 00 00 	lea    0x0(,%ecx,4),%eax
408267:	03 f0                	add    %eax,%esi
408269:	03 f8                	add    %eax,%edi
40826b:	ff 24 95 74 82 40 00 	jmp    *0x408274(,%edx,4)
408272:	8b ff                	mov    %edi,%edi
408274:	84 82 40 00 8c 82    	test   %al,-0x7d73ffc0(%edx)
40827a:	40                   	inc    %eax
40827b:	00 98 82 40 00 ac    	add    %bl,-0x53ffbf7e(%eax)
408281:	82 40 00 8b          	addb   $0x8b,0x0(%eax)
408285:	45                   	inc    %ebp
408286:	08 5e 5f             	or     %bl,0x5f(%esi)
408289:	c9                   	leave
40828a:	c3                   	ret
40828b:	90                   	nop
40828c:	8a 06                	mov    (%esi),%al
40828e:	88 07                	mov    %al,(%edi)
408290:	8b 45 08             	mov    0x8(%ebp),%eax
408293:	5e                   	pop    %esi
408294:	5f                   	pop    %edi
408295:	c9                   	leave
408296:	c3                   	ret
408297:	90                   	nop
408298:	8a 06                	mov    (%esi),%al
40829a:	88 07                	mov    %al,(%edi)
40829c:	8a 46 01             	mov    0x1(%esi),%al
40829f:	88 47 01             	mov    %al,0x1(%edi)
4082a2:	8b 45 08             	mov    0x8(%ebp),%eax
4082a5:	5e                   	pop    %esi
4082a6:	5f                   	pop    %edi
4082a7:	c9                   	leave
4082a8:	c3                   	ret
4082a9:	8d 49 00             	lea    0x0(%ecx),%ecx
4082ac:	8a 06                	mov    (%esi),%al
4082ae:	88 07                	mov    %al,(%edi)
4082b0:	8a 46 01             	mov    0x1(%esi),%al
4082b3:	88 47 01             	mov    %al,0x1(%edi)
4082b6:	8a 46 02             	mov    0x2(%esi),%al
4082b9:	88 47 02             	mov    %al,0x2(%edi)
4082bc:	8b 45 08             	mov    0x8(%ebp),%eax
4082bf:	5e                   	pop    %esi
4082c0:	5f                   	pop    %edi
4082c1:	c9                   	leave
4082c2:	c3                   	ret
4082c3:	90                   	nop
4082c4:	8d 74 31 fc          	lea    -0x4(%ecx,%esi,1),%esi
4082c8:	8d 7c 39 fc          	lea    -0x4(%ecx,%edi,1),%edi
4082cc:	f7 c7 03 00 00 00    	test   $0x3,%edi
4082d2:	75 24                	jne    0x4082f8
4082d4:	c1 e9 02             	shr    $0x2,%ecx
4082d7:	83 e2 03             	and    $0x3,%edx
4082da:	83 f9 08             	cmp    $0x8,%ecx
4082dd:	72 0d                	jb     0x4082ec
4082df:	fd                   	std
4082e0:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
4082e2:	fc                   	cld
4082e3:	ff 24 95 10 84 40 00 	jmp    *0x408410(,%edx,4)
4082ea:	8b ff                	mov    %edi,%edi
4082ec:	f7 d9                	neg    %ecx
4082ee:	ff 24 8d c0 83 40 00 	jmp    *0x4083c0(,%ecx,4)
4082f5:	8d 49 00             	lea    0x0(%ecx),%ecx
4082f8:	8b c7                	mov    %edi,%eax
4082fa:	ba 03 00 00 00       	mov    $0x3,%edx
4082ff:	83 f9 04             	cmp    $0x4,%ecx
408302:	72 0c                	jb     0x408310
408304:	83 e0 03             	and    $0x3,%eax
408307:	2b c8                	sub    %eax,%ecx
408309:	ff 24 85 14 83 40 00 	jmp    *0x408314(,%eax,4)
408310:	ff 24 8d 10 84 40 00 	jmp    *0x408410(,%ecx,4)
408317:	90                   	nop
408318:	24 83                	and    $0x83,%al
40831a:	40                   	inc    %eax
40831b:	00 48 83             	add    %cl,-0x7d(%eax)
40831e:	40                   	inc    %eax
40831f:	00 70 83             	add    %dh,-0x7d(%eax)
408322:	40                   	inc    %eax
408323:	00 8a 46 03 23 d1    	add    %cl,-0x2edcfcba(%edx)
408329:	88 47 03             	mov    %al,0x3(%edi)
40832c:	83 ee 01             	sub    $0x1,%esi
40832f:	c1 e9 02             	shr    $0x2,%ecx
408332:	83 ef 01             	sub    $0x1,%edi
408335:	83 f9 08             	cmp    $0x8,%ecx
408338:	72 b2                	jb     0x4082ec
40833a:	fd                   	std
40833b:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40833d:	fc                   	cld
40833e:	ff 24 95 10 84 40 00 	jmp    *0x408410(,%edx,4)
408345:	8d 49 00             	lea    0x0(%ecx),%ecx
408348:	8a 46 03             	mov    0x3(%esi),%al
40834b:	23 d1                	and    %ecx,%edx
40834d:	88 47 03             	mov    %al,0x3(%edi)
408350:	8a 46 02             	mov    0x2(%esi),%al
408353:	c1 e9 02             	shr    $0x2,%ecx
408356:	88 47 02             	mov    %al,0x2(%edi)
408359:	83 ee 02             	sub    $0x2,%esi
40835c:	83 ef 02             	sub    $0x2,%edi
40835f:	83 f9 08             	cmp    $0x8,%ecx
408362:	72 88                	jb     0x4082ec
408364:	fd                   	std
408365:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
408367:	fc                   	cld
408368:	ff 24 95 10 84 40 00 	jmp    *0x408410(,%edx,4)
40836f:	90                   	nop
408370:	8a 46 03             	mov    0x3(%esi),%al
408373:	23 d1                	and    %ecx,%edx
408375:	88 47 03             	mov    %al,0x3(%edi)
408378:	8a 46 02             	mov    0x2(%esi),%al
40837b:	88 47 02             	mov    %al,0x2(%edi)
40837e:	8a 46 01             	mov    0x1(%esi),%al
408381:	c1 e9 02             	shr    $0x2,%ecx
408384:	88 47 01             	mov    %al,0x1(%edi)
408387:	83 ee 03             	sub    $0x3,%esi
40838a:	83 ef 03             	sub    $0x3,%edi
40838d:	83 f9 08             	cmp    $0x8,%ecx
408390:	0f 82 56 ff ff ff    	jb     0x4082ec
408396:	fd                   	std
408397:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
408399:	fc                   	cld
40839a:	ff 24 95 10 84 40 00 	jmp    *0x408410(,%edx,4)
4083a1:	8d 49 00             	lea    0x0(%ecx),%ecx
4083a4:	c4 83 40 00 cc 83    	les    -0x7c33ffc0(%ebx),%eax
4083aa:	40                   	inc    %eax
4083ab:	00 d4                	add    %dl,%ah
4083ad:	83 40 00 dc          	addl   $0xffffffdc,0x0(%eax)
4083b1:	83 40 00 e4          	addl   $0xffffffe4,0x0(%eax)
4083b5:	83 40 00 ec          	addl   $0xffffffec,0x0(%eax)
4083b9:	83 40 00 f4          	addl   $0xfffffff4,0x0(%eax)
4083bd:	83 40 00 07          	addl   $0x7,0x0(%eax)
4083c1:	84 40 00             	test   %al,0x0(%eax)
4083c4:	8b 44 8e 1c          	mov    0x1c(%esi,%ecx,4),%eax
4083c8:	89 44 8f 1c          	mov    %eax,0x1c(%edi,%ecx,4)
4083cc:	8b 44 8e 18          	mov    0x18(%esi,%ecx,4),%eax
4083d0:	89 44 8f 18          	mov    %eax,0x18(%edi,%ecx,4)
4083d4:	8b 44 8e 14          	mov    0x14(%esi,%ecx,4),%eax
4083d8:	89 44 8f 14          	mov    %eax,0x14(%edi,%ecx,4)
4083dc:	8b 44 8e 10          	mov    0x10(%esi,%ecx,4),%eax
4083e0:	89 44 8f 10          	mov    %eax,0x10(%edi,%ecx,4)
4083e4:	8b 44 8e 0c          	mov    0xc(%esi,%ecx,4),%eax
4083e8:	89 44 8f 0c          	mov    %eax,0xc(%edi,%ecx,4)
4083ec:	8b 44 8e 08          	mov    0x8(%esi,%ecx,4),%eax
4083f0:	89 44 8f 08          	mov    %eax,0x8(%edi,%ecx,4)
4083f4:	8b 44 8e 04          	mov    0x4(%esi,%ecx,4),%eax
4083f8:	89 44 8f 04          	mov    %eax,0x4(%edi,%ecx,4)
4083fc:	8d 04 8d 00 00 00 00 	lea    0x0(,%ecx,4),%eax
408403:	03 f0                	add    %eax,%esi
408405:	03 f8                	add    %eax,%edi
408407:	ff 24 95 10 84 40 00 	jmp    *0x408410(,%edx,4)
40840e:	8b ff                	mov    %edi,%edi
408410:	20 84 40 00 28 84 40 	and    %al,0x40842800(%eax,%eax,2)
408417:	00 38                	add    %bh,(%eax)
408419:	84 40 00             	test   %al,0x0(%eax)
40841c:	4c                   	dec    %esp
40841d:	84 40 00             	test   %al,0x0(%eax)