4153dc:	84 db                	test   %bl,%bl
4153de:	7e 07                	jle    0x4153e7
4153e0:	8b c6                	mov    %esi,%eax
4153e2:	e8 f9 e1 fe ff       	call   0x4035e0
4153e7:	5e                   	pop    %esi
4153e8:	5b                   	pop    %ebx
4153e9:	c3                   	ret
4153ea:	8b c0                	mov    %eax,%eax
4153ec:	53                   	push   %ebx
4153ed:	33 c9                	xor    %ecx,%ecx
4153ef:	8b 18                	mov    (%eax),%ebx
4153f1:	ff 53 3c             	call   *0x3c(%ebx)
4153f4:	5b                   	pop    %ebx
4153f5:	c3                   	ret
4153f6:	8b c0                	mov    %eax,%eax
4153f8:	53                   	push   %ebx
4153f9:	56                   	push   %esi
4153fa:	57                   	push   %edi
4153fb:	55                   	push   %ebp
4153fc:	51                   	push   %ecx
4153fd:	8b f9                	mov    %ecx,%edi
4153ff:	8b f2                	mov    %edx,%esi
415401:	8b d8                	mov    %eax,%ebx
415403:	80 7b 1c 00          	cmpb   $0x0,0x1c(%ebx)
415407:	75 08                	jne    0x415411
415409:	8b 43 14             	mov    0x14(%ebx),%eax
41540c:	89 04 24             	mov    %eax,(%esp)
41540f:	eb 2e                	jmp    0x41543f
415411:	8b cc                	mov    %esp,%ecx
415413:	8b d6                	mov    %esi,%edx
415415:	8b c3                	mov    %ebx,%eax
415417:	8b 28                	mov    (%eax),%ebp
415419:	ff 95 8c 00 00 00    	call   *0x8c(%ebp)
41541f:	84 c0                	test   %al,%al
415421:	74 1c                	je     0x41543f
415423:	8a 43 1d             	mov    0x1d(%ebx),%al
415426:	2c 01                	sub    $0x1,%al
415428:	72 26                	jb     0x415450
41542a:	fe c8                	dec    %al
41542c:	74 02                	je     0x415430
41542e:	eb 0f                	jmp    0x41543f
415430:	8b 15 5c 7d 46 00    	mov    0x467d5c,%edx
415436:	33 c9                	xor    %ecx,%ecx
415438:	8b c3                	mov    %ebx,%eax
41543a:	e8 69 f5 ff ff       	call   0x4149a8
41543f:	57                   	push   %edi
415440:	8b ce                	mov    %esi,%ecx
415442:	8b 54 24 04          	mov    0x4(%esp),%edx
415446:	8b c3                	mov    %ebx,%eax
415448:	8b 18                	mov    (%eax),%ebx
41544a:	ff 93 88 00 00 00    	call   *0x88(%ebx)
415450:	8b 04 24             	mov    (%esp),%eax
415453:	5a                   	pop    %edx
415454:	5d                   	pop    %ebp
415455:	5f                   	pop    %edi
415456:	5e                   	pop    %esi
415457:	5b                   	pop    %ebx
415458:	c3                   	ret
415459:	8d 40 00             	lea    0x0(%eax),%eax
41545c:	53                   	push   %ebx
41545d:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
415461:	75 11                	jne    0x415474
415463:	66 83 78 22 00       	cmpw   $0x0,0x22(%eax)
415468:	74 0a                	je     0x415474
41546a:	8b d8                	mov    %eax,%ebx
41546c:	8b d0                	mov    %eax,%edx
41546e:	8b 43 24             	mov    0x24(%ebx),%eax
415471:	ff 53 20             	call   *0x20(%ebx)
415474:	5b                   	pop    %ebx
415475:	c3                   	ret
415476:	8b c0                	mov    %eax,%eax
415478:	53                   	push   %ebx
415479:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
41547d:	75 11                	jne    0x415490
41547f:	66 83 78 2a 00       	cmpw   $0x0,0x2a(%eax)
415484:	74 0a                	je     0x415490
415486:	8b d8                	mov    %eax,%ebx
415488:	8b d0                	mov    %eax,%edx
41548a:	8b 43 2c             	mov    0x2c(%ebx),%eax
41548d:	ff 53 28             	call   *0x28(%ebx)
415490:	5b                   	pop    %ebx
415491:	c3                   	ret
415492:	8b c0                	mov    %eax,%eax
415494:	53                   	push   %ebx
415495:	8b d8                	mov    %eax,%ebx
415497:	83 7b 14 00          	cmpl   $0x0,0x14(%ebx)
41549b:	74 33                	je     0x4154d0
41549d:	8b c3                	mov    %ebx,%eax
41549f:	8b 10                	mov    (%eax),%edx
4154a1:	ff 92 84 00 00 00    	call   *0x84(%edx)
4154a7:	8b 43 10             	mov    0x10(%ebx),%eax
4154aa:	8b 4b 14             	mov    0x14(%ebx),%ecx
4154ad:	8b 15 1c 1e 41 00    	mov    0x411e1c,%edx
4154b3:	e8 8c f5 fe ff       	call   0x404a44
4154b8:	33 c0                	xor    %eax,%eax
4154ba:	89 43 14             	mov    %eax,0x14(%ebx)
4154bd:	33 d2                	xor    %edx,%edx
4154bf:	8b c3                	mov    %ebx,%eax
4154c1:	8b 08                	mov    (%eax),%ecx
4154c3:	ff 51 28             	call   *0x28(%ecx)
4154c6:	8b c3                	mov    %ebx,%eax
4154c8:	8b 10                	mov    (%eax),%edx
4154ca:	ff 92 80 00 00 00    	call   *0x80(%edx)
4154d0:	5b                   	pop    %ebx
4154d1:	c3                   	ret
4154d2:	8b c0                	mov    %eax,%eax
4154d4:	53                   	push   %ebx
4154d5:	56                   	push   %esi
4154d6:	8b f2                	mov    %edx,%esi
4154d8:	8b d8                	mov    %eax,%ebx
4154da:	85 f6                	test   %esi,%esi
4154dc:	7c 05                	jl     0x4154e3
4154de:	3b 73 14             	cmp    0x14(%ebx),%esi
4154e1:	7c 0f                	jl     0x4154f2
4154e3:	8b 15 84 7f 46 00    	mov    0x467f84,%edx
4154e9:	8b ce                	mov    %esi,%ecx
4154eb:	8b c3                	mov    %ebx,%eax
4154ed:	e8 b6 f4 ff ff       	call   0x4149a8
4154f2:	8b c3                	mov    %ebx,%eax
4154f4:	8b 10                	mov    (%eax),%edx
4154f6:	ff 92 84 00 00 00    	call   *0x84(%edx)
4154fc:	8b 43 10             	mov    0x10(%ebx),%eax
4154ff:	8d 04 f0             	lea    (%eax,%esi,8),%eax
415502:	8b 15 1c 1e 41 00    	mov    0x411e1c,%edx
415508:	e8 23 f6 fe ff       	call   0x404b30
41550d:	ff 4b 14             	decl   0x14(%ebx)
415510:	8b 43 14             	mov    0x14(%ebx),%eax
415513:	3b f0                	cmp    %eax,%esi
415515:	7d 19                	jge    0x415530
415517:	2b c6                	sub    %esi,%eax
415519:	8b c8                	mov    %eax,%ecx
41551b:	c1 e1 03             	shl    $0x3,%ecx
41551e:	8b 43 10             	mov    0x10(%ebx),%eax
415521:	8d 14 f0             	lea    (%eax,%esi,8),%edx
415524:	8b 43 10             	mov    0x10(%ebx),%eax
415527:	8d 44 f0 08          	lea    0x8(%eax,%esi,8),%eax
41552b:	e8 88 d3 fe ff       	call   0x4028b8
415530:	8b c3                	mov    %ebx,%eax
415532:	8b 10                	mov    (%eax),%edx
415534:	ff 92 80 00 00 00    	call   *0x80(%edx)
41553a:	5e                   	pop    %esi
41553b:	5b                   	pop    %ebx
41553c:	c3                   	ret
41553d:	8d 40 00             	lea    0x0(%eax),%eax
415540:	53                   	push   %ebx
415541:	56                   	push   %esi
415542:	57                   	push   %edi
415543:	8b f9                	mov    %ecx,%edi
415545:	8b f2                	mov    %edx,%esi
415547:	8b d8                	mov    %eax,%ebx
415549:	85 f6                	test   %esi,%esi
41554b:	7c 05                	jl     0x415552
41554d:	3b 73 14             	cmp    0x14(%ebx),%esi
415550:	7c 0f                	jl     0x415561
415552:	8b 15 84 7f 46 00    	mov    0x467f84,%edx
415558:	8b ce                	mov    %esi,%ecx
41555a:	8b c3                	mov    %ebx,%eax
41555c:	e8 47 f4 ff ff       	call   0x4149a8
415561:	85 ff                	test   %edi,%edi
415563:	7c 05                	jl     0x41556a
415565:	3b 7b 14             	cmp    0x14(%ebx),%edi
415568:	7c 0f                	jl     0x415579
41556a:	8b 15 84 7f 46 00    	mov    0x467f84,%edx
415570:	8b cf                	mov    %edi,%ecx
415572:	8b c3                	mov    %ebx,%eax
415574:	e8 2f f4 ff ff       	call   0x4149a8
415579:	8b c3                	mov    %ebx,%eax
41557b:	8b 10                	mov    (%eax),%edx
41557d:	ff 92 84 00 00 00    	call   *0x84(%edx)
415583:	8b cf                	mov    %edi,%ecx
415585:	8b d6                	mov    %esi,%edx
415587:	8b c3                	mov    %ebx,%eax
415589:	e8 0e 00 00 00       	call   0x41559c
41558e:	8b c3                	mov    %ebx,%eax
415590:	8b 10                	mov    (%eax),%edx
415592:	ff 92 80 00 00 00    	call   *0x80(%edx)
415598:	5f                   	pop    %edi
415599:	5e                   	pop    %esi
41559a:	5b                   	pop    %ebx
41559b:	c3                   	ret
41559c:	53                   	push   %ebx
41559d:	8b 58 10             	mov    0x10(%eax),%ebx
4155a0:	8d 14 d3             	lea    (%ebx,%edx,8),%edx
4155a3:	8b 40 10             	mov    0x10(%eax),%eax
4155a6:	8d 04 c8             	lea    (%eax,%ecx,8),%eax
4155a9:	8b 0a                	mov    (%edx),%ecx
4155ab:	8b 18                	mov    (%eax),%ebx
4155ad:	89 1a                	mov    %ebx,(%edx)
4155af:	89 08                	mov    %ecx,(%eax)
4155b1:	8b 4a 04             	mov    0x4(%edx),%ecx
4155b4:	8b 58 04             	mov    0x4(%eax),%ebx
4155b7:	89 5a 04             	mov    %ebx,0x4(%edx)
4155ba:	89 48 04             	mov    %ecx,0x4(%eax)
4155bd:	5b                   	pop    %ebx
4155be:	c3                   	ret
4155bf:	90                   	nop
4155c0:	53                   	push   %ebx
4155c1:	56                   	push   %esi
4155c2:	57                   	push   %edi
4155c3:	55                   	push   %ebp
4155c4:	83 c4 f0             	add    $0xfffffff0,%esp
4155c7:	89 4c 24 04          	mov    %ecx,0x4(%esp)
4155cb:	89 14 24             	mov    %edx,(%esp)
4155ce:	8b f8                	mov    %eax,%edi
4155d0:	c6 44 24 08 00       	movb   $0x0,0x8(%esp)
4155d5:	33 f6                	xor    %esi,%esi
4155d7:	8b 47 14             	mov    0x14(%edi),%eax
4155da:	48                   	dec    %eax
4155db:	89 44 24 0c          	mov    %eax,0xc(%esp)
4155df:	3b 74 24 0c          	cmp    0xc(%esp),%esi
4155e3:	7f 3f                	jg     0x415624
4155e5:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
4155e9:	03 de                	add    %esi,%ebx
4155eb:	d1 eb                	shr    $1,%ebx
4155ed:	8b 47 10             	mov    0x10(%edi),%eax
4155f0:	8b 14 d8             	mov    (%eax,%ebx,8),%edx
4155f3:	8b 0c 24             	mov    (%esp),%ecx
4155f6:	8b c7                	mov    %edi,%eax
4155f8:	8b 28                	mov    (%eax),%ebp
4155fa:	ff 55 34             	call   *0x34(%ebp)
4155fd:	85 c0                	test   %eax,%eax
4155ff:	7d 05                	jge    0x415606
415601:	8d 73 01             	lea    0x1(%ebx),%esi
415604:	eb 18                	jmp    0x41561e
415606:	8b d3                	mov    %ebx,%edx
415608:	4a                   	dec    %edx
415609:	89 54 24 0c          	mov    %edx,0xc(%esp)
41560d:	85 c0                	test   %eax,%eax
41560f:	75 0d                	jne    0x41561e
415611:	c6 44 24 08 01       	movb   $0x1,0x8(%esp)
415616:	80 7f 1d 01          	cmpb   $0x1,0x1d(%edi)
41561a:	74 02                	je     0x41561e
41561c:	8b f3                	mov    %ebx,%esi
41561e:	3b 74 24 0c          	cmp    0xc(%esp),%esi
415622:	7e c1                	jle    0x4155e5
415624:	8b 44 24 04          	mov    0x4(%esp),%eax
415628:	89 30                	mov    %esi,(%eax)
41562a:	8a 44 24 08          	mov    0x8(%esp),%al
41562e:	83 c4 10             	add    $0x10,%esp
415631:	5d                   	pop    %ebp
415632:	5f                   	pop    %edi
415633:	5e                   	pop    %esi
415634:	5b                   	pop    %ebx
415635:	c3                   	ret
415636:	8b c0                	mov    %eax,%eax
415638:	53                   	push   %ebx
415639:	56                   	push   %esi
41563a:	57                   	push   %edi
41563b:	8b f9                	mov    %ecx,%edi
41563d:	8b f2                	mov    %edx,%esi
41563f:	8b d8                	mov    %eax,%ebx
415641:	85 f6                	test   %esi,%esi
415643:	7c 05                	jl     0x41564a
415645:	3b 73 14             	cmp    0x14(%ebx),%esi
415648:	7c 0f                	jl     0x415659
41564a:	8b 15 84 7f 46 00    	mov    0x467f84,%edx
415650:	8b ce                	mov    %esi,%ecx
415652:	8b c3                	mov    %ebx,%eax
415654:	e8 4f f3 ff ff       	call   0x4149a8
415659:	8b c7                	mov    %edi,%eax
41565b:	8b 53 10             	mov    0x10(%ebx),%edx
41565e:	8b 14 f2             	mov    (%edx,%esi,8),%edx
415661:	e8 aa e9 fe ff       	call   0x404010
415666:	5f                   	pop    %edi
415667:	5e                   	pop    %esi
415668:	5b                   	pop    %ebx
415669:	c3                   	ret
41566a:	8b c0                	mov    %eax,%eax
41566c:	8b 40 18             	mov    0x18(%eax),%eax
41566f:	c3                   	ret
415670:	8b 40 14             	mov    0x14(%eax),%eax
415673:	c3                   	ret
415674:	53                   	push   %ebx
415675:	56                   	push   %esi
415676:	8b f2                	mov    %edx,%esi
415678:	8b d8                	mov    %eax,%ebx
41567a:	85 f6                	test   %esi,%esi
41567c:	7c 05                	jl     0x415683
41567e:	3b 73 14             	cmp    0x14(%ebx),%esi
415681:	7c 0f                	jl     0x415692
415683:	8b 15 84 7f 46 00    	mov    0x467f84,%edx
415689:	8b ce                	mov    %esi,%ecx
41568b:	8b c3                	mov    %ebx,%eax
41568d:	e8 16 f3 ff ff       	call   0x4149a8
415692:	8b 43 10             	mov    0x10(%ebx),%eax
415695:	8b 44 f0 04          	mov    0x4(%eax,%esi,8),%eax
415699:	5e                   	pop    %esi
41569a:	5b                   	pop    %ebx
41569b:	c3                   	ret
41569c:	56                   	push   %esi
41569d:	8b 50 18             	mov    0x18(%eax),%edx
4156a0:	83 fa 40             	cmp    $0x40,%edx
4156a3:	7e 0e                	jle    0x4156b3
4156a5:	8b f2                	mov    %edx,%esi
4156a7:	85 f6                	test   %esi,%esi
4156a9:	79 03                	jns    0x4156ae
4156ab:	83 c6 03             	add    $0x3,%esi
4156ae:	c1 fe 02             	sar    $0x2,%esi
4156b1:	eb 11                	jmp    0x4156c4
4156b3:	83 fa 08             	cmp    $0x8,%edx
4156b6:	7e 07                	jle    0x4156bf
4156b8:	be 10 00 00 00       	mov    $0x10,%esi
4156bd:	eb 05                	jmp    0x4156c4
4156bf:	be 04 00 00 00       	mov    $0x4,%esi
4156c4:	03 f2                	add    %edx,%esi
4156c6:	8b d6                	mov    %esi,%edx
4156c8:	8b 08                	mov    (%eax),%ecx
4156ca:	ff 51 28             	call   *0x28(%ecx)
4156cd:	5e                   	pop    %esi
4156ce:	c3                   	ret
4156cf:	90                   	nop
4156d0:	53                   	push   %ebx
4156d1:	56                   	push   %esi
4156d2:	51                   	push   %ecx
4156d3:	8b f2                	mov    %edx,%esi
4156d5:	8b d8                	mov    %eax,%ebx
4156d7:	80 7b 1c 00          	cmpb   $0x0,0x1c(%ebx)
4156db:	75 0e                	jne    0x4156eb
4156dd:	8b d6                	mov    %esi,%edx
4156df:	8b c3                	mov    %ebx,%eax
4156e1:	e8 8a f5 ff ff       	call   0x414c70
4156e6:	89 04 24             	mov    %eax,(%esp)
4156e9:	eb 19                	jmp    0x415704
4156eb:	8b cc                	mov    %esp,%ecx
4156ed:	8b d6                	mov    %esi,%edx
4156ef:	8b c3                	mov    %ebx,%eax
4156f1:	8b 18                	mov    (%eax),%ebx
4156f3:	ff 93 8c 00 00 00    	call   *0x8c(%ebx)
4156f9:	84 c0                	test   %al,%al
4156fb:	75 07                	jne    0x415704
4156fd:	c7 04 24 ff ff ff ff 	movl   $0xffffffff,(%esp)
415704:	8b 04 24             	mov    (%esp),%eax
415707:	5a                   	pop    %edx
415708:	5e                   	pop    %esi
415709:	5b                   	pop    %ebx
41570a:	c3                   	ret
41570b:	90                   	nop
41570c:	53                   	push   %ebx
41570d:	56                   	push   %esi
41570e:	8b f0                	mov    %eax,%esi
415710:	6a 00                	push   $0x0
415712:	8b c6                	mov    %esi,%eax
415714:	8b 18                	mov    (%eax),%ebx
415716:	ff 53 64             	call   *0x64(%ebx)
415719:	5e                   	pop    %esi
41571a:	5b                   	pop    %ebx
41571b:	c3                   	ret
41571c:	55                   	push   %ebp
41571d:	8b ec                	mov    %esp,%ebp
41571f:	53                   	push   %ebx