40e27c:	0f b7 4f 0a          	movzwl 0xa(%edi),%ecx
40e280:	66 89 4e 0a          	mov    %cx,0xa(%esi)
40e284:	66 83 f8 3f          	cmp    $0x3f,%ax
40e288:	0f 8e 39 59 03 00    	jle    0x443bc7
40e28e:	66 83 f8 10          	cmp    $0x10,%ax
40e292:	0f 84 6e 59 03 00    	je     0x443c06
40e298:	66 83 f8 20          	cmp    $0x20,%ax
40e29c:	0f 84 86 02 00 00    	je     0x40e528
40e2a2:	8b 07                	mov    (%edi),%eax
40e2a4:	89 06                	mov    %eax,(%esi)
40e2a6:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40e2a9:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40e2ac:	ff 75 0c             	push   0xc(%ebp)
40e2af:	89 34 88             	mov    %esi,(%eax,%ecx,4)
40e2b2:	8d 45 e0             	lea    -0x20(%ebp),%eax
40e2b5:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40e2b8:	ff 45 e8             	incl   -0x18(%ebp)
40e2bb:	50                   	push   %eax
40e2bc:	e8 4d 35 00 00       	call   0x41180e
40e2c1:	33 f6                	xor    %esi,%esi
40e2c3:	c7 45 e0 78 fb 48 00 	movl   $0x48fb78,-0x20(%ebp)
40e2ca:	39 75 e8             	cmp    %esi,-0x18(%ebp)
40e2cd:	76 2e                	jbe    0x40e2fd
40e2cf:	90                   	nop
40e2d0:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40e2d3:	8b 3c b0             	mov    (%eax,%esi,4),%edi
40e2d6:	85 ff                	test   %edi,%edi
40e2d8:	74 16                	je     0x40e2f0
40e2da:	0f b7 47 08          	movzwl 0x8(%edi),%eax
40e2de:	66 83 f8 3f          	cmp    $0x3f,%ax
40e2e2:	7e 34                	jle    0x40e318
40e2e4:	57                   	push   %edi
40e2e5:	e8 82 2d 01 00       	call   0x42106c
40e2ea:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40e2ed:	83 c4 04             	add    $0x4,%esp
40e2f0:	c7 04 b0 00 00 00 00 	movl   $0x0,(%eax,%esi,4)
40e2f7:	46                   	inc    %esi
40e2f8:	3b 75 e8             	cmp    -0x18(%ebp),%esi
40e2fb:	72 d3                	jb     0x40e2d0
40e2fd:	ff 75 e4             	push   -0x1c(%ebp)
40e300:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
40e307:	e8 60 2d 01 00       	call   0x42106c
40e30c:	83 c4 04             	add    $0x4,%esp
40e30f:	5f                   	pop    %edi
40e310:	5e                   	pop    %esi
40e311:	5b                   	pop    %ebx
40e312:	8b e5                	mov    %ebp,%esp
40e314:	5d                   	pop    %ebp
40e315:	c2 08 00             	ret    $0x8
40e318:	66 83 f8 30          	cmp    $0x30,%ax
40e31c:	7c c6                	jl     0x40e2e4
40e31e:	8b 1f                	mov    (%edi),%ebx
40e320:	85 db                	test   %ebx,%ebx
40e322:	74 c0                	je     0x40e2e4
40e324:	8b 43 0c             	mov    0xc(%ebx),%eax
40e327:	ff 08                	decl   (%eax)
40e329:	8b 43 0c             	mov    0xc(%ebx),%eax
40e32c:	83 38 00             	cmpl   $0x0,(%eax)
40e32f:	0f 84 e0 58 03 00    	je     0x443c15
40e335:	53                   	push   %ebx
40e336:	e8 31 2d 01 00       	call   0x42106c
40e33b:	83 c4 04             	add    $0x4,%esp
40e33e:	eb a4                	jmp    0x40e2e4
40e340:	8b 7d 0c             	mov    0xc(%ebp),%edi
40e343:	33 d2                	xor    %edx,%edx
40e345:	32 ff                	xor    %bh,%bh
40e347:	c6 45 0b 00          	movb   $0x0,0xb(%ebp)
40e34b:	c7 45 c0 00 00 00 00 	movl   $0x0,-0x40(%ebp)
40e352:	c7 45 c8 00 00 00 00 	movl   $0x0,-0x38(%ebp)
40e359:	8b 07                	mov    (%edi),%eax
40e35b:	c7 45 cc 01 00 00 00 	movl   $0x1,-0x34(%ebp)
40e362:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)
40e369:	c7 45 d8 00 00 00 00 	movl   $0x0,-0x28(%ebp)
40e370:	c7 45 dc 01 00 00 00 	movl   $0x1,-0x24(%ebp)
40e377:	8d 48 ff             	lea    -0x1(%eax),%ecx
40e37a:	89 55 f8             	mov    %edx,-0x8(%ebp)
40e37d:	89 55 b0             	mov    %edx,-0x50(%ebp)
40e380:	89 4d b4             	mov    %ecx,-0x4c(%ebp)
40e383:	84 db                	test   %bl,%bl
40e385:	0f 85 25 01 00 00    	jne    0x40e4b0
40e38b:	33 c0                	xor    %eax,%eax
40e38d:	89 45 0c             	mov    %eax,0xc(%ebp)
40e390:	8b 37                	mov    (%edi),%esi
40e392:	8d 56 01             	lea    0x1(%esi),%edx
40e395:	89 17                	mov    %edx,(%edi)
40e397:	3b 35 a0 72 4c 00    	cmp    0x4c72a0,%esi
40e39d:	7f 4b                	jg     0x40e3ea
40e39f:	85 f6                	test   %esi,%esi
40e3a1:	7e 47                	jle    0x40e3ea
40e3a3:	c1 e6 04             	shl    $0x4,%esi
40e3a6:	03 35 dc 72 4c 00    	add    0x4c72dc,%esi
40e3ac:	74 3c                	je     0x40e3ea
40e3ae:	84 ff                	test   %bh,%bh
40e3b0:	75 38                	jne    0x40e3ea
40e3b2:	8b 4e 04             	mov    0x4(%esi),%ecx
40e3b5:	8b 01                	mov    (%ecx),%eax
40e3b7:	66 83 78 08 00       	cmpw   $0x0,0x8(%eax)
40e3bc:	75 d2                	jne    0x40e390
40e3be:	8b 00                	mov    (%eax),%eax
40e3c0:	83 f8 08             	cmp    $0x8,%eax
40e3c3:	0f 85 b6 00 00 00    	jne    0x40e47f
40e3c9:	8b 45 0c             	mov    0xc(%ebp),%eax
40e3cc:	85 c0                	test   %eax,%eax
40e3ce:	0f 85 64 01 00 00    	jne    0x40e538
40e3d4:	8d 42 ff             	lea    -0x1(%edx),%eax
40e3d7:	b7 01                	mov    $0x1,%bh
40e3d9:	89 45 b8             	mov    %eax,-0x48(%ebp)
40e3dc:	84 db                	test   %bl,%bl
40e3de:	75 b0                	jne    0x40e390
40e3e0:	38 5d 0b             	cmp    %bl,0xb(%ebp)
40e3e3:	75 ab                	jne    0x40e390
40e3e5:	89 45 f8             	mov    %eax,-0x8(%ebp)
40e3e8:	eb a6                	jmp    0x40e390
40e3ea:	8b 5d f4             	mov    -0xc(%ebp),%ebx
40e3ed:	8b 45 f8             	mov    -0x8(%ebp),%eax
40e3f0:	89 07                	mov    %eax,(%edi)
40e3f2:	80 bb 65 01 00 00 00 	cmpb   $0x0,0x165(%ebx)
40e3f9:	0f 85 08 59 03 00    	jne    0x443d07
40e3ff:	6a 38                	push   $0x38
40e401:	e8 f0 2b 01 00       	call   0x420ff6
40e406:	8b f0                	mov    %eax,%esi
40e408:	83 c4 04             	add    $0x4,%esp
40e40b:	85 f6                	test   %esi,%esi
40e40d:	0f 84 2b 01 00 00    	je     0x40e53e
40e413:	8b 45 b4             	mov    -0x4c(%ebp),%eax
40e416:	8b 4d bc             	mov    -0x44(%ebp),%ecx
40e419:	89 46 04             	mov    %eax,0x4(%esi)
40e41c:	8b 45 b8             	mov    -0x48(%ebp),%eax
40e41f:	89 46 08             	mov    %eax,0x8(%esi)
40e422:	8d 45 c0             	lea    -0x40(%ebp),%eax
40e425:	89 4e 0c             	mov    %ecx,0xc(%esi)
40e428:	8d 4e 10             	lea    0x10(%esi),%ecx
40e42b:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
40e431:	50                   	push   %eax
40e432:	c7 41 08 00 00 00 00 	movl   $0x0,0x8(%ecx)
40e439:	e8 82 b6 ff ff       	call   0x409ac0
40e43e:	8d 45 d0             	lea    -0x30(%ebp),%eax
40e441:	c7 46 28 00 00 00 00 	movl   $0x0,0x28(%esi)
40e448:	8d 4e 20             	lea    0x20(%esi),%ecx
40e44b:	50                   	push   %eax
40e44c:	e8 6f b6 ff ff       	call   0x409ac0
40e451:	8b 83 60 01 00 00    	mov    0x160(%ebx),%eax
40e457:	89 46 30             	mov    %eax,0x30(%esi)
40e45a:	89 b3 60 01 00 00    	mov    %esi,0x160(%ebx)
40e460:	ff 83 5c 01 00 00    	incl   0x15c(%ebx)
40e466:	8d 4d d0             	lea    -0x30(%ebp),%ecx
40e469:	e8 b2 b5 ff ff       	call   0x409a20
40e46e:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40e471:	e8 aa b5 ff ff       	call   0x409a20
40e476:	5f                   	pop    %edi
40e477:	5e                   	pop    %esi
40e478:	5b                   	pop    %ebx
40e479:	8b e5                	mov    %ebp,%esp
40e47b:	5d                   	pop    %ebp
40e47c:	c2 08 00             	ret    $0x8
40e47f:	83 e8 04             	sub    $0x4,%eax
40e482:	74 51                	je     0x40e4d5
40e484:	83 e8 02             	sub    $0x2,%eax
40e487:	75 40                	jne    0x40e4c9
40e489:	39 45 0c             	cmp    %eax,0xc(%ebp)
40e48c:	0f 85 fe fe ff ff    	jne    0x40e390
40e492:	80 7d 0b 01          	cmpb   $0x1,0xb(%ebp)
40e496:	0f 84 5a 58 03 00    	je     0x443cf6
40e49c:	c6 45 0b 01          	movb   $0x1,0xb(%ebp)
40e4a0:	84 db                	test   %bl,%bl
40e4a2:	0f 85 e8 fe ff ff    	jne    0x40e390
40e4a8:	89 55 f8             	mov    %edx,-0x8(%ebp)
40e4ab:	e9 e0 fe ff ff       	jmp    0x40e390
40e4b0:	89 45 f8             	mov    %eax,-0x8(%ebp)
40e4b3:	e9 d3 fe ff ff       	jmp    0x40e38b
40e4b8:	83 c1 fb             	add    $0xfffffffb,%ecx
40e4bb:	83 f9 0a             	cmp    $0xa,%ecx
40e4be:	0f 87 0e fc ff ff    	ja     0x40e0d2
40e4c4:	e9 00 56 03 00       	jmp    0x443ac9
40e4c9:	48                   	dec    %eax
40e4ca:	0f 85 c0 fe ff ff    	jne    0x40e390
40e4d0:	e9 5a 57 03 00       	jmp    0x443c2f
40e4d5:	8b 76 08             	mov    0x8(%esi),%esi
40e4d8:	ba 01 00 00 00       	mov    $0x1,%edx
40e4dd:	3b f2                	cmp    %edx,%esi
40e4df:	0f 86 ab fe ff ff    	jbe    0x40e390
40e4e5:	8b 04 91             	mov    (%ecx,%edx,4),%eax
40e4e8:	66 83 78 08 00       	cmpw   $0x0,0x8(%eax)
40e4ed:	74 0a                	je     0x40e4f9
40e4ef:	42                   	inc    %edx
40e4f0:	3b d6                	cmp    %esi,%edx
40e4f2:	72 f1                	jb     0x40e4e5
40e4f4:	e9 97 fe ff ff       	jmp    0x40e390
40e4f9:	83 38 05             	cmpl   $0x5,(%eax)
40e4fc:	75 f1                	jne    0x40e4ef
40e4fe:	8b 44 91 04          	mov    0x4(%ecx,%edx,4),%eax
40e502:	66 83 78 08 7f       	cmpw   $0x7f,0x8(%eax)
40e507:	75 e6                	jne    0x40e4ef
40e509:	ff 45 0c             	incl   0xc(%ebp)
40e50c:	e9 7f fe ff ff       	jmp    0x40e390
40e511:	33 d2                	xor    %edx,%edx
40e513:	e9 d9 fc ff ff       	jmp    0x40e1f1
40e518:	dd 03                	fldl   (%ebx)
40e51a:	dd 1e                	fstpl  (%esi)
40e51c:	e9 73 fc ff ff       	jmp    0x40e194
40e521:	33 f6                	xor    %esi,%esi
40e523:	e9 6c fc ff ff       	jmp    0x40e194
40e528:	dd 07                	fldl   (%edi)
40e52a:	dd 1e                	fstpl  (%esi)
40e52c:	e9 75 fd ff ff       	jmp    0x40e2a6
40e531:	33 f6                	xor    %esi,%esi
40e533:	e9 6e fd ff ff       	jmp    0x40e2a6
40e538:	48                   	dec    %eax
40e539:	e9 4f fe ff ff       	jmp    0x40e38d
40e53e:	33 f6                	xor    %esi,%esi
40e540:	e9 0c ff ff ff       	jmp    0x40e451
40e545:	8d 49 00             	lea    0x0(%ecx),%ecx
40e548:	1b e1                	sbb    %ecx,%esp
40e54a:	40                   	inc    %eax
40e54b:	00 64 3a 44          	add    %ah,0x44(%edx,%edi,1)
40e54f:	00 6f 3a             	add    %ch,0x3a(%edi)
40e552:	44                   	inc    %esp
40e553:	00 89 3a 44 00 bc    	add    %cl,-0x43ffbbc6(%ecx)
40e559:	e0 40                	loopne 0x40e59b
40e55b:	00 bc e0 40 00 1b e1 	add    %bh,-0x1ee4ffc0(%eax,%eiz,8)
40e562:	40                   	inc    %eax
40e563:	00 bc e0 40 00 bc e0 	add    %bh,-0x1f43ffc0(%eax,%eiz,8)
40e56a:	40                   	inc    %eax
40e56b:	00 bc e0 40 00 9e 3a 	add    %bh,0x3a9e0040(%eax,%eiz,8)
40e572:	44                   	inc    %esp
40e573:	00 cc                	add    %cl,%ah
40e575:	cc                   	int3
40e576:	cc                   	int3
40e577:	cc                   	int3
40e578:	cc                   	int3
40e579:	cc                   	int3
40e57a:	cc                   	int3
40e57b:	cc                   	int3
40e57c:	cc                   	int3
40e57d:	cc                   	int3
40e57e:	cc                   	int3
40e57f:	cc                   	int3
40e580:	55                   	push   %ebp
40e581:	8b ec                	mov    %esp,%ebp
40e583:	51                   	push   %ecx
40e584:	8b 55 08             	mov    0x8(%ebp),%edx
40e587:	53                   	push   %ebx
40e588:	56                   	push   %esi
40e589:	57                   	push   %edi
40e58a:	8b 7a 04             	mov    0x4(%edx),%edi
40e58d:	8b f1                	mov    %ecx,%esi
40e58f:	33 c9                	xor    %ecx,%ecx
40e591:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40e594:	8b 07                	mov    (%edi),%eax
40e596:	8b 00                	mov    (%eax),%eax
40e598:	83 f8 04             	cmp    $0x4,%eax
40e59b:	75 14                	jne    0x40e5b1
40e59d:	ff 75 0c             	push   0xc(%ebp)
40e5a0:	8b ce                	mov    %esi,%ecx
40e5a2:	52                   	push   %edx
40e5a3:	e8 b8 fa ff ff       	call   0x40e060
40e5a8:	5f                   	pop    %edi
40e5a9:	5e                   	pop    %esi
40e5aa:	5b                   	pop    %ebx
40e5ab:	8b e5                	mov    %ebp,%esp
40e5ad:	5d                   	pop    %ebp
40e5ae:	c2 08 00             	ret    $0x8
40e5b1:	83 e8 04             	sub    $0x4,%eax
40e5b4:	83 f8 28             	cmp    $0x28,%eax
40e5b7:	0f 87 03 59 03 00    	ja     0x443ec0
40e5bd:	ff 24 85 50 e7 40 00 	jmp    *0x40e750(,%eax,4)
40e5c4:	ff 75 0c             	push   0xc(%ebp)
40e5c7:	51                   	push   %ecx
40e5c8:	8b ce                	mov    %esi,%ecx
40e5ca:	e8 21 f1 ff ff       	call   0x40d6f0
40e5cf:	5f                   	pop    %edi
40e5d0:	5e                   	pop    %esi
40e5d1:	5b                   	pop    %ebx
40e5d2:	8b e5                	mov    %ebp,%esp
40e5d4:	5d                   	pop    %ebp
40e5d5:	c2 08 00             	ret    $0x8
40e5d8:	ff 75 0c             	push   0xc(%ebp)
40e5db:	8b ce                	mov    %esi,%ecx
40e5dd:	52                   	push   %edx
40e5de:	e8 2d f3 ff ff       	call   0x40d910
40e5e3:	5f                   	pop    %edi
40e5e4:	5e                   	pop    %esi
40e5e5:	5b                   	pop    %ebx
40e5e6:	8b e5                	mov    %ebp,%esp
40e5e8:	5d                   	pop    %ebp
40e5e9:	c2 08 00             	ret    $0x8
40e5ec:	8d 45 fc             	lea    -0x4(%ebp),%eax
40e5ef:	8b ce                	mov    %esi,%ecx
40e5f1:	50                   	push   %eax
40e5f2:	52                   	push   %edx
40e5f3:	e8 22 e8 ff ff       	call   0x40ce1a
40e5f8:	c6 86 44 01 00 00 01 	movb   $0x1,0x144(%esi)
40e5ff:	5f                   	pop    %edi
40e600:	5e                   	pop    %esi
40e601:	5b                   	pop    %ebx
40e602:	8b e5                	mov    %ebp,%esp
40e604:	5d                   	pop    %ebp
40e605:	c2 08 00             	ret    $0x8
40e608:	6a 01                	push   $0x1
40e60a:	8d 45 fc             	lea    -0x4(%ebp),%eax
40e60d:	8b ce                	mov    %esi,%ecx
40e60f:	50                   	push   %eax
40e610:	52                   	push   %edx
40e611:	e8 4a ec ff ff       	call   0x40d260
40e616:	5f                   	pop    %edi
40e617:	5e                   	pop    %esi
40e618:	5b                   	pop    %ebx
40e619:	8b e5                	mov    %ebp,%esp
40e61b:	5d                   	pop    %ebp
40e61c:	c2 08 00             	ret    $0x8
40e61f:	38 8e 65 01 00 00    	cmp    %cl,0x165(%esi)
40e625:	0f 85 47 57 03 00    	jne    0x443d72
40e62b:	80 be 64 01 00 00 00 	cmpb   $0x0,0x164(%esi)
40e632:	0f 85 5f 57 03 00    	jne    0x443d97
40e638:	8b be 60 01 00 00    	mov    0x160(%esi),%edi
40e63e:	8b 5f 30             	mov    0x30(%edi),%ebx
40e641:	85 ff                	test   %edi,%edi
40e643:	74 19                	je     0x40e65e
40e645:	8d 4f 20             	lea    0x20(%edi),%ecx
40e648:	e8 d3 b3 ff ff       	call   0x409a20
40e64d:	8d 4f 10             	lea    0x10(%edi),%ecx
40e650:	e8 cb b3 ff ff       	call   0x409a20
40e655:	57                   	push   %edi
40e656:	e8 11 2a 01 00       	call   0x42106c
40e65b:	83 c4 04             	add    $0x4,%esp
40e65e:	89 9e 60 01 00 00    	mov    %ebx,0x160(%esi)
40e664:	c6 86 65 01 00 00 00 	movb   $0x0,0x165(%esi)
40e66b:	ff 8e 5c 01 00 00    	decl   0x15c(%esi)
40e671:	5f                   	pop    %edi
40e672:	5e                   	pop    %esi
40e673:	5b                   	pop    %ebx
40e674:	8b e5                	mov    %ebp,%esp
40e676:	5d                   	pop    %ebp
40e677:	c2 08 00             	ret    $0x8
40e67a:	ff 75 0c             	push   0xc(%ebp)
40e67d:	8b ce                	mov    %esi,%ecx
40e67f:	52                   	push   %edx
40e680:	e8 a9 f7 ff ff       	call   0x40de2e
40e685:	5f                   	pop    %edi
40e686:	5e                   	pop    %esi
40e687:	5b                   	pop    %ebx
40e688:	8b e5                	mov    %ebp,%esp
40e68a:	5d                   	pop    %ebp
40e68b:	c2 08 00             	ret    $0x8
40e68e:	80 be 65 01 00 00 00 	cmpb   $0x0,0x165(%esi)
40e695:	8d 8e 5c 01 00 00    	lea    0x15c(%esi),%ecx
40e69b:	0f 85 c6 56 03 00    	jne    0x443d67
40e6a1:	8b 51 04             	mov    0x4(%ecx),%edx
40e6a4:	8b 52 08             	mov    0x8(%edx),%edx
40e6a7:	8b 45 0c             	mov    0xc(%ebp),%eax