40c17d:	08 44 1e 19          	or     %al,0x19(%esi,%ebx,1)
40c181:	0f b6 41 01          	movzbl 0x1(%ecx),%eax
40c185:	43                   	inc    %ebx
40c186:	3b d8                	cmp    %eax,%ebx
40c188:	76 e5                	jbe    0x40c16f
40c18a:	83 c1 02             	add    $0x2,%ecx
40c18d:	80 39 00             	cmpb   $0x0,(%ecx)
40c190:	75 ce                	jne    0x40c160
40c192:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40c195:	47                   	inc    %edi
40c196:	83 c0 08             	add    $0x8,%eax
40c199:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40c19c:	83 ff 04             	cmp    $0x4,%edi
40c19f:	72 b8                	jb     0x40c159
40c1a1:	8b 5d e0             	mov    -0x20(%ebp),%ebx
40c1a4:	53                   	push   %ebx
40c1a5:	89 5e 04             	mov    %ebx,0x4(%esi)
40c1a8:	c7 46 08 01 00 00 00 	movl   $0x1,0x8(%esi)
40c1af:	e8 57 f9 ff ff       	call   0x40bb0b
40c1b4:	83 c4 04             	add    $0x4,%esp
40c1b7:	89 86 1c 02 00 00    	mov    %eax,0x21c(%esi)
40c1bd:	6a 06                	push   $0x6
40c1bf:	8d 4e 0c             	lea    0xc(%esi),%ecx
40c1c2:	8d 92 c4 08 42 00    	lea    0x4208c4(%edx),%edx
40c1c8:	5f                   	pop    %edi
40c1c9:	66 8b 02             	mov    (%edx),%ax
40c1cc:	66 89 01             	mov    %ax,(%ecx)
40c1cf:	8d 52 02             	lea    0x2(%edx),%edx
40c1d2:	8d 49 02             	lea    0x2(%ecx),%ecx
40c1d5:	4f                   	dec    %edi
40c1d6:	75 f1                	jne    0x40c1c9
40c1d8:	56                   	push   %esi
40c1d9:	e8 3c fa ff ff       	call   0x40bc1a
40c1de:	59                   	pop    %ecx
40c1df:	33 c0                	xor    %eax,%eax
40c1e1:	5f                   	pop    %edi
40c1e2:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40c1e5:	5e                   	pop    %esi
40c1e6:	33 cd                	xor    %ebp,%ecx
40c1e8:	5b                   	pop    %ebx
40c1e9:	e8 4b 85 ff ff       	call   0x404739
40c1ee:	c9                   	leave
40c1ef:	c3                   	ret
40c1f0:	55                   	push   %ebp
40c1f1:	8b ec                	mov    %esp,%ebp
40c1f3:	83 ec 18             	sub    $0x18,%esp
40c1f6:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40c1f9:	53                   	push   %ebx
40c1fa:	ff 75 10             	push   0x10(%ebp)
40c1fd:	e8 fb 8f ff ff       	call   0x4051fd
40c202:	8b 5d 08             	mov    0x8(%ebp),%ebx
40c205:	8d 43 01             	lea    0x1(%ebx),%eax
40c208:	3d 00 01 00 00       	cmp    $0x100,%eax
40c20d:	77 0f                	ja     0x40c21e
40c20f:	8b 45 e8             	mov    -0x18(%ebp),%eax
40c212:	8b 80 90 00 00 00    	mov    0x90(%eax),%eax
40c218:	0f b7 04 58          	movzwl (%eax,%ebx,2),%eax
40c21c:	eb 6e                	jmp    0x40c28c
40c21e:	8b c3                	mov    %ebx,%eax
40c220:	c1 f8 08             	sar    $0x8,%eax
40c223:	89 45 08             	mov    %eax,0x8(%ebp)
40c226:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40c229:	0f b6 c0             	movzbl %al,%eax
40c22c:	51                   	push   %ecx
40c22d:	50                   	push   %eax
40c22e:	e8 44 50 00 00       	call   0x411277
40c233:	59                   	pop    %ecx
40c234:	59                   	pop    %ecx
40c235:	85 c0                	test   %eax,%eax
40c237:	74 12                	je     0x40c24b
40c239:	8b 45 08             	mov    0x8(%ebp),%eax
40c23c:	6a 02                	push   $0x2
40c23e:	88 45 f8             	mov    %al,-0x8(%ebp)
40c241:	88 5d f9             	mov    %bl,-0x7(%ebp)
40c244:	c6 45 fa 00          	movb   $0x0,-0x6(%ebp)
40c248:	59                   	pop    %ecx
40c249:	eb 0a                	jmp    0x40c255
40c24b:	33 c9                	xor    %ecx,%ecx
40c24d:	88 5d f8             	mov    %bl,-0x8(%ebp)
40c250:	c6 45 f9 00          	movb   $0x0,-0x7(%ebp)
40c254:	41                   	inc    %ecx
40c255:	8b 45 e8             	mov    -0x18(%ebp),%eax
40c258:	6a 01                	push   $0x1
40c25a:	ff 70 04             	push   0x4(%eax)
40c25d:	8d 45 fc             	lea    -0x4(%ebp),%eax
40c260:	50                   	push   %eax
40c261:	51                   	push   %ecx
40c262:	8d 45 f8             	lea    -0x8(%ebp),%eax
40c265:	50                   	push   %eax
40c266:	8d 45 e8             	lea    -0x18(%ebp),%eax
40c269:	6a 01                	push   $0x1
40c26b:	50                   	push   %eax
40c26c:	e8 a4 31 00 00       	call   0x40f415
40c271:	83 c4 1c             	add    $0x1c,%esp
40c274:	85 c0                	test   %eax,%eax
40c276:	75 10                	jne    0x40c288
40c278:	38 45 f4             	cmp    %al,-0xc(%ebp)
40c27b:	74 07                	je     0x40c284
40c27d:	8b 45 f0             	mov    -0x10(%ebp),%eax
40c280:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
40c284:	33 c0                	xor    %eax,%eax
40c286:	eb 14                	jmp    0x40c29c
40c288:	0f b7 45 fc          	movzwl -0x4(%ebp),%eax
40c28c:	23 45 0c             	and    0xc(%ebp),%eax
40c28f:	80 7d f4 00          	cmpb   $0x0,-0xc(%ebp)
40c293:	74 07                	je     0x40c29c
40c295:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40c298:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
40c29c:	5b                   	pop    %ebx
40c29d:	c9                   	leave
40c29e:	c3                   	ret
40c29f:	6a 08                	push   $0x8
40c2a1:	68 50 e5 41 00       	push   $0x41e550
40c2a6:	e8 05 eb ff ff       	call   0x40adb0
40c2ab:	8b 75 08             	mov    0x8(%ebp),%esi
40c2ae:	85 f6                	test   %esi,%esi
40c2b0:	0f 84 00 01 00 00    	je     0x40c3b6
40c2b6:	83 7e 24 00          	cmpl   $0x0,0x24(%esi)
40c2ba:	74 09                	je     0x40c2c5
40c2bc:	ff 76 24             	push   0x24(%esi)
40c2bf:	e8 54 8e ff ff       	call   0x405118
40c2c4:	59                   	pop    %ecx
40c2c5:	83 7e 2c 00          	cmpl   $0x0,0x2c(%esi)
40c2c9:	74 09                	je     0x40c2d4
40c2cb:	ff 76 2c             	push   0x2c(%esi)
40c2ce:	e8 45 8e ff ff       	call   0x405118
40c2d3:	59                   	pop    %ecx
40c2d4:	83 7e 34 00          	cmpl   $0x0,0x34(%esi)
40c2d8:	74 09                	je     0x40c2e3
40c2da:	ff 76 34             	push   0x34(%esi)
40c2dd:	e8 36 8e ff ff       	call   0x405118
40c2e2:	59                   	pop    %ecx
40c2e3:	83 7e 3c 00          	cmpl   $0x0,0x3c(%esi)
40c2e7:	74 09                	je     0x40c2f2
40c2e9:	ff 76 3c             	push   0x3c(%esi)
40c2ec:	e8 27 8e ff ff       	call   0x405118
40c2f1:	59                   	pop    %ecx
40c2f2:	83 7e 40 00          	cmpl   $0x0,0x40(%esi)
40c2f6:	74 09                	je     0x40c301
40c2f8:	ff 76 40             	push   0x40(%esi)
40c2fb:	e8 18 8e ff ff       	call   0x405118
40c300:	59                   	pop    %ecx
40c301:	83 7e 44 00          	cmpl   $0x0,0x44(%esi)
40c305:	74 09                	je     0x40c310
40c307:	ff 76 44             	push   0x44(%esi)
40c30a:	e8 09 8e ff ff       	call   0x405118
40c30f:	59                   	pop    %ecx
40c310:	83 7e 48 00          	cmpl   $0x0,0x48(%esi)
40c314:	74 09                	je     0x40c31f
40c316:	ff 76 48             	push   0x48(%esi)
40c319:	e8 fa 8d ff ff       	call   0x405118
40c31e:	59                   	pop    %ecx
40c31f:	81 7e 5c 68 bb 41 00 	cmpl   $0x41bb68,0x5c(%esi)
40c326:	74 09                	je     0x40c331
40c328:	ff 76 5c             	push   0x5c(%esi)
40c32b:	e8 e8 8d ff ff       	call   0x405118
40c330:	59                   	pop    %ecx
40c331:	6a 0d                	push   $0xd
40c333:	e8 6f c1 ff ff       	call   0x4084a7
40c338:	59                   	pop    %ecx
40c339:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40c33d:	8b 7e 68             	mov    0x68(%esi),%edi
40c340:	85 ff                	test   %edi,%edi
40c342:	74 1a                	je     0x40c35e
40c344:	57                   	push   %edi
40c345:	ff 15 54 90 41 00    	call   *0x419054
40c34b:	85 c0                	test   %eax,%eax
40c34d:	75 0f                	jne    0x40c35e
40c34f:	81 ff b8 0b 42 00    	cmp    $0x420bb8,%edi
40c355:	74 07                	je     0x40c35e
40c357:	57                   	push   %edi
40c358:	e8 bb 8d ff ff       	call   0x405118
40c35d:	59                   	pop    %ecx
40c35e:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40c365:	e8 57 00 00 00       	call   0x40c3c1
40c36a:	6a 0c                	push   $0xc
40c36c:	e8 36 c1 ff ff       	call   0x4084a7
40c371:	59                   	pop    %ecx
40c372:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40c379:	8b 7e 6c             	mov    0x6c(%esi),%edi
40c37c:	85 ff                	test   %edi,%edi
40c37e:	74 23                	je     0x40c3a3
40c380:	57                   	push   %edi
40c381:	e8 05 f6 ff ff       	call   0x40b98b
40c386:	59                   	pop    %ecx
40c387:	3b 3d 44 0f 42 00    	cmp    0x420f44,%edi
40c38d:	74 14                	je     0x40c3a3
40c38f:	81 ff 48 0f 42 00    	cmp    $0x420f48,%edi
40c395:	74 0c                	je     0x40c3a3
40c397:	83 3f 00             	cmpl   $0x0,(%edi)
40c39a:	75 07                	jne    0x40c3a3
40c39c:	57                   	push   %edi
40c39d:	e8 8f f4 ff ff       	call   0x40b831
40c3a2:	59                   	pop    %ecx
40c3a3:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40c3aa:	e8 1e 00 00 00       	call   0x40c3cd
40c3af:	56                   	push   %esi
40c3b0:	e8 63 8d ff ff       	call   0x405118
40c3b5:	59                   	pop    %ecx
40c3b6:	e8 3a ea ff ff       	call   0x40adf5
40c3bb:	c2 04 00             	ret    $0x4
40c3be:	8b 75 08             	mov    0x8(%ebp),%esi
40c3c1:	6a 0d                	push   $0xd
40c3c3:	e8 43 c2 ff ff       	call   0x40860b
40c3c8:	59                   	pop    %ecx
40c3c9:	c3                   	ret
40c3ca:	8b 75 08             	mov    0x8(%ebp),%esi
40c3cd:	6a 0c                	push   $0xc
40c3cf:	e8 37 c2 ff ff       	call   0x40860b
40c3d4:	59                   	pop    %ecx
40c3d5:	c3                   	ret
40c3d6:	56                   	push   %esi
40c3d7:	e8 12 00 00 00       	call   0x40c3ee
40c3dc:	8b f0                	mov    %eax,%esi
40c3de:	85 f6                	test   %esi,%esi
40c3e0:	75 08                	jne    0x40c3ea
40c3e2:	6a 10                	push   $0x10
40c3e4:	e8 e2 e6 ff ff       	call   0x40aacb
40c3e9:	59                   	pop    %ecx
40c3ea:	8b c6                	mov    %esi,%eax
40c3ec:	5e                   	pop    %esi
40c3ed:	c3                   	ret
40c3ee:	56                   	push   %esi
40c3ef:	57                   	push   %edi
40c3f0:	ff 15 18 90 41 00    	call   *0x419018
40c3f6:	ff 35 d8 0d 42 00    	push   0x420dd8
40c3fc:	8b f8                	mov    %eax,%edi
40c3fe:	e8 f3 35 00 00       	call   0x40f9f6
40c403:	8b f0                	mov    %eax,%esi
40c405:	59                   	pop    %ecx
40c406:	85 f6                	test   %esi,%esi
40c408:	75 47                	jne    0x40c451
40c40a:	68 b8 03 00 00       	push   $0x3b8
40c40f:	6a 01                	push   $0x1
40c411:	e8 42 c6 ff ff       	call   0x408a58
40c416:	8b f0                	mov    %eax,%esi
40c418:	59                   	pop    %ecx
40c419:	59                   	pop    %ecx
40c41a:	85 f6                	test   %esi,%esi
40c41c:	74 33                	je     0x40c451
40c41e:	56                   	push   %esi
40c41f:	ff 35 d8 0d 42 00    	push   0x420dd8
40c425:	e8 da 35 00 00       	call   0x40fa04
40c42a:	59                   	pop    %ecx
40c42b:	59                   	pop    %ecx
40c42c:	85 c0                	test   %eax,%eax
40c42e:	74 18                	je     0x40c448
40c430:	6a 00                	push   $0x0
40c432:	56                   	push   %esi
40c433:	e8 25 00 00 00       	call   0x40c45d
40c438:	59                   	pop    %ecx
40c439:	59                   	pop    %ecx
40c43a:	ff 15 cc 90 41 00    	call   *0x4190cc
40c440:	83 4e 04 ff          	orl    $0xffffffff,0x4(%esi)
40c444:	89 06                	mov    %eax,(%esi)
40c446:	eb 09                	jmp    0x40c451
40c448:	56                   	push   %esi
40c449:	e8 ca 8c ff ff       	call   0x405118
40c44e:	59                   	pop    %ecx
40c44f:	33 f6                	xor    %esi,%esi
40c451:	57                   	push   %edi
40c452:	ff 15 c8 90 41 00    	call   *0x4190c8
40c458:	5f                   	pop    %edi
40c459:	8b c6                	mov    %esi,%eax
40c45b:	5e                   	pop    %esi
40c45c:	c3                   	ret
40c45d:	6a 08                	push   $0x8
40c45f:	68 78 e5 41 00       	push   $0x41e578
40c464:	e8 47 e9 ff ff       	call   0x40adb0
40c469:	8b 75 08             	mov    0x8(%ebp),%esi
40c46c:	c7 46 5c 68 bb 41 00 	movl   $0x41bb68,0x5c(%esi)
40c473:	83 66 08 00          	andl   $0x0,0x8(%esi)
40c477:	33 ff                	xor    %edi,%edi
40c479:	47                   	inc    %edi
40c47a:	89 7e 14             	mov    %edi,0x14(%esi)
40c47d:	89 7e 70             	mov    %edi,0x70(%esi)
40c480:	6a 43                	push   $0x43
40c482:	58                   	pop    %eax
40c483:	66 89 86 b8 00 00 00 	mov    %ax,0xb8(%esi)
40c48a:	66 89 86 be 01 00 00 	mov    %ax,0x1be(%esi)
40c491:	c7 46 68 b8 0b 42 00 	movl   $0x420bb8,0x68(%esi)
40c498:	6a 0d                	push   $0xd
40c49a:	e8 08 c0 ff ff       	call   0x4084a7
40c49f:	59                   	pop    %ecx
40c4a0:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40c4a4:	ff 76 68             	push   0x68(%esi)
40c4a7:	ff 15 50 90 41 00    	call   *0x419050
40c4ad:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40c4b4:	e8 3e 00 00 00       	call   0x40c4f7
40c4b9:	6a 0c                	push   $0xc
40c4bb:	e8 e7 bf ff ff       	call   0x4084a7
40c4c0:	59                   	pop    %ecx
40c4c1:	89 7d fc             	mov    %edi,-0x4(%ebp)
40c4c4:	8b 45 0c             	mov    0xc(%ebp),%eax
40c4c7:	89 46 6c             	mov    %eax,0x6c(%esi)
40c4ca:	85 c0                	test   %eax,%eax
40c4cc:	75 08                	jne    0x40c4d6
40c4ce:	a1 44 0f 42 00       	mov    0x420f44,%eax
40c4d3:	89 46 6c             	mov    %eax,0x6c(%esi)
40c4d6:	ff 76 6c             	push   0x6c(%esi)
40c4d9:	e8 c3 f2 ff ff       	call   0x40b7a1
40c4de:	59                   	pop    %ecx
40c4df:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40c4e6:	e8 15 00 00 00       	call   0x40c500
40c4eb:	e8 05 e9 ff ff       	call   0x40adf5
40c4f0:	c3                   	ret
40c4f1:	33 ff                	xor    %edi,%edi
40c4f3:	47                   	inc    %edi
40c4f4:	8b 75 08             	mov    0x8(%ebp),%esi
40c4f7:	6a 0d                	push   $0xd
40c4f9:	e8 0d c1 ff ff       	call   0x40860b
40c4fe:	59                   	pop    %ecx
40c4ff:	c3                   	ret
40c500:	6a 0c                	push   $0xc
40c502:	e8 04 c1 ff ff       	call   0x40860b
40c507:	59                   	pop    %ecx
40c508:	c3                   	ret
40c509:	e8 9c e6 ff ff       	call   0x40abaa
40c50e:	e8 c3 c0 ff ff       	call   0x4085d6
40c513:	85 c0                	test   %eax,%eax
40c515:	75 08                	jne    0x40c51f
40c517:	e8 63 00 00 00       	call   0x40c57f
40c51c:	33 c0                	xor    %eax,%eax
40c51e:	c3                   	ret
40c51f:	68 9f c2 40 00       	push   $0x40c29f
40c524:	e8 b1 34 00 00       	call   0x40f9da
40c529:	59                   	pop    %ecx
40c52a:	a3 d8 0d 42 00       	mov    %eax,0x420dd8
40c52f:	83 f8 ff             	cmp    $0xffffffff,%eax
40c532:	74 e3                	je     0x40c517
40c534:	56                   	push   %esi
40c535:	68 b8 03 00 00       	push   $0x3b8
40c53a:	6a 01                	push   $0x1
40c53c:	e8 17 c5 ff ff       	call   0x408a58
40c541:	8b f0                	mov    %eax,%esi
40c543:	59                   	pop    %ecx
40c544:	59                   	pop    %ecx
40c545:	85 f6                	test   %esi,%esi
40c547:	74 2d                	je     0x40c576
40c549:	56                   	push   %esi
40c54a:	ff 35 d8 0d 42 00    	push   0x420dd8
40c550:	e8 af 34 00 00       	call   0x40fa04
40c555:	59                   	pop    %ecx
40c556:	59                   	pop    %ecx
40c557:	85 c0                	test   %eax,%eax
40c559:	74 1b                	je     0x40c576
40c55b:	6a 00                	push   $0x0
40c55d:	56                   	push   %esi
40c55e:	e8 fa fe ff ff       	call   0x40c45d
40c563:	59                   	pop    %ecx