5fb398:	8b 85 fc fb ff ff    	mov    -0x404(%ebp),%eax
5fb39e:	8b 10                	mov    (%eax),%edx
5fb3a0:	ff 52 2c             	call   *0x2c(%edx)
5fb3a3:	50                   	push   %eax
5fb3a4:	8b 85 fc fb ff ff    	mov    -0x404(%ebp),%eax
5fb3aa:	e8 d5 24 e3 ff       	call   0x42d884
5fb3af:	8b d0                	mov    %eax,%edx
5fb3b1:	58                   	pop    %eax
5fb3b2:	e8 bd 57 ff ff       	call   0x5f0b74
5fb3b7:	8b d0                	mov    %eax,%edx
5fb3b9:	8b 85 f8 fb ff ff    	mov    -0x408(%ebp),%eax
5fb3bf:	8b 40 3c             	mov    0x3c(%eax),%eax
5fb3c2:	e8 55 e0 fa ff       	call   0x5a941c
5fb3c7:	8b d8                	mov    %eax,%ebx
5fb3c9:	8b 85 f8 fb ff ff    	mov    -0x408(%ebp),%eax
5fb3cf:	8b 40 34             	mov    0x34(%eax),%eax
5fb3d2:	48                   	dec    %eax
5fb3d3:	85 c0                	test   %eax,%eax
5fb3d5:	0f 8c 3d 03 00 00    	jl     0x5fb718
5fb3db:	40                   	inc    %eax
5fb3dc:	89 85 ec fb ff ff    	mov    %eax,-0x414(%ebp)
5fb3e2:	c7 85 f4 fb ff ff 00 	movl   $0x0,-0x40c(%ebp)
5fb3e9:	00 00 00
5fb3ec:	8b 95 f4 fb ff ff    	mov    -0x40c(%ebp),%edx
5fb3f2:	8b 85 f8 fb ff ff    	mov    -0x408(%ebp),%eax
5fb3f8:	8b 08                	mov    (%eax),%ecx
5fb3fa:	ff 11                	call   *(%ecx)
5fb3fc:	50                   	push   %eax
5fb3fd:	8b 95 f4 fb ff ff    	mov    -0x40c(%ebp),%edx
5fb403:	8b 85 fc fb ff ff    	mov    -0x404(%ebp),%eax
5fb409:	e8 fa 24 e3 ff       	call   0x42d908
5fb40e:	8b d0                	mov    %eax,%edx
5fb410:	8b cb                	mov    %ebx,%ecx
5fb412:	58                   	pop    %eax
5fb413:	e8 a8 ca e0 ff       	call   0x407ec0
5fb418:	ff 85 f4 fb ff ff    	incl   -0x40c(%ebp)
5fb41e:	ff 8d ec fb ff ff    	decl   -0x414(%ebp)
5fb424:	75 c6                	jne    0x5fb3ec
5fb426:	e9 ed 02 00 00       	jmp    0x5fb718
5fb42b:	6a 05                	push   $0x5
5fb42d:	8b 85 fc fb ff ff    	mov    -0x404(%ebp),%eax
5fb433:	8b 10                	mov    (%eax),%edx
5fb435:	ff 52 20             	call   *0x20(%edx)
5fb438:	50                   	push   %eax
5fb439:	8b 85 fc fb ff ff    	mov    -0x404(%ebp),%eax
5fb43f:	8b 10                	mov    (%eax),%edx
5fb441:	ff 52 2c             	call   *0x2c(%edx)
5fb444:	8b d0                	mov    %eax,%edx
5fb446:	8b 85 f8 fb ff ff    	mov    -0x408(%ebp),%eax
5fb44c:	59                   	pop    %ecx
5fb44d:	8b 18                	mov    (%eax),%ebx
5fb44f:	ff 53 24             	call   *0x24(%ebx)
5fb452:	8b 85 f8 fb ff ff    	mov    -0x408(%ebp),%eax
5fb458:	8b 40 34             	mov    0x34(%eax),%eax
5fb45b:	48                   	dec    %eax
5fb45c:	85 c0                	test   %eax,%eax
5fb45e:	0f 8c b4 02 00 00    	jl     0x5fb718
5fb464:	40                   	inc    %eax
5fb465:	89 85 ec fb ff ff    	mov    %eax,-0x414(%ebp)
5fb46b:	c7 85 f4 fb ff ff 00 	movl   $0x0,-0x40c(%ebp)
5fb472:	00 00 00
5fb475:	8b 95 f4 fb ff ff    	mov    -0x40c(%ebp),%edx
5fb47b:	8b 85 fc fb ff ff    	mov    -0x404(%ebp),%eax
5fb481:	e8 82 24 e3 ff       	call   0x42d908
5fb486:	8b f0                	mov    %eax,%esi
5fb488:	8b 95 f4 fb ff ff    	mov    -0x40c(%ebp),%edx
5fb48e:	8b 85 f8 fb ff ff    	mov    -0x408(%ebp),%eax
5fb494:	8b 08                	mov    (%eax),%ecx
5fb496:	ff 11                	call   *(%ecx)
5fb498:	8b 95 f8 fb ff ff    	mov    -0x408(%ebp),%edx
5fb49e:	8b 5a 30             	mov    0x30(%edx),%ebx
5fb4a1:	4b                   	dec    %ebx
5fb4a2:	85 db                	test   %ebx,%ebx
5fb4a4:	7c 3e                	jl     0x5fb4e4
5fb4a6:	43                   	inc    %ebx
5fb4a7:	8b d0                	mov    %eax,%edx
5fb4a9:	66 8b 0e             	mov    (%esi),%cx
5fb4ac:	66 81 e1 00 7c       	and    $0x7c00,%cx
5fb4b1:	0f b7 c9             	movzwl %cx,%ecx
5fb4b4:	c1 e9 0a             	shr    $0xa,%ecx
5fb4b7:	c1 e1 03             	shl    $0x3,%ecx
5fb4ba:	88 4a 02             	mov    %cl,0x2(%edx)
5fb4bd:	66 8b 0e             	mov    (%esi),%cx
5fb4c0:	66 81 e1 e0 03       	and    $0x3e0,%cx
5fb4c5:	0f b7 c9             	movzwl %cx,%ecx
5fb4c8:	c1 e9 05             	shr    $0x5,%ecx
5fb4cb:	c1 e1 03             	shl    $0x3,%ecx
5fb4ce:	88 4a 01             	mov    %cl,0x1(%edx)
5fb4d1:	8a 0e                	mov    (%esi),%cl
5fb4d3:	80 e1 1f             	and    $0x1f,%cl
5fb4d6:	c1 e1 03             	shl    $0x3,%ecx
5fb4d9:	88 0a                	mov    %cl,(%edx)
5fb4db:	83 c6 02             	add    $0x2,%esi
5fb4de:	83 c0 03             	add    $0x3,%eax
5fb4e1:	4b                   	dec    %ebx
5fb4e2:	75 c3                	jne    0x5fb4a7
5fb4e4:	ff 85 f4 fb ff ff    	incl   -0x40c(%ebp)
5fb4ea:	ff 8d ec fb ff ff    	decl   -0x414(%ebp)
5fb4f0:	75 83                	jne    0x5fb475
5fb4f2:	e9 21 02 00 00       	jmp    0x5fb718
5fb4f7:	6a 05                	push   $0x5
5fb4f9:	8b 85 fc fb ff ff    	mov    -0x404(%ebp),%eax
5fb4ff:	8b 10                	mov    (%eax),%edx
5fb501:	ff 52 20             	call   *0x20(%edx)
5fb504:	50                   	push   %eax
5fb505:	8b 85 fc fb ff ff    	mov    -0x404(%ebp),%eax
5fb50b:	8b 10                	mov    (%eax),%edx
5fb50d:	ff 52 2c             	call   *0x2c(%edx)
5fb510:	8b d0                	mov    %eax,%edx
5fb512:	8b 85 f8 fb ff ff    	mov    -0x408(%ebp),%eax
5fb518:	59                   	pop    %ecx
5fb519:	8b 18                	mov    (%eax),%ebx
5fb51b:	ff 53 24             	call   *0x24(%ebx)
5fb51e:	8b 85 f8 fb ff ff    	mov    -0x408(%ebp),%eax
5fb524:	8b 40 34             	mov    0x34(%eax),%eax
5fb527:	48                   	dec    %eax
5fb528:	85 c0                	test   %eax,%eax
5fb52a:	0f 8c e8 01 00 00    	jl     0x5fb718
5fb530:	40                   	inc    %eax
5fb531:	89 85 ec fb ff ff    	mov    %eax,-0x414(%ebp)
5fb537:	c7 85 f4 fb ff ff 00 	movl   $0x0,-0x40c(%ebp)
5fb53e:	00 00 00
5fb541:	8b 95 f4 fb ff ff    	mov    -0x40c(%ebp),%edx
5fb547:	8b 85 fc fb ff ff    	mov    -0x404(%ebp),%eax
5fb54d:	e8 b6 23 e3 ff       	call   0x42d908
5fb552:	8b f0                	mov    %eax,%esi
5fb554:	8b 95 f4 fb ff ff    	mov    -0x40c(%ebp),%edx
5fb55a:	8b 85 f8 fb ff ff    	mov    -0x408(%ebp),%eax
5fb560:	8b 08                	mov    (%eax),%ecx
5fb562:	ff 11                	call   *(%ecx)
5fb564:	8b 95 f8 fb ff ff    	mov    -0x408(%ebp),%edx
5fb56a:	8b 5a 30             	mov    0x30(%edx),%ebx
5fb56d:	4b                   	dec    %ebx
5fb56e:	85 db                	test   %ebx,%ebx
5fb570:	7c 3e                	jl     0x5fb5b0
5fb572:	43                   	inc    %ebx
5fb573:	8b d0                	mov    %eax,%edx
5fb575:	66 8b 0e             	mov    (%esi),%cx
5fb578:	66 81 e1 00 f8       	and    $0xf800,%cx
5fb57d:	0f b7 c9             	movzwl %cx,%ecx
5fb580:	c1 e9 0b             	shr    $0xb,%ecx
5fb583:	c1 e1 03             	shl    $0x3,%ecx
5fb586:	88 4a 02             	mov    %cl,0x2(%edx)
5fb589:	66 8b 0e             	mov    (%esi),%cx
5fb58c:	66 81 e1 e0 07       	and    $0x7e0,%cx
5fb591:	0f b7 c9             	movzwl %cx,%ecx
5fb594:	c1 e9 05             	shr    $0x5,%ecx
5fb597:	c1 e1 02             	shl    $0x2,%ecx
5fb59a:	88 4a 01             	mov    %cl,0x1(%edx)
5fb59d:	8a 0e                	mov    (%esi),%cl
5fb59f:	80 e1 1f             	and    $0x1f,%cl
5fb5a2:	c1 e1 03             	shl    $0x3,%ecx
5fb5a5:	88 0a                	mov    %cl,(%edx)
5fb5a7:	83 c6 02             	add    $0x2,%esi
5fb5aa:	83 c0 03             	add    $0x3,%eax
5fb5ad:	4b                   	dec    %ebx
5fb5ae:	75 c3                	jne    0x5fb573
5fb5b0:	ff 85 f4 fb ff ff    	incl   -0x40c(%ebp)
5fb5b6:	ff 8d ec fb ff ff    	decl   -0x414(%ebp)
5fb5bc:	75 83                	jne    0x5fb541
5fb5be:	e9 55 01 00 00       	jmp    0x5fb718
5fb5c3:	6a 05                	push   $0x5
5fb5c5:	8b 85 fc fb ff ff    	mov    -0x404(%ebp),%eax
5fb5cb:	8b 10                	mov    (%eax),%edx
5fb5cd:	ff 52 20             	call   *0x20(%edx)
5fb5d0:	50                   	push   %eax
5fb5d1:	8b 85 fc fb ff ff    	mov    -0x404(%ebp),%eax
5fb5d7:	8b 10                	mov    (%eax),%edx
5fb5d9:	ff 52 2c             	call   *0x2c(%edx)
5fb5dc:	8b d0                	mov    %eax,%edx
5fb5de:	8b 85 f8 fb ff ff    	mov    -0x408(%ebp),%eax
5fb5e4:	59                   	pop    %ecx
5fb5e5:	8b 18                	mov    (%eax),%ebx
5fb5e7:	ff 53 24             	call   *0x24(%ebx)
5fb5ea:	8b 85 fc fb ff ff    	mov    -0x404(%ebp),%eax
5fb5f0:	8b 10                	mov    (%eax),%edx
5fb5f2:	ff 52 2c             	call   *0x2c(%edx)
5fb5f5:	50                   	push   %eax
5fb5f6:	8b 85 fc fb ff ff    	mov    -0x404(%ebp),%eax
5fb5fc:	e8 83 22 e3 ff       	call   0x42d884
5fb601:	8b d0                	mov    %eax,%edx
5fb603:	58                   	pop    %eax
5fb604:	e8 6b 55 ff ff       	call   0x5f0b74
5fb609:	8b d0                	mov    %eax,%edx
5fb60b:	8b 85 f8 fb ff ff    	mov    -0x408(%ebp),%eax
5fb611:	8b 40 3c             	mov    0x3c(%eax),%eax
5fb614:	e8 03 de fa ff       	call   0x5a941c
5fb619:	8b d8                	mov    %eax,%ebx
5fb61b:	8b 85 f8 fb ff ff    	mov    -0x408(%ebp),%eax
5fb621:	8b 40 34             	mov    0x34(%eax),%eax
5fb624:	48                   	dec    %eax
5fb625:	85 c0                	test   %eax,%eax
5fb627:	0f 8c eb 00 00 00    	jl     0x5fb718
5fb62d:	40                   	inc    %eax
5fb62e:	89 85 ec fb ff ff    	mov    %eax,-0x414(%ebp)
5fb634:	c7 85 f4 fb ff ff 00 	movl   $0x0,-0x40c(%ebp)
5fb63b:	00 00 00
5fb63e:	8b 95 f4 fb ff ff    	mov    -0x40c(%ebp),%edx
5fb644:	8b 85 f8 fb ff ff    	mov    -0x408(%ebp),%eax
5fb64a:	8b 08                	mov    (%eax),%ecx
5fb64c:	ff 11                	call   *(%ecx)
5fb64e:	50                   	push   %eax
5fb64f:	8b 95 f4 fb ff ff    	mov    -0x40c(%ebp),%edx
5fb655:	8b 85 fc fb ff ff    	mov    -0x404(%ebp),%eax
5fb65b:	e8 a8 22 e3 ff       	call   0x42d908
5fb660:	8b d0                	mov    %eax,%edx
5fb662:	8b cb                	mov    %ebx,%ecx
5fb664:	58                   	pop    %eax
5fb665:	e8 56 c8 e0 ff       	call   0x407ec0
5fb66a:	ff 85 f4 fb ff ff    	incl   -0x40c(%ebp)
5fb670:	ff 8d ec fb ff ff    	decl   -0x414(%ebp)
5fb676:	75 c6                	jne    0x5fb63e
5fb678:	e9 9b 00 00 00       	jmp    0x5fb718
5fb67d:	6a 05                	push   $0x5
5fb67f:	8b 85 fc fb ff ff    	mov    -0x404(%ebp),%eax
5fb685:	8b 10                	mov    (%eax),%edx
5fb687:	ff 52 20             	call   *0x20(%edx)
5fb68a:	50                   	push   %eax
5fb68b:	8b 85 fc fb ff ff    	mov    -0x404(%ebp),%eax
5fb691:	8b 10                	mov    (%eax),%edx
5fb693:	ff 52 2c             	call   *0x2c(%edx)
5fb696:	8b d0                	mov    %eax,%edx
5fb698:	8b 85 f8 fb ff ff    	mov    -0x408(%ebp),%eax
5fb69e:	59                   	pop    %ecx
5fb69f:	8b 18                	mov    (%eax),%ebx
5fb6a1:	ff 53 24             	call   *0x24(%ebx)
5fb6a4:	8b 85 f8 fb ff ff    	mov    -0x408(%ebp),%eax
5fb6aa:	8b 40 34             	mov    0x34(%eax),%eax
5fb6ad:	48                   	dec    %eax
5fb6ae:	85 c0                	test   %eax,%eax
5fb6b0:	7c 66                	jl     0x5fb718
5fb6b2:	40                   	inc    %eax
5fb6b3:	89 85 ec fb ff ff    	mov    %eax,-0x414(%ebp)
5fb6b9:	c7 85 f4 fb ff ff 00 	movl   $0x0,-0x40c(%ebp)
5fb6c0:	00 00 00
5fb6c3:	8b 95 f4 fb ff ff    	mov    -0x40c(%ebp),%edx
5fb6c9:	8b 85 fc fb ff ff    	mov    -0x404(%ebp),%eax
5fb6cf:	e8 34 22 e3 ff       	call   0x42d908
5fb6d4:	8b f0                	mov    %eax,%esi
5fb6d6:	8b 95 f4 fb ff ff    	mov    -0x40c(%ebp),%edx
5fb6dc:	8b 85 f8 fb ff ff    	mov    -0x408(%ebp),%eax
5fb6e2:	8b 08                	mov    (%eax),%ecx
5fb6e4:	ff 11                	call   *(%ecx)
5fb6e6:	8b 95 f8 fb ff ff    	mov    -0x408(%ebp),%edx
5fb6ec:	8b 5a 30             	mov    0x30(%edx),%ebx
5fb6ef:	4b                   	dec    %ebx
5fb6f0:	85 db                	test   %ebx,%ebx
5fb6f2:	7c 16                	jl     0x5fb70a
5fb6f4:	43                   	inc    %ebx
5fb6f5:	66 8b 16             	mov    (%esi),%dx
5fb6f8:	66 89 10             	mov    %dx,(%eax)
5fb6fb:	8a 56 02             	mov    0x2(%esi),%dl
5fb6fe:	88 50 02             	mov    %dl,0x2(%eax)
5fb701:	83 c0 03             	add    $0x3,%eax
5fb704:	83 c6 04             	add    $0x4,%esi
5fb707:	4b                   	dec    %ebx
5fb708:	75 eb                	jne    0x5fb6f5
5fb70a:	ff 85 f4 fb ff ff    	incl   -0x40c(%ebp)
5fb710:	ff 8d ec fb ff ff    	decl   -0x414(%ebp)
5fb716:	75 ab                	jne    0x5fb6c3
5fb718:	8b 85 f8 fb ff ff    	mov    -0x408(%ebp),%eax
5fb71e:	c6 40 43 00          	movb   $0x0,0x43(%eax)
5fb722:	e9 db 00 00 00       	jmp    0x5fb802
5fb727:	8b 85 f8 fb ff ff    	mov    -0x408(%ebp),%eax
5fb72d:	83 78 24 00          	cmpl   $0x0,0x24(%eax)
5fb731:	75 15                	jne    0x5fb748
5fb733:	b2 01                	mov    $0x1,%dl
5fb735:	a1 ec 6a 42 00       	mov    0x426aec,%eax
5fb73a:	e8 91 1a e3 ff       	call   0x42d1d0
5fb73f:	8b 95 f8 fb ff ff    	mov    -0x408(%ebp),%edx
5fb745:	89 42 24             	mov    %eax,0x24(%edx)
5fb748:	8b 85 f8 fb ff ff    	mov    -0x408(%ebp),%eax
5fb74e:	8b 50 24             	mov    0x24(%eax),%edx
5fb751:	8b 85 fc fb ff ff    	mov    -0x404(%ebp),%eax
5fb757:	e8 84 07 fb ff       	call   0x5abee0
5fb75c:	8b 85 f8 fb ff ff    	mov    -0x408(%ebp),%eax
5fb762:	8b 40 24             	mov    0x24(%eax),%eax
5fb765:	8b 10                	mov    (%eax),%edx
5fb767:	ff 52 2c             	call   *0x2c(%edx)
5fb76a:	8b 95 f8 fb ff ff    	mov    -0x408(%ebp),%edx
5fb770:	89 42 30             	mov    %eax,0x30(%edx)
5fb773:	8b 85 f8 fb ff ff    	mov    -0x408(%ebp),%eax
5fb779:	8b 40 24             	mov    0x24(%eax),%eax
5fb77c:	8b 10                	mov    (%eax),%edx
5fb77e:	ff 52 20             	call   *0x20(%edx)
5fb781:	8b 95 f8 fb ff ff    	mov    -0x408(%ebp),%edx
5fb787:	89 42 34             	mov    %eax,0x34(%edx)
5fb78a:	8b 85 f8 fb ff ff    	mov    -0x408(%ebp),%eax
5fb790:	8b 40 24             	mov    0x24(%eax),%eax
5fb793:	e8 ec 20 e3 ff       	call   0x42d884
5fb798:	fe c8                	dec    %al
5fb79a:	74 06                	je     0x5fb7a2
5fb79c:	2c 05                	sub    $0x5,%al
5fb79e:	74 0e                	je     0x5fb7ae
5fb7a0:	eb 16                	jmp    0x5fb7b8
5fb7a2:	8b 85 f8 fb ff ff    	mov    -0x408(%ebp),%eax
5fb7a8:	c6 40 40 01          	movb   $0x1,0x40(%eax)
5fb7ac:	eb 0a                	jmp    0x5fb7b8
5fb7ae:	8b 85 f8 fb ff ff    	mov    -0x408(%ebp),%eax
5fb7b4:	c6 40 40 05          	movb   $0x5,0x40(%eax)
5fb7b8:	8b 85 f8 fb ff ff    	mov    -0x408(%ebp),%eax
5fb7be:	0f b6 40 40          	movzbl 0x40(%eax),%eax
5fb7c2:	8b 1c 85 fc 55 6a 00 	mov    0x6a55fc(,%eax,4),%ebx
5fb7c9:	8b 85 f8 fb ff ff    	mov    -0x408(%ebp),%eax
5fb7cf:	89 58 38             	mov    %ebx,0x38(%eax)
5fb7d2:	8b 85 f8 fb ff ff    	mov    -0x408(%ebp),%eax
5fb7d8:	8b 88 80 00 00 00    	mov    0x80(%eax),%ecx
5fb7de:	8b d3                	mov    %ebx,%edx
5fb7e0:	8b 85 f8 fb ff ff    	mov    -0x408(%ebp),%eax
5fb7e6:	8b 40 30             	mov    0x30(%eax),%eax
5fb7e9:	e8 f2 52 ff ff       	call   0x5f0ae0
5fb7ee:	8b 95 f8 fb ff ff    	mov    -0x408(%ebp),%edx
5fb7f4:	89 42 3c             	mov    %eax,0x3c(%edx)
5fb7f7:	8b 85 f8 fb ff ff    	mov    -0x408(%ebp),%eax
5fb7fd:	e8 7e c2 ff ff       	call   0x5f7a80
5fb802:	5f                   	pop    %edi
5fb803:	5e                   	pop    %esi
5fb804:	5b                   	pop    %ebx
5fb805:	8b e5                	mov    %ebp,%esp
5fb807:	5d                   	pop    %ebp
5fb808:	c3                   	ret
5fb809:	8d 40 00             	lea    0x0(%eax),%eax
5fb80c:	53                   	push   %ebx
5fb80d:	56                   	push   %esi
5fb80e:	57                   	push   %edi
5fb80f:	55                   	push   %ebp
5fb810:	51                   	push   %ecx
5fb811:	8b f2                	mov    %edx,%esi
5fb813:	8b d8                	mov    %eax,%ebx
5fb815:	85 f6                	test   %esi,%esi
5fb817:	0f 84 b4 00 00 00    	je     0x5fb8d1
5fb81d:	8b 46 0c             	mov    0xc(%esi),%eax
5fb820:	48                   	dec    %eax
5fb821:	74 0a                	je     0x5fb82d
5fb823:	83 e8 07             	sub    $0x7,%eax
5fb826:	74 57                	je     0x5fb87f
5fb828:	e9 b2 00 00 00       	jmp    0x5fb8df
5fb82d:	6a 01                	push   $0x1
5fb82f:	8b 4e 08             	mov    0x8(%esi),%ecx
5fb832:	8b 56 04             	mov    0x4(%esi),%edx
5fb835:	8b c3                	mov    %ebx,%eax
5fb837:	8b 38                	mov    (%eax),%edi
5fb839:	ff 57 24             	call   *0x24(%edi)
5fb83c:	8b 56 10             	mov    0x10(%esi),%edx
5fb83f:	8b 43 3c             	mov    0x3c(%ebx),%eax
5fb842:	e8 d5 db fa ff       	call   0x5a941c
5fb847:	89 04 24             	mov    %eax,(%esp)
5fb84a:	8b 6b 34             	mov    0x34(%ebx),%ebp
5fb84d:	4d                   	dec    %ebp
5fb84e:	85 ed                	test   %ebp,%ebp