402171:	e8 3a 84 01 00       	call   0x41a5b0
402176:	33 c9                	xor    %ecx,%ecx
402178:	03 45 e4             	add    -0x1c(%ebp),%eax
40217b:	13 d1                	adc    %ecx,%edx
40217d:	89 86 50 10 00 00    	mov    %eax,0x1050(%esi)
402183:	89 96 54 10 00 00    	mov    %edx,0x1054(%esi)
402189:	38 8e 8a 10 00 00    	cmp    %cl,0x108a(%esi)
40218f:	74 11                	je     0x4021a2
402191:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
402196:	89 86 50 10 00 00    	mov    %eax,0x1050(%esi)
40219c:	89 86 54 10 00 00    	mov    %eax,0x1054(%esi)
4021a2:	bf ff 1f 00 00       	mov    $0x1fff,%edi
4021a7:	39 7d ec             	cmp    %edi,-0x14(%ebp)
4021aa:	73 03                	jae    0x4021af
4021ac:	8b 7d ec             	mov    -0x14(%ebp),%edi
4021af:	57                   	push   %edi
4021b0:	8d 85 80 d7 ff ff    	lea    -0x2880(%ebp),%eax
4021b6:	50                   	push   %eax
4021b7:	8d 4d b8             	lea    -0x48(%ebp),%ecx
4021ba:	e8 70 93 00 00       	call   0x40b52f
4021bf:	80 7d f3 00          	cmpb   $0x0,-0xd(%ebp)
4021c3:	c6 84 3d 80 d7 ff ff 	movb   $0x0,-0x2880(%ebp,%edi,1)
4021ca:	00
4021cb:	0f 84 8a 00 00 00    	je     0x40225b
4021d1:	f7 46 08 00 02 00 00 	testl  $0x200,0x8(%esi)
4021d8:	bf 00 08 00 00       	mov    $0x800,%edi
4021dd:	74 3d                	je     0x40221c
4021df:	8d 4d a4             	lea    -0x5c(%ebp),%ecx
4021e2:	e8 97 40 00 00       	call   0x40627e
4021e7:	8d 85 80 d7 ff ff    	lea    -0x2880(%ebp),%eax
4021ed:	50                   	push   %eax
4021ee:	e8 4d 82 01 00       	call   0x41a440
4021f3:	59                   	pop    %ecx
4021f4:	57                   	push   %edi
4021f5:	8d 4e 20             	lea    0x20(%esi),%ecx
4021f8:	51                   	push   %ecx
4021f9:	89 4d e8             	mov    %ecx,-0x18(%ebp)
4021fc:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4021ff:	40                   	inc    %eax
402200:	2b c8                	sub    %eax,%ecx
402202:	51                   	push   %ecx
402203:	8d 84 05 80 d7 ff ff 	lea    -0x2880(%ebp,%eax,1),%eax
40220a:	50                   	push   %eax
40220b:	8d 85 80 d7 ff ff    	lea    -0x2880(%ebp),%eax
402211:	50                   	push   %eax
402212:	8d 4d a4             	lea    -0x5c(%ebp),%ecx
402215:	e8 75 40 00 00       	call   0x40628f
40221a:	eb 0b                	jmp    0x402227
40221c:	8d 46 20             	lea    0x20(%esi),%eax
40221f:	33 c9                	xor    %ecx,%ecx
402221:	89 45 e8             	mov    %eax,-0x18(%ebp)
402224:	66 89 08             	mov    %cx,(%eax)
402227:	57                   	push   %edi
402228:	8d 85 80 f7 ff ff    	lea    -0x880(%ebp),%eax
40222e:	50                   	push   %eax
40222f:	8d 85 80 d7 ff ff    	lea    -0x2880(%ebp),%eax
402235:	50                   	push   %eax
402236:	e8 7a e6 00 00       	call   0x4108b5
40223b:	57                   	push   %edi
40223c:	ff 75 e8             	push   -0x18(%ebp)
40223f:	8d 85 80 f7 ff ff    	lea    -0x880(%ebp),%eax
402245:	ff 75 e8             	push   -0x18(%ebp)
402248:	50                   	push   %eax
402249:	e8 02 80 00 00       	call   0x40a250
40224e:	56                   	push   %esi
40224f:	8b cb                	mov    %ebx,%ecx
402251:	e8 2e f8 ff ff       	call   0x401a84
402256:	e9 2c 01 00 00       	jmp    0x402387
40225b:	8d 46 20             	lea    0x20(%esi),%eax
40225e:	68 00 08 00 00       	push   $0x800
402263:	50                   	push   %eax
402264:	89 45 e8             	mov    %eax,-0x18(%ebp)
402267:	8d 85 80 d7 ff ff    	lea    -0x2880(%ebp),%eax
40226d:	50                   	push   %eax
40226e:	e8 01 f5 00 00       	call   0x411774
402273:	8b 7e 0c             	mov    0xc(%esi),%edi
402276:	2b 7d ec             	sub    -0x14(%ebp),%edi
402279:	83 ef 20             	sub    $0x20,%edi
40227c:	f7 46 08 00 04 00 00 	testl  $0x400,0x8(%esi)
402283:	74 03                	je     0x402288
402285:	83 ef 08             	sub    $0x8,%edi
402288:	85 ff                	test   %edi,%edi
40228a:	0f 8e dd 00 00 00    	jle    0x40236d
402290:	8d 8e 20 10 00 00    	lea    0x1020(%esi),%ecx
402296:	57                   	push   %edi
402297:	e8 33 f9 ff ff       	call   0x401bcf
40229c:	57                   	push   %edi
40229d:	ff b6 20 10 00 00    	push   0x1020(%esi)
4022a3:	8d 4d b8             	lea    -0x48(%ebp),%ecx
4022a6:	e8 84 92 00 00       	call   0x40b52f
4022ab:	68 64 a4 42 00       	push   $0x42a464
4022b0:	ff 75 e8             	push   -0x18(%ebp)
4022b3:	e8 49 81 01 00       	call   0x41a401
4022b8:	59                   	pop    %ecx
4022b9:	59                   	pop    %ecx
4022ba:	85 c0                	test   %eax,%eax
4022bc:	0f 85 ab 00 00 00    	jne    0x40236d
4022c2:	8b 86 20 10 00 00    	mov    0x1020(%esi),%eax
4022c8:	0f b6 48 0b          	movzbl 0xb(%eax),%ecx
4022cc:	0f b6 50 0a          	movzbl 0xa(%eax),%edx
4022d0:	83 c0 08             	add    $0x8,%eax
4022d3:	c1 e1 08             	shl    $0x8,%ecx
4022d6:	03 ca                	add    %edx,%ecx
4022d8:	0f b6 50 01          	movzbl 0x1(%eax),%edx
4022dc:	0f b6 00             	movzbl (%eax),%eax
4022df:	83 a3 0c 57 00 00 00 	andl   $0x0,0x570c(%ebx)
4022e6:	c1 e1 08             	shl    $0x8,%ecx
4022e9:	6a 00                	push   $0x0
4022eb:	03 ca                	add    %edx,%ecx
4022ed:	68 00 02 00 00       	push   $0x200
4022f2:	ff b3 0c 57 00 00    	push   0x570c(%ebx)
4022f8:	c1 e1 08             	shl    $0x8,%ecx
4022fb:	03 c8                	add    %eax,%ecx
4022fd:	51                   	push   %ecx
4022fe:	e8 ad 82 01 00       	call   0x41a5b0
402303:	89 83 08 57 00 00    	mov    %eax,0x5708(%ebx)
402309:	8b 03                	mov    (%ebx),%eax
40230b:	8b cb                	mov    %ebx,%ecx
40230d:	89 93 0c 57 00 00    	mov    %edx,0x570c(%ebx)
402313:	ff 50 10             	call   *0x10(%eax)
402316:	52                   	push   %edx
402317:	50                   	push   %eax
402318:	ff b3 0c 57 00 00    	push   0x570c(%ebx)
40231e:	89 45 d8             	mov    %eax,-0x28(%ebp)
402321:	ff b3 08 57 00 00    	push   0x5708(%ebx)
402327:	89 55 dc             	mov    %edx,-0x24(%ebp)
40232a:	e8 5b e5 00 00       	call   0x41088a
40232f:	ff 75 dc             	push   -0x24(%ebp)
402332:	89 83 10 57 00 00    	mov    %eax,0x5710(%ebx)
402338:	ff 75 d8             	push   -0x28(%ebp)
40233b:	8b f8                	mov    %eax,%edi
40233d:	6a 00                	push   $0x0
40233f:	68 c8 00 00 00       	push   $0xc8
402344:	ff 75 dc             	push   -0x24(%ebp)
402347:	ff 75 d8             	push   -0x28(%ebp)
40234a:	e8 b1 81 01 00       	call   0x41a500
40234f:	03 83 08 57 00 00    	add    0x5708(%ebx),%eax
402355:	13 93 0c 57 00 00    	adc    0x570c(%ebx),%edx
40235b:	52                   	push   %edx
40235c:	50                   	push   %eax
40235d:	e8 28 e5 00 00       	call   0x41088a
402362:	3b c7                	cmp    %edi,%eax
402364:	7e 07                	jle    0x40236d
402366:	47                   	inc    %edi
402367:	89 bb 10 57 00 00    	mov    %edi,0x5710(%ebx)
40236d:	68 5c a4 42 00       	push   $0x42a45c
402372:	ff 75 e8             	push   -0x18(%ebp)
402375:	e8 87 80 01 00       	call   0x41a401
40237a:	59                   	pop    %ecx
40237b:	59                   	pop    %ecx
40237c:	85 c0                	test   %eax,%eax
40237e:	75 07                	jne    0x402387
402380:	c6 83 36 a2 00 00 01 	movb   $0x1,0xa236(%ebx)
402387:	f7 46 08 00 04 00 00 	testl  $0x400,0x8(%esi)
40238e:	74 11                	je     0x4023a1
402390:	6a 08                	push   $0x8
402392:	8d 86 91 10 00 00    	lea    0x1091(%esi),%eax
402398:	50                   	push   %eax
402399:	8d 4d b8             	lea    -0x48(%ebp),%ecx
40239c:	e8 8e 91 00 00       	call   0x40b52f
4023a1:	ff 75 e0             	push   -0x20(%ebp)
4023a4:	8d 8e 30 10 00 00    	lea    0x1030(%esi),%ecx
4023aa:	e8 05 ef 00 00       	call   0x4112b4
4023af:	f7 46 08 00 10 00 00 	testl  $0x1000,0x8(%esi)
4023b6:	0f 84 d1 00 00 00    	je     0x40248d
4023bc:	8d 4d b8             	lea    -0x48(%ebp),%ecx
4023bf:	e8 4f 90 00 00       	call   0x40b413
4023c4:	83 65 b4 00          	andl   $0x0,-0x4c(%ebp)
4023c8:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
4023cc:	8d 8b f8 67 00 00    	lea    0x67f8(%ebx),%ecx
4023d2:	0f b7 c0             	movzwl %ax,%eax
4023d5:	89 4d a8             	mov    %ecx,-0x58(%ebp)
4023d8:	8d 8b 00 68 00 00    	lea    0x6800(%ebx),%ecx
4023de:	0f b7 c0             	movzwl %ax,%eax
4023e1:	89 4d ac             	mov    %ecx,-0x54(%ebp)
4023e4:	8d 8b 08 68 00 00    	lea    0x6808(%ebx),%ecx
4023ea:	89 4d b0             	mov    %ecx,-0x50(%ebp)
4023ed:	89 45 dc             	mov    %eax,-0x24(%ebp)
4023f0:	c7 45 e4 0c 00 00 00 	movl   $0xc,-0x1c(%ebp)
4023f7:	8b 45 ec             	mov    -0x14(%ebp),%eax
4023fa:	8b 7c 85 a8          	mov    -0x58(%ebp,%eax,4),%edi
4023fe:	8b 45 dc             	mov    -0x24(%ebp),%eax
402401:	8a 4d e4             	mov    -0x1c(%ebp),%cl
402404:	d3 e8                	shr    %cl,%eax
402406:	89 45 e0             	mov    %eax,-0x20(%ebp)
402409:	a8 08                	test   $0x8,%al
40240b:	74 6f                	je     0x40247c
40240d:	85 ff                	test   %edi,%edi
40240f:	74 6b                	je     0x40247c
402411:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
402415:	74 10                	je     0x402427
402417:	8d 4d b8             	lea    -0x48(%ebp),%ecx
40241a:	e8 29 90 00 00       	call   0x40b448
40241f:	50                   	push   %eax
402420:	8b cf                	mov    %edi,%ecx
402422:	e8 8d ee 00 00       	call   0x4112b4
402427:	8d 45 80             	lea    -0x80(%ebp),%eax
40242a:	50                   	push   %eax
40242b:	8b cf                	mov    %edi,%ecx
40242d:	e8 f3 ec 00 00       	call   0x411125
402432:	f6 45 e0 04          	testb  $0x4,-0x20(%ebp)
402436:	74 03                	je     0x40243b
402438:	ff 45 94             	incl   -0x6c(%ebp)
40243b:	8b 45 e0             	mov    -0x20(%ebp),%eax
40243e:	83 65 98 00          	andl   $0x0,-0x68(%ebp)
402442:	83 e0 03             	and    $0x3,%eax
402445:	7e 25                	jle    0x40246c
402447:	6a 03                	push   $0x3
402449:	5f                   	pop    %edi
40244a:	2b f8                	sub    %eax,%edi
40244c:	c1 e7 03             	shl    $0x3,%edi
40244f:	89 45 e0             	mov    %eax,-0x20(%ebp)
402452:	8d 4d b8             	lea    -0x48(%ebp),%ecx
402455:	e8 a1 8f 00 00       	call   0x40b3fb
40245a:	0f b6 c0             	movzbl %al,%eax
40245d:	8b cf                	mov    %edi,%ecx
40245f:	d3 e0                	shl    %cl,%eax
402461:	83 c7 08             	add    $0x8,%edi
402464:	09 45 98             	or     %eax,-0x68(%ebp)
402467:	ff 4d e0             	decl   -0x20(%ebp)
40246a:	75 e6                	jne    0x402452
40246c:	8d 45 80             	lea    -0x80(%ebp),%eax
40246f:	50                   	push   %eax
402470:	8b 45 ec             	mov    -0x14(%ebp),%eax
402473:	8b 4c 85 a8          	mov    -0x58(%ebp,%eax,4),%ecx
402477:	e8 90 ed 00 00       	call   0x41120c
40247c:	83 6d e4 04          	subl   $0x4,-0x1c(%ebp)
402480:	ff 45 ec             	incl   -0x14(%ebp)
402483:	83 7d e4 fc          	cmpl   $0xfffffffc,-0x1c(%ebp)
402487:	0f 8f 6a ff ff ff    	jg     0x4023f7
40248d:	8b 86 48 10 00 00    	mov    0x1048(%esi),%eax
402493:	01 83 28 a2 00 00    	add    %eax,0xa228(%ebx)
402499:	8b 86 4c 10 00 00    	mov    0x104c(%esi),%eax
40249f:	8d 4d b8             	lea    -0x48(%ebp),%ecx
4024a2:	11 83 2c a2 00 00    	adc    %eax,0xa22c(%ebx)
4024a8:	8a 86 e2 10 00 00    	mov    0x10e2(%esi),%al
4024ae:	88 45 dc             	mov    %al,-0x24(%ebp)
4024b1:	ff 75 dc             	push   -0x24(%ebp)
4024b4:	e8 c6 90 00 00       	call   0x40b57f
4024b9:	0f b7 c0             	movzwl %ax,%eax
4024bc:	39 06                	cmp    %eax,(%esi)
4024be:	0f 84 14 01 00 00    	je     0x4025d8
4024c4:	6a 01                	push   $0x1
4024c6:	b9 74 2a 43 00       	mov    $0x432a74,%ecx
4024cb:	c6 83 44 a2 00 00 01 	movb   $0x1,0xa244(%ebx)
4024d2:	e8 33 3f 00 00       	call   0x40640a
4024d7:	80 7d f2 00          	cmpb   $0x0,-0xe(%ebp)
4024db:	0f 85 f7 00 00 00    	jne    0x4025d8
4024e1:	ff 75 e8             	push   -0x18(%ebp)
4024e4:	8d 43 1e             	lea    0x1e(%ebx),%eax
4024e7:	50                   	push   %eax
4024e8:	6a 1a                	push   $0x1a
4024ea:	e8 ea 3f 00 00       	call   0x4064d9
4024ef:	e9 e4 00 00 00       	jmp    0x4025d8
4024f4:	f7 83 34 57 00 00 00 	testl  $0x8000,0x5734(%ebx)
4024fb:	80 00 00
4024fe:	0f 84 d4 00 00 00    	je     0x4025d8
402504:	8d 4d b8             	lea    -0x48(%ebp),%ecx
402507:	e8 3c 8f 00 00       	call   0x40b448
40250c:	01 83 28 a2 00 00    	add    %eax,0xa228(%ebx)
402512:	83 93 2c a2 00 00 00 	adcl   $0x0,0xa22c(%ebx)
402519:	e9 ba 00 00 00       	jmp    0x4025d8
40251e:	8d bb 50 57 00 00    	lea    0x5750(%ebx),%edi
402524:	8b cf                	mov    %edi,%ecx
402526:	e8 6c 75 00 00       	call   0x409a97
40252b:	6a 05                	push   $0x5
40252d:	59                   	pop    %ecx
40252e:	8d b3 2c 57 00 00    	lea    0x572c(%ebx),%esi
402534:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
402536:	8d 4d b8             	lea    -0x48(%ebp),%ecx
402539:	e8 d5 8e 00 00       	call   0x40b413
40253e:	8d 4d b8             	lea    -0x48(%ebp),%ecx
402541:	66 89 83 64 57 00 00 	mov    %ax,0x5764(%ebx)
402548:	e8 fb 8e 00 00       	call   0x40b448
40254d:	8b f0                	mov    %eax,%esi
40254f:	8d 8b 58 57 00 00    	lea    0x5758(%ebx),%ecx
402555:	8a 01                	mov    (%ecx),%al
402557:	8b 09                	mov    (%ecx),%ecx
402559:	24 01                	and    $0x1,%al
40255b:	88 83 35 a2 00 00    	mov    %al,0xa235(%ebx)
402561:	8b c1                	mov    %ecx,%eax
402563:	c1 e8 03             	shr    $0x3,%eax
402566:	24 01                	and    $0x1,%al
402568:	88 83 34 a2 00 00    	mov    %al,0xa234(%ebx)
40256e:	8b c1                	mov    %ecx,%eax
402570:	c1 e8 02             	shr    $0x2,%eax
402573:	24 01                	and    $0x1,%al
402575:	88 83 37 a2 00 00    	mov    %al,0xa237(%ebx)
40257b:	8b c1                	mov    %ecx,%eax
40257d:	c1 e8 06             	shr    $0x6,%eax
402580:	24 01                	and    $0x1,%al
402582:	88 83 3b a2 00 00    	mov    %al,0xa23b(%ebx)
402588:	8b c1                	mov    %ecx,%eax
40258a:	c1 e8 07             	shr    $0x7,%eax
40258d:	24 01                	and    $0x1,%al
40258f:	89 b3 68 57 00 00    	mov    %esi,0x5768(%ebx)
402595:	88 83 3c a2 00 00    	mov    %al,0xa23c(%ebx)
40259b:	85 f6                	test   %esi,%esi
40259d:	75 0b                	jne    0x4025aa
40259f:	33 c0                	xor    %eax,%eax
4025a1:	66 39 83 64 57 00 00 	cmp    %ax,0x5764(%ebx)
4025a8:	74 03                	je     0x4025ad
4025aa:	33 c0                	xor    %eax,%eax
4025ac:	40                   	inc    %eax
4025ad:	88 83 38 a2 00 00    	mov    %al,0xa238(%ebx)
4025b3:	8b c1                	mov    %ecx,%eax
4025b5:	d1 e8                	shr    $1,%eax
4025b7:	24 01                	and    $0x1,%al
4025b9:	88 83 6c 57 00 00    	mov    %al,0x576c(%ebx)
4025bf:	8b c1                	mov    %ecx,%eax
4025c1:	c1 e8 08             	shr    $0x8,%eax
4025c4:	24 01                	and    $0x1,%al
4025c6:	c1 e9 04             	shr    $0x4,%ecx
4025c9:	80 e1 01             	and    $0x1,%cl
4025cc:	88 83 39 a2 00 00    	mov    %al,0xa239(%ebx)
4025d2:	88 8b 3a a2 00 00    	mov    %cl,0xa23a(%ebx)
4025d8:	33 ff                	xor    %edi,%edi
4025da:	57                   	push   %edi
4025db:	8d 4d b8             	lea    -0x48(%ebp),%ecx
4025de:	e8 9c 8f 00 00       	call   0x40b57f
4025e3:	0f b7 c0             	movzwl %ax,%eax
4025e6:	39 83 2c 57 00 00    	cmp    %eax,0x572c(%ebx)
4025ec:	0f 84 ab 00 00 00    	je     0x40269d
4025f2:	8b 83 30 57 00 00    	mov    0x5730(%ebx),%eax
4025f8:	83 f8 79             	cmp    $0x79,%eax
4025fb:	0f 84 9c 00 00 00    	je     0x40269d
402601:	83 f8 76             	cmp    $0x76,%eax
402604:	0f 84 93 00 00 00    	je     0x40269d
40260a:	83 f8 05             	cmp    $0x5,%eax
40260d:	75 5d                	jne    0x40266c
40260f:	80 bb e6 7a 00 00 00 	cmpb   $0x0,0x7ae6(%ebx)
402616:	74 54                	je     0x40266c
402618:	53                   	push   %ebx
402619:	8d 4d a8             	lea    -0x58(%ebp),%ecx
40261c:	e8 5a eb ff ff       	call   0x40117b
402621:	8b 03                	mov    (%ebx),%eax
402623:	8b cb                	mov    %ebx,%ecx
402625:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
402629:	ff 50 10             	call   *0x10(%eax)
40262c:	57                   	push   %edi
40262d:	6a 07                	push   $0x7
40262f:	5e                   	pop    %esi
402630:	2b c6                	sub    %esi,%eax
402632:	1b d7                	sbb    %edi,%edx
402634:	52                   	push   %edx
402635:	50                   	push   %eax
402636:	8b 03                	mov    (%ebx),%eax
402638:	8b cb                	mov    %ebx,%ecx
40263a:	ff 50 0c             	call   *0xc(%eax)
40263d:	c6 45 f3 01          	movb   $0x1,-0xd(%ebp)