41d238:	85 c0                	test   %eax,%eax
41d23a:	75 05                	jne    0x41d241
41d23c:	21 07                	and    %eax,(%edi)
41d23e:	40                   	inc    %eax
41d23f:	eb 33                	jmp    0x41d274
41d241:	8d 85 0c ff ff ff    	lea    -0xf4(%ebp),%eax
41d247:	50                   	push   %eax
41d248:	ff 73 54             	push   0x54(%ebx)
41d24b:	e8 8f d1 ff ff       	call   0x41a3df
41d250:	59                   	pop    %ecx
41d251:	59                   	pop    %ecx
41d252:	85 c0                	test   %eax,%eax
41d254:	75 14                	jne    0x41d26a
41d256:	56                   	push   %esi
41d257:	e8 f4 05 00 00       	call   0x41d850
41d25c:	59                   	pop    %ecx
41d25d:	85 c0                	test   %eax,%eax
41d25f:	74 09                	je     0x41d26a
41d261:	83 0f 04             	orl    $0x4,(%edi)
41d264:	89 77 08             	mov    %esi,0x8(%edi)
41d267:	89 77 04             	mov    %esi,0x4(%edi)
41d26a:	8b 07                	mov    (%edi),%eax
41d26c:	c1 e8 02             	shr    $0x2,%eax
41d26f:	f7 d0                	not    %eax
41d271:	83 e0 01             	and    $0x1,%eax
41d274:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41d277:	5f                   	pop    %edi
41d278:	5e                   	pop    %esi
41d279:	33 cd                	xor    %ebp,%ecx
41d27b:	5b                   	pop    %ebx
41d27c:	e8 8b a1 fe ff       	call   0x40740c
41d281:	c9                   	leave
41d282:	c2 04 00             	ret    $0x4
41d285:	8b ff                	mov    %edi,%edi
41d287:	55                   	push   %ebp
41d288:	8b ec                	mov    %esp,%ebp
41d28a:	56                   	push   %esi
41d28b:	57                   	push   %edi
41d28c:	e8 42 6f ff ff       	call   0x4141d3
41d291:	8b d0                	mov    %eax,%edx
41d293:	33 ff                	xor    %edi,%edi
41d295:	8b 4a 54             	mov    0x54(%edx),%ecx
41d298:	8d 71 02             	lea    0x2(%ecx),%esi
41d29b:	66 8b 01             	mov    (%ecx),%ax
41d29e:	83 c1 02             	add    $0x2,%ecx
41d2a1:	66 3b c7             	cmp    %di,%ax
41d2a4:	75 f5                	jne    0x41d29b
41d2a6:	2b ce                	sub    %esi,%ecx
41d2a8:	33 c0                	xor    %eax,%eax
41d2aa:	d1 f9                	sar    $1,%ecx
41d2ac:	83 f9 03             	cmp    $0x3,%ecx
41d2af:	6a 01                	push   $0x1
41d2b1:	0f 94 c0             	sete   %al
41d2b4:	68 de d1 41 00       	push   $0x41d1de
41d2b9:	89 42 64             	mov    %eax,0x64(%edx)
41d2bc:	ff 15 e8 40 42 00    	call   *0x4240e8
41d2c2:	8b 45 08             	mov    0x8(%ebp),%eax
41d2c5:	f6 00 04             	testb  $0x4,(%eax)
41d2c8:	75 02                	jne    0x41d2cc
41d2ca:	89 38                	mov    %edi,(%eax)
41d2cc:	5f                   	pop    %edi
41d2cd:	5e                   	pop    %esi
41d2ce:	5d                   	pop    %ebp
41d2cf:	c3                   	ret
41d2d0:	8b ff                	mov    %edi,%edi
41d2d2:	55                   	push   %ebp
41d2d3:	8b ec                	mov    %esp,%ebp
41d2d5:	53                   	push   %ebx
41d2d6:	56                   	push   %esi
41d2d7:	57                   	push   %edi
41d2d8:	e8 f6 6e ff ff       	call   0x4141d3
41d2dd:	8b f0                	mov    %eax,%esi
41d2df:	33 db                	xor    %ebx,%ebx
41d2e1:	6a 02                	push   $0x2
41d2e3:	5a                   	pop    %edx
41d2e4:	8b 4e 50             	mov    0x50(%esi),%ecx
41d2e7:	8d 79 02             	lea    0x2(%ecx),%edi
41d2ea:	66 8b 01             	mov    (%ecx),%ax
41d2ed:	03 ca                	add    %edx,%ecx
41d2ef:	66 3b c3             	cmp    %bx,%ax
41d2f2:	75 f6                	jne    0x41d2ea
41d2f4:	2b cf                	sub    %edi,%ecx
41d2f6:	33 c0                	xor    %eax,%eax
41d2f8:	d1 f9                	sar    $1,%ecx
41d2fa:	83 f9 03             	cmp    $0x3,%ecx
41d2fd:	8b 4e 54             	mov    0x54(%esi),%ecx
41d300:	0f 94 c0             	sete   %al
41d303:	89 46 60             	mov    %eax,0x60(%esi)
41d306:	8d 79 02             	lea    0x2(%ecx),%edi
41d309:	66 8b 01             	mov    (%ecx),%ax
41d30c:	03 ca                	add    %edx,%ecx
41d30e:	66 3b c3             	cmp    %bx,%ax
41d311:	75 f6                	jne    0x41d309
41d313:	2b cf                	sub    %edi,%ecx
41d315:	33 c0                	xor    %eax,%eax
41d317:	8b 7d 08             	mov    0x8(%ebp),%edi
41d31a:	d1 f9                	sar    $1,%ecx
41d31c:	83 f9 03             	cmp    $0x3,%ecx
41d31f:	0f 94 c0             	sete   %al
41d322:	89 46 64             	mov    %eax,0x64(%esi)
41d325:	89 5f 04             	mov    %ebx,0x4(%edi)
41d328:	39 5e 60             	cmp    %ebx,0x60(%esi)
41d32b:	75 0b                	jne    0x41d338
41d32d:	ff 76 50             	push   0x50(%esi)
41d330:	e8 95 00 00 00       	call   0x41d3ca
41d335:	59                   	pop    %ecx
41d336:	8b d0                	mov    %eax,%edx
41d338:	6a 01                	push   $0x1
41d33a:	68 f6 d3 41 00       	push   $0x41d3f6
41d33f:	89 56 5c             	mov    %edx,0x5c(%esi)
41d342:	ff 15 e8 40 42 00    	call   *0x4240e8
41d348:	8b 0f                	mov    (%edi),%ecx
41d34a:	f6 c1 07             	test   $0x7,%cl
41d34d:	0f 95 c2             	setne  %dl
41d350:	0f ba e1 09          	bt     $0x9,%ecx
41d354:	0f 92 c0             	setb   %al
41d357:	22 d0                	and    %al,%dl
41d359:	0f ba e1 08          	bt     $0x8,%ecx
41d35d:	0f 92 c0             	setb   %al
41d360:	84 d0                	test   %dl,%al
41d362:	75 02                	jne    0x41d366
41d364:	89 1f                	mov    %ebx,(%edi)
41d366:	5f                   	pop    %edi
41d367:	5e                   	pop    %esi
41d368:	5b                   	pop    %ebx
41d369:	5d                   	pop    %ebp
41d36a:	c3                   	ret
41d36b:	8b ff                	mov    %edi,%edi
41d36d:	55                   	push   %ebp
41d36e:	8b ec                	mov    %esp,%ebp
41d370:	53                   	push   %ebx
41d371:	56                   	push   %esi
41d372:	57                   	push   %edi
41d373:	e8 5b 6e ff ff       	call   0x4141d3
41d378:	8b f0                	mov    %eax,%esi
41d37a:	33 db                	xor    %ebx,%ebx
41d37c:	6a 02                	push   $0x2
41d37e:	5a                   	pop    %edx
41d37f:	8b 4e 50             	mov    0x50(%esi),%ecx
41d382:	8d 79 02             	lea    0x2(%ecx),%edi
41d385:	66 8b 01             	mov    (%ecx),%ax
41d388:	03 ca                	add    %edx,%ecx
41d38a:	66 3b c3             	cmp    %bx,%ax
41d38d:	75 f6                	jne    0x41d385
41d38f:	2b cf                	sub    %edi,%ecx
41d391:	33 c0                	xor    %eax,%eax
41d393:	d1 f9                	sar    $1,%ecx
41d395:	83 f9 03             	cmp    $0x3,%ecx
41d398:	0f 94 c0             	sete   %al
41d39b:	89 46 60             	mov    %eax,0x60(%esi)
41d39e:	74 0b                	je     0x41d3ab
41d3a0:	ff 76 50             	push   0x50(%esi)
41d3a3:	e8 22 00 00 00       	call   0x41d3ca
41d3a8:	59                   	pop    %ecx
41d3a9:	8b d0                	mov    %eax,%edx
41d3ab:	6a 01                	push   $0x1
41d3ad:	68 49 d6 41 00       	push   $0x41d649
41d3b2:	89 56 5c             	mov    %edx,0x5c(%esi)
41d3b5:	ff 15 e8 40 42 00    	call   *0x4240e8
41d3bb:	8b 45 08             	mov    0x8(%ebp),%eax
41d3be:	f6 00 04             	testb  $0x4,(%eax)
41d3c1:	75 02                	jne    0x41d3c5
41d3c3:	89 18                	mov    %ebx,(%eax)
41d3c5:	5f                   	pop    %edi
41d3c6:	5e                   	pop    %esi
41d3c7:	5b                   	pop    %ebx
41d3c8:	5d                   	pop    %ebp
41d3c9:	c3                   	ret
41d3ca:	8b ff                	mov    %edi,%edi
41d3cc:	55                   	push   %ebp
41d3cd:	8b ec                	mov    %esp,%ebp
41d3cf:	8b 4d 08             	mov    0x8(%ebp),%ecx
41d3d2:	33 d2                	xor    %edx,%edx
41d3d4:	0f b7 01             	movzwl (%ecx),%eax
41d3d7:	83 c1 02             	add    $0x2,%ecx
41d3da:	66 83 f8 41          	cmp    $0x41,%ax
41d3de:	72 06                	jb     0x41d3e6
41d3e0:	66 83 f8 5a          	cmp    $0x5a,%ax
41d3e4:	76 09                	jbe    0x41d3ef
41d3e6:	83 c0 9f             	add    $0xffffff9f,%eax
41d3e9:	66 83 f8 19          	cmp    $0x19,%ax
41d3ed:	77 03                	ja     0x41d3f2
41d3ef:	42                   	inc    %edx
41d3f0:	eb e2                	jmp    0x41d3d4
41d3f2:	8b c2                	mov    %edx,%eax
41d3f4:	5d                   	pop    %ebp
41d3f5:	c3                   	ret
41d3f6:	8b ff                	mov    %edi,%edi
41d3f8:	55                   	push   %ebp
41d3f9:	8b ec                	mov    %esp,%ebp
41d3fb:	81 ec fc 00 00 00    	sub    $0xfc,%esp
41d401:	a1 14 30 43 00       	mov    0x433014,%eax
41d406:	33 c5                	xor    %ebp,%eax
41d408:	89 45 fc             	mov    %eax,-0x4(%ebp)
41d40b:	53                   	push   %ebx
41d40c:	56                   	push   %esi
41d40d:	8b 75 08             	mov    0x8(%ebp),%esi
41d410:	57                   	push   %edi
41d411:	e8 bd 6d ff ff       	call   0x4141d3
41d416:	8b d8                	mov    %eax,%ebx
41d418:	e8 b6 6d ff ff       	call   0x4141d3
41d41d:	56                   	push   %esi
41d41e:	8b b8 4c 03 00 00    	mov    0x34c(%eax),%edi
41d424:	e8 f5 02 00 00       	call   0x41d71e
41d429:	59                   	pop    %ecx
41d42a:	8b 4b 64             	mov    0x64(%ebx),%ecx
41d42d:	8b f0                	mov    %eax,%esi
41d42f:	f7 d9                	neg    %ecx
41d431:	8d 85 0c ff ff ff    	lea    -0xf4(%ebp),%eax
41d437:	6a 78                	push   $0x78
41d439:	1b c9                	sbb    %ecx,%ecx
41d43b:	81 e1 05 f0 ff ff    	and    $0xfffff005,%ecx
41d441:	50                   	push   %eax
41d442:	81 c1 02 10 00 00    	add    $0x1002,%ecx
41d448:	51                   	push   %ecx
41d449:	56                   	push   %esi
41d44a:	ff 15 dc 40 42 00    	call   *0x4240dc
41d450:	83 a5 08 ff ff ff 00 	andl   $0x0,-0xf8(%ebp)
41d457:	85 c0                	test   %eax,%eax
41d459:	0f 84 d4 01 00 00    	je     0x41d633
41d45f:	8d 85 0c ff ff ff    	lea    -0xf4(%ebp),%eax
41d465:	50                   	push   %eax
41d466:	ff 73 54             	push   0x54(%ebx)
41d469:	e8 71 cf ff ff       	call   0x41a3df
41d46e:	59                   	pop    %ecx
41d46f:	59                   	pop    %ecx
41d470:	85 c0                	test   %eax,%eax
41d472:	0f 85 b5 00 00 00    	jne    0x41d52d
41d478:	6a 78                	push   $0x78
41d47a:	8d 85 0c ff ff ff    	lea    -0xf4(%ebp),%eax
41d480:	50                   	push   %eax
41d481:	8b 43 60             	mov    0x60(%ebx),%eax
41d484:	f7 d8                	neg    %eax
41d486:	1b c0                	sbb    %eax,%eax
41d488:	25 02 f0 ff ff       	and    $0xfffff002,%eax
41d48d:	05 01 10 00 00       	add    $0x1001,%eax
41d492:	50                   	push   %eax
41d493:	56                   	push   %esi
41d494:	ff 15 dc 40 42 00    	call   *0x4240dc
41d49a:	85 c0                	test   %eax,%eax
41d49c:	0f 84 91 01 00 00    	je     0x41d633
41d4a2:	8d 85 0c ff ff ff    	lea    -0xf4(%ebp),%eax
41d4a8:	50                   	push   %eax
41d4a9:	ff 73 50             	push   0x50(%ebx)
41d4ac:	e8 2e cf ff ff       	call   0x41a3df
41d4b1:	59                   	pop    %ecx
41d4b2:	59                   	pop    %ecx
41d4b3:	8b 0f                	mov    (%edi),%ecx
41d4b5:	85 c0                	test   %eax,%eax
41d4b7:	75 0d                	jne    0x41d4c6
41d4b9:	81 c9 04 03 00 00    	or     $0x304,%ecx
41d4bf:	89 77 04             	mov    %esi,0x4(%edi)
41d4c2:	89 0f                	mov    %ecx,(%edi)
41d4c4:	eb 64                	jmp    0x41d52a
41d4c6:	f6 c1 02             	test   $0x2,%cl
41d4c9:	75 62                	jne    0x41d52d
41d4cb:	83 7b 5c 00          	cmpl   $0x0,0x5c(%ebx)
41d4cf:	74 42                	je     0x41d513
41d4d1:	ff 73 5c             	push   0x5c(%ebx)
41d4d4:	8d 85 0c ff ff ff    	lea    -0xf4(%ebp),%eax
41d4da:	50                   	push   %eax
41d4db:	ff 73 50             	push   0x50(%ebx)
41d4de:	e8 d3 f8 fe ff       	call   0x40cdb6
41d4e3:	83 c4 0c             	add    $0xc,%esp
41d4e6:	85 c0                	test   %eax,%eax
41d4e8:	75 29                	jne    0x41d513
41d4ea:	83 0f 02             	orl    $0x2,(%edi)
41d4ed:	89 77 08             	mov    %esi,0x8(%edi)
41d4f0:	8b 4b 50             	mov    0x50(%ebx),%ecx
41d4f3:	8d 51 02             	lea    0x2(%ecx),%edx
41d4f6:	66 8b 01             	mov    (%ecx),%ax
41d4f9:	83 c1 02             	add    $0x2,%ecx
41d4fc:	66 3b 85 08 ff ff ff 	cmp    -0xf8(%ebp),%ax
41d503:	75 f1                	jne    0x41d4f6
41d505:	2b ca                	sub    %edx,%ecx
41d507:	d1 f9                	sar    $1,%ecx
41d509:	3b 4b 5c             	cmp    0x5c(%ebx),%ecx
41d50c:	75 1f                	jne    0x41d52d
41d50e:	89 77 04             	mov    %esi,0x4(%edi)
41d511:	eb 1a                	jmp    0x41d52d
41d513:	8b 17                	mov    (%edi),%edx
41d515:	f6 c2 01             	test   $0x1,%dl
41d518:	75 13                	jne    0x41d52d
41d51a:	56                   	push   %esi
41d51b:	e8 30 03 00 00       	call   0x41d850
41d520:	59                   	pop    %ecx
41d521:	85 c0                	test   %eax,%eax
41d523:	74 08                	je     0x41d52d
41d525:	83 ca 01             	or     $0x1,%edx
41d528:	89 17                	mov    %edx,(%edi)
41d52a:	89 77 08             	mov    %esi,0x8(%edi)
41d52d:	8b 07                	mov    (%edi),%eax
41d52f:	b9 00 03 00 00       	mov    $0x300,%ecx
41d534:	23 c1                	and    %ecx,%eax
41d536:	3b c1                	cmp    %ecx,%eax
41d538:	0f 84 e9 00 00 00    	je     0x41d627
41d53e:	6a 78                	push   $0x78
41d540:	8d 85 0c ff ff ff    	lea    -0xf4(%ebp),%eax
41d546:	50                   	push   %eax
41d547:	8b 43 60             	mov    0x60(%ebx),%eax
41d54a:	f7 d8                	neg    %eax
41d54c:	1b c0                	sbb    %eax,%eax
41d54e:	25 02 f0 ff ff       	and    $0xfffff002,%eax
41d553:	05 01 10 00 00       	add    $0x1001,%eax
41d558:	50                   	push   %eax
41d559:	56                   	push   %esi
41d55a:	ff 15 dc 40 42 00    	call   *0x4240dc
41d560:	85 c0                	test   %eax,%eax
41d562:	0f 84 cb 00 00 00    	je     0x41d633
41d568:	8d 85 0c ff ff ff    	lea    -0xf4(%ebp),%eax
41d56e:	50                   	push   %eax
41d56f:	ff 73 50             	push   0x50(%ebx)
41d572:	e8 68 ce ff ff       	call   0x41a3df
41d577:	59                   	pop    %ecx
41d578:	59                   	pop    %ecx
41d579:	85 c0                	test   %eax,%eax
41d57b:	75 6a                	jne    0x41d5e7
41d57d:	8b 0f                	mov    (%edi),%ecx
41d57f:	81 c9 00 02 00 00    	or     $0x200,%ecx
41d585:	89 0f                	mov    %ecx,(%edi)
41d587:	39 43 60             	cmp    %eax,0x60(%ebx)
41d58a:	74 10                	je     0x41d59c
41d58c:	81 c9 00 01 00 00    	or     $0x100,%ecx
41d592:	89 0f                	mov    %ecx,(%edi)
41d594:	39 47 04             	cmp    %eax,0x4(%edi)
41d597:	e9 86 00 00 00       	jmp    0x41d622
41d59c:	39 43 5c             	cmp    %eax,0x5c(%ebx)
41d59f:	74 eb                	je     0x41d58c
41d5a1:	8b 53 50             	mov    0x50(%ebx),%edx
41d5a4:	8d 42 02             	lea    0x2(%edx),%eax
41d5a7:	89 85 04 ff ff ff    	mov    %eax,-0xfc(%ebp)
41d5ad:	66 8b 02             	mov    (%edx),%ax
41d5b0:	83 c2 02             	add    $0x2,%edx
41d5b3:	66 3b 85 08 ff ff ff 	cmp    -0xf8(%ebp),%ax
41d5ba:	75 f1                	jne    0x41d5ad
41d5bc:	2b 95 04 ff ff ff    	sub    -0xfc(%ebp),%edx
41d5c2:	d1 fa                	sar    $1,%edx
41d5c4:	3b 53 5c             	cmp    0x5c(%ebx),%edx
41d5c7:	75 1a                	jne    0x41d5e3
41d5c9:	57                   	push   %edi
41d5ca:	6a 01                	push   $0x1
41d5cc:	56                   	push   %esi
41d5cd:	e8 a3 02 00 00       	call   0x41d875
41d5d2:	83 c4 0c             	add    $0xc,%esp
41d5d5:	85 c0                	test   %eax,%eax
41d5d7:	74 4e                	je     0x41d627
41d5d9:	81 0f 00 01 00 00    	orl    $0x100,(%edi)
41d5df:	33 c0                	xor    %eax,%eax
41d5e1:	eb b1                	jmp    0x41d594
41d5e3:	33 c0                	xor    %eax,%eax