41a436:	8b 14 f2             	mov    (%edx,%esi,8),%edx
41a439:	e8 5e a3 fe ff       	call   0x40479c
41a43e:	5f                   	pop    %edi
41a43f:	5e                   	pop    %esi
41a440:	5b                   	pop    %ebx
41a441:	c3                   	ret
41a442:	8b c0                	mov    %eax,%eax
41a444:	8b 40 20             	mov    0x20(%eax),%eax
41a447:	c3                   	ret
41a448:	8b 40 1c             	mov    0x1c(%eax),%eax
41a44b:	c3                   	ret
41a44c:	53                   	push   %ebx
41a44d:	56                   	push   %esi
41a44e:	8b f2                	mov    %edx,%esi
41a450:	8b d8                	mov    %eax,%ebx
41a452:	85 f6                	test   %esi,%esi
41a454:	7c 05                	jl     0x41a45b
41a456:	3b 73 1c             	cmp    0x1c(%ebx),%esi
41a459:	7c 0f                	jl     0x41a46a
41a45b:	8b 15 3c 77 4a 00    	mov    0x4a773c,%edx
41a461:	8b ce                	mov    %esi,%ecx
41a463:	8b c3                	mov    %ebx,%eax
41a465:	e8 76 f1 ff ff       	call   0x4195e0
41a46a:	8b 43 18             	mov    0x18(%ebx),%eax
41a46d:	8b 44 f0 04          	mov    0x4(%eax,%esi,8),%eax
41a471:	5e                   	pop    %esi
41a472:	5b                   	pop    %ebx
41a473:	c3                   	ret
41a474:	56                   	push   %esi
41a475:	8b 50 20             	mov    0x20(%eax),%edx
41a478:	83 fa 40             	cmp    $0x40,%edx
41a47b:	7e 0e                	jle    0x41a48b
41a47d:	8b f2                	mov    %edx,%esi
41a47f:	85 f6                	test   %esi,%esi
41a481:	79 03                	jns    0x41a486
41a483:	83 c6 03             	add    $0x3,%esi
41a486:	c1 fe 02             	sar    $0x2,%esi
41a489:	eb 11                	jmp    0x41a49c
41a48b:	83 fa 08             	cmp    $0x8,%edx
41a48e:	7e 07                	jle    0x41a497
41a490:	be 10 00 00 00       	mov    $0x10,%esi
41a495:	eb 05                	jmp    0x41a49c
41a497:	be 04 00 00 00       	mov    $0x4,%esi
41a49c:	03 f2                	add    %edx,%esi
41a49e:	8b d6                	mov    %esi,%edx
41a4a0:	8b 08                	mov    (%eax),%ecx
41a4a2:	ff 51 28             	call   *0x28(%ecx)
41a4a5:	5e                   	pop    %esi
41a4a6:	c3                   	ret
41a4a7:	90                   	nop
41a4a8:	53                   	push   %ebx
41a4a9:	56                   	push   %esi
41a4aa:	51                   	push   %ecx
41a4ab:	8b f2                	mov    %edx,%esi
41a4ad:	8b d8                	mov    %eax,%ebx
41a4af:	80 7b 24 00          	cmpb   $0x0,0x24(%ebx)
41a4b3:	75 0e                	jne    0x41a4c3
41a4b5:	8b d6                	mov    %esi,%edx
41a4b7:	8b c3                	mov    %ebx,%eax
41a4b9:	e8 fe f3 ff ff       	call   0x4198bc
41a4be:	89 04 24             	mov    %eax,(%esp)
41a4c1:	eb 19                	jmp    0x41a4dc
41a4c3:	8b cc                	mov    %esp,%ecx
41a4c5:	8b d6                	mov    %esi,%edx
41a4c7:	8b c3                	mov    %ebx,%eax
41a4c9:	8b 18                	mov    (%eax),%ebx
41a4cb:	ff 93 8c 00 00 00    	call   *0x8c(%ebx)
41a4d1:	84 c0                	test   %al,%al
41a4d3:	75 07                	jne    0x41a4dc
41a4d5:	c7 04 24 ff ff ff ff 	movl   $0xffffffff,(%esp)
41a4dc:	8b 04 24             	mov    (%esp),%eax
41a4df:	5a                   	pop    %edx
41a4e0:	5e                   	pop    %esi
41a4e1:	5b                   	pop    %ebx
41a4e2:	c3                   	ret
41a4e3:	90                   	nop
41a4e4:	53                   	push   %ebx
41a4e5:	56                   	push   %esi
41a4e6:	8b f0                	mov    %eax,%esi
41a4e8:	6a 00                	push   $0x0
41a4ea:	8b c6                	mov    %esi,%eax
41a4ec:	8b 18                	mov    (%eax),%ebx
41a4ee:	ff 53 64             	call   *0x64(%ebx)
41a4f1:	5e                   	pop    %esi
41a4f2:	5b                   	pop    %ebx
41a4f3:	c3                   	ret
41a4f4:	55                   	push   %ebp
41a4f5:	8b ec                	mov    %esp,%ebp
41a4f7:	53                   	push   %ebx
41a4f8:	56                   	push   %esi
41a4f9:	57                   	push   %edi
41a4fa:	8b f9                	mov    %ecx,%edi
41a4fc:	8b f2                	mov    %edx,%esi
41a4fe:	8b d8                	mov    %eax,%ebx
41a500:	80 7b 24 00          	cmpb   $0x0,0x24(%ebx)
41a504:	74 0f                	je     0x41a515
41a506:	8b 15 90 75 4a 00    	mov    0x4a7590,%edx
41a50c:	33 c9                	xor    %ecx,%ecx
41a50e:	8b c3                	mov    %ebx,%eax
41a510:	e8 cb f0 ff ff       	call   0x4195e0
41a515:	85 f6                	test   %esi,%esi
41a517:	7c 05                	jl     0x41a51e
41a519:	3b 73 1c             	cmp    0x1c(%ebx),%esi
41a51c:	7e 0f                	jle    0x41a52d
41a51e:	8b 15 3c 77 4a 00    	mov    0x4a773c,%edx
41a524:	8b ce                	mov    %esi,%ecx
41a526:	8b c3                	mov    %ebx,%eax
41a528:	e8 b3 f0 ff ff       	call   0x4195e0
41a52d:	8b 45 08             	mov    0x8(%ebp),%eax
41a530:	50                   	push   %eax
41a531:	8b cf                	mov    %edi,%ecx
41a533:	8b d6                	mov    %esi,%edx
41a535:	8b c3                	mov    %ebx,%eax
41a537:	8b 18                	mov    (%eax),%ebx
41a539:	ff 93 88 00 00 00    	call   *0x88(%ebx)
41a53f:	5f                   	pop    %edi
41a540:	5e                   	pop    %esi
41a541:	5b                   	pop    %ebx
41a542:	5d                   	pop    %ebp
41a543:	c2 04 00             	ret    $0x4
41a546:	8b c0                	mov    %eax,%eax
41a548:	55                   	push   %ebp
41a549:	8b ec                	mov    %esp,%ebp
41a54b:	53                   	push   %ebx
41a54c:	56                   	push   %esi
41a54d:	57                   	push   %edi
41a54e:	8b f9                	mov    %ecx,%edi
41a550:	8b f2                	mov    %edx,%esi
41a552:	8b d8                	mov    %eax,%ebx
41a554:	8b c3                	mov    %ebx,%eax
41a556:	8b 10                	mov    (%eax),%edx
41a558:	ff 92 84 00 00 00    	call   *0x84(%edx)
41a55e:	8b 43 1c             	mov    0x1c(%ebx),%eax
41a561:	3b 43 20             	cmp    0x20(%ebx),%eax
41a564:	75 07                	jne    0x41a56d
41a566:	8b c3                	mov    %ebx,%eax
41a568:	e8 07 ff ff ff       	call   0x41a474
41a56d:	8b 43 1c             	mov    0x1c(%ebx),%eax
41a570:	3b f0                	cmp    %eax,%esi
41a572:	7d 20                	jge    0x41a594
41a574:	8b 53 18             	mov    0x18(%ebx),%edx
41a577:	8d 54 f2 08          	lea    0x8(%edx,%esi,8),%edx
41a57b:	52                   	push   %edx
41a57c:	8b 53 18             	mov    0x18(%ebx),%edx
41a57f:	8d 14 f2             	lea    (%edx,%esi,8),%edx
41a582:	2b c6                	sub    %esi,%eax
41a584:	8b c8                	mov    %eax,%ecx
41a586:	03 c9                	add    %ecx,%ecx
41a588:	03 c9                	add    %ecx,%ecx
41a58a:	03 c9                	add    %ecx,%ecx
41a58c:	8b c2                	mov    %edx,%eax
41a58e:	5a                   	pop    %edx
41a58f:	e8 58 89 fe ff       	call   0x402eec
41a594:	8b 43 18             	mov    0x18(%ebx),%eax
41a597:	8d 04 f0             	lea    (%eax,%esi,8),%eax
41a59a:	8b f0                	mov    %eax,%esi
41a59c:	33 c0                	xor    %eax,%eax
41a59e:	89 06                	mov    %eax,(%esi)
41a5a0:	8b 45 08             	mov    0x8(%ebp),%eax
41a5a3:	89 46 04             	mov    %eax,0x4(%esi)
41a5a6:	8b c6                	mov    %esi,%eax
41a5a8:	8b d7                	mov    %edi,%edx
41a5aa:	e8 ed a1 fe ff       	call   0x40479c
41a5af:	ff 43 1c             	incl   0x1c(%ebx)
41a5b2:	8b c3                	mov    %ebx,%eax
41a5b4:	8b 10                	mov    (%eax),%edx
41a5b6:	ff 92 80 00 00 00    	call   *0x80(%edx)
41a5bc:	5f                   	pop    %edi
41a5bd:	5e                   	pop    %esi
41a5be:	5b                   	pop    %ebx
41a5bf:	5d                   	pop    %ebp
41a5c0:	c2 04 00             	ret    $0x4
41a5c3:	90                   	nop
41a5c4:	53                   	push   %ebx
41a5c5:	56                   	push   %esi
41a5c6:	57                   	push   %edi
41a5c7:	8b f9                	mov    %ecx,%edi
41a5c9:	8b f2                	mov    %edx,%esi
41a5cb:	8b d8                	mov    %eax,%ebx
41a5cd:	80 7b 24 00          	cmpb   $0x0,0x24(%ebx)
41a5d1:	74 0f                	je     0x41a5e2
41a5d3:	8b 15 90 75 4a 00    	mov    0x4a7590,%edx
41a5d9:	33 c9                	xor    %ecx,%ecx
41a5db:	8b c3                	mov    %ebx,%eax
41a5dd:	e8 fe ef ff ff       	call   0x4195e0
41a5e2:	85 f6                	test   %esi,%esi
41a5e4:	7c 05                	jl     0x41a5eb
41a5e6:	3b 73 1c             	cmp    0x1c(%ebx),%esi
41a5e9:	7c 0f                	jl     0x41a5fa
41a5eb:	8b 15 3c 77 4a 00    	mov    0x4a773c,%edx
41a5f1:	8b ce                	mov    %esi,%ecx
41a5f3:	8b c3                	mov    %ebx,%eax
41a5f5:	e8 e6 ef ff ff       	call   0x4195e0
41a5fa:	8b c3                	mov    %ebx,%eax
41a5fc:	8b 10                	mov    (%eax),%edx
41a5fe:	ff 92 84 00 00 00    	call   *0x84(%edx)
41a604:	8b 43 18             	mov    0x18(%ebx),%eax
41a607:	8d 04 f0             	lea    (%eax,%esi,8),%eax
41a60a:	8b d7                	mov    %edi,%edx
41a60c:	e8 8b a1 fe ff       	call   0x40479c
41a611:	8b c3                	mov    %ebx,%eax
41a613:	8b 10                	mov    (%eax),%edx
41a615:	ff 92 80 00 00 00    	call   *0x80(%edx)
41a61b:	5f                   	pop    %edi
41a61c:	5e                   	pop    %esi
41a61d:	5b                   	pop    %ebx
41a61e:	c3                   	ret
41a61f:	90                   	nop
41a620:	53                   	push   %ebx
41a621:	56                   	push   %esi
41a622:	57                   	push   %edi
41a623:	8b f9                	mov    %ecx,%edi
41a625:	8b f2                	mov    %edx,%esi
41a627:	8b d8                	mov    %eax,%ebx
41a629:	85 f6                	test   %esi,%esi
41a62b:	7c 05                	jl     0x41a632
41a62d:	3b 73 1c             	cmp    0x1c(%ebx),%esi
41a630:	7c 0f                	jl     0x41a641
41a632:	8b 15 3c 77 4a 00    	mov    0x4a773c,%edx
41a638:	8b ce                	mov    %esi,%ecx
41a63a:	8b c3                	mov    %ebx,%eax
41a63c:	e8 9f ef ff ff       	call   0x4195e0
41a641:	8b c3                	mov    %ebx,%eax
41a643:	8b 10                	mov    (%eax),%edx
41a645:	ff 92 84 00 00 00    	call   *0x84(%edx)
41a64b:	8b 43 18             	mov    0x18(%ebx),%eax
41a64e:	89 7c f0 04          	mov    %edi,0x4(%eax,%esi,8)
41a652:	8b c3                	mov    %ebx,%eax
41a654:	8b 10                	mov    (%eax),%edx
41a656:	ff 92 80 00 00 00    	call   *0x80(%edx)
41a65c:	5f                   	pop    %edi
41a65d:	5e                   	pop    %esi
41a65e:	5b                   	pop    %ebx
41a65f:	c3                   	ret
41a660:	55                   	push   %ebp
41a661:	8b ec                	mov    %esp,%ebp
41a663:	83 c4 f0             	add    $0xfffffff0,%esp
41a666:	53                   	push   %ebx
41a667:	56                   	push   %esi
41a668:	89 4d f4             	mov    %ecx,-0xc(%ebp)
41a66b:	89 55 f8             	mov    %edx,-0x8(%ebp)
41a66e:	89 45 fc             	mov    %eax,-0x4(%ebp)
41a671:	8b 5d f8             	mov    -0x8(%ebp),%ebx
41a674:	8b 75 f4             	mov    -0xc(%ebp),%esi
41a677:	8b 45 f8             	mov    -0x8(%ebp),%eax
41a67a:	03 45 f4             	add    -0xc(%ebp),%eax
41a67d:	d1 e8                	shr    $1,%eax
41a67f:	89 45 f0             	mov    %eax,-0x10(%ebp)
41a682:	eb 01                	jmp    0x41a685
41a684:	43                   	inc    %ebx
41a685:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41a688:	8b d3                	mov    %ebx,%edx
41a68a:	8b 45 fc             	mov    -0x4(%ebp),%eax
41a68d:	ff 55 08             	call   *0x8(%ebp)
41a690:	85 c0                	test   %eax,%eax
41a692:	7c f0                	jl     0x41a684
41a694:	eb 01                	jmp    0x41a697
41a696:	4e                   	dec    %esi
41a697:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41a69a:	8b d6                	mov    %esi,%edx
41a69c:	8b 45 fc             	mov    -0x4(%ebp),%eax
41a69f:	ff 55 08             	call   *0x8(%ebp)
41a6a2:	85 c0                	test   %eax,%eax
41a6a4:	7f f0                	jg     0x41a696
41a6a6:	3b f3                	cmp    %ebx,%esi
41a6a8:	7c 20                	jl     0x41a6ca
41a6aa:	8b ce                	mov    %esi,%ecx
41a6ac:	8b d3                	mov    %ebx,%edx
41a6ae:	8b 45 fc             	mov    -0x4(%ebp),%eax
41a6b1:	e8 b2 fc ff ff       	call   0x41a368
41a6b6:	3b 5d f0             	cmp    -0x10(%ebp),%ebx
41a6b9:	75 05                	jne    0x41a6c0
41a6bb:	89 75 f0             	mov    %esi,-0x10(%ebp)
41a6be:	eb 08                	jmp    0x41a6c8
41a6c0:	3b 75 f0             	cmp    -0x10(%ebp),%esi
41a6c3:	75 03                	jne    0x41a6c8
41a6c5:	89 5d f0             	mov    %ebx,-0x10(%ebp)
41a6c8:	43                   	inc    %ebx
41a6c9:	4e                   	dec    %esi
41a6ca:	3b f3                	cmp    %ebx,%esi
41a6cc:	7d b7                	jge    0x41a685
41a6ce:	3b 75 f8             	cmp    -0x8(%ebp),%esi
41a6d1:	7e 11                	jle    0x41a6e4
41a6d3:	8b 45 08             	mov    0x8(%ebp),%eax
41a6d6:	50                   	push   %eax
41a6d7:	8b ce                	mov    %esi,%ecx
41a6d9:	8b 55 f8             	mov    -0x8(%ebp),%edx
41a6dc:	8b 45 fc             	mov    -0x4(%ebp),%eax
41a6df:	e8 7c ff ff ff       	call   0x41a660
41a6e4:	89 5d f8             	mov    %ebx,-0x8(%ebp)
41a6e7:	3b 5d f4             	cmp    -0xc(%ebp),%ebx
41a6ea:	7c 85                	jl     0x41a671
41a6ec:	5e                   	pop    %esi
41a6ed:	5b                   	pop    %ebx
41a6ee:	8b e5                	mov    %ebp,%esp
41a6f0:	5d                   	pop    %ebp
41a6f1:	c2 04 00             	ret    $0x4
41a6f4:	53                   	push   %ebx
41a6f5:	56                   	push   %esi
41a6f6:	8b f2                	mov    %edx,%esi
41a6f8:	8b d8                	mov    %eax,%ebx
41a6fa:	8b d6                	mov    %esi,%edx
41a6fc:	03 d2                	add    %edx,%edx
41a6fe:	03 d2                	add    %edx,%edx
41a700:	03 d2                	add    %edx,%edx
41a702:	8d 43 18             	lea    0x18(%ebx),%eax
41a705:	e8 26 86 fe ff       	call   0x402d30
41a70a:	89 73 20             	mov    %esi,0x20(%ebx)
41a70d:	5e                   	pop    %esi
41a70e:	5b                   	pop    %ebx
41a70f:	c3                   	ret
41a710:	53                   	push   %ebx
41a711:	56                   	push   %esi
41a712:	8b da                	mov    %edx,%ebx
41a714:	8b f0                	mov    %eax,%esi
41a716:	3a 5e 24             	cmp    0x24(%esi),%bl
41a719:	74 11                	je     0x41a72c
41a71b:	84 db                	test   %bl,%bl
41a71d:	74 0a                	je     0x41a729
41a71f:	8b c6                	mov    %esi,%eax
41a721:	8b 10                	mov    (%eax),%edx
41a723:	ff 92 90 00 00 00    	call   *0x90(%edx)
41a729:	88 5e 24             	mov    %bl,0x24(%esi)
41a72c:	5e                   	pop    %esi
41a72d:	5b                   	pop    %ebx
41a72e:	c3                   	ret
41a72f:	90                   	nop
41a730:	84 d2                	test   %dl,%dl
41a732:	74 09                	je     0x41a73d
41a734:	8b 10                	mov    (%eax),%edx
41a736:	ff 92 84 00 00 00    	call   *0x84(%edx)
41a73c:	c3                   	ret
41a73d:	8b 10                	mov    (%eax),%edx
41a73f:	ff 92 80 00 00 00    	call   *0x80(%edx)
41a745:	c3                   	ret
41a746:	8b c0                	mov    %eax,%eax
41a748:	53                   	push   %ebx
41a749:	56                   	push   %esi
41a74a:	57                   	push   %edi
41a74b:	8b fa                	mov    %edx,%edi
41a74d:	8b f0                	mov    %eax,%esi
41a74f:	8b 46 18             	mov    0x18(%esi),%eax
41a752:	8b 0c c8             	mov    (%eax,%ecx,8),%ecx
41a755:	8b 46 18             	mov    0x18(%esi),%eax
41a758:	8b 14 f8             	mov    (%eax,%edi,8),%edx
41a75b:	8b c6                	mov    %esi,%eax
41a75d:	8b 18                	mov    (%eax),%ebx
41a75f:	ff 53 34             	call   *0x34(%ebx)
41a762:	5f                   	pop    %edi
41a763:	5e                   	pop    %esi