595559:	b2 01                	mov    $0x1,%dl
59555b:	e8 b0 2c 06 00       	call   0x5f8210
595560:	8b 45 08             	mov    0x8(%ebp),%eax
595563:	83 78 ec 00          	cmpl   $0x0,-0x14(%eax)
595567:	7e 4d                	jle    0x5955b6
595569:	33 c9                	xor    %ecx,%ecx
59556b:	b2 01                	mov    $0x1,%dl
59556d:	a1 7c 67 5c 00       	mov    0x5c677c,%eax
595572:	e8 01 16 03 00       	call   0x5c6b78
595577:	8b d8                	mov    %eax,%ebx
595579:	8b 45 08             	mov    0x8(%ebp),%eax
59557c:	8b 40 e8             	mov    -0x18(%eax),%eax
59557f:	8b 00                	mov    (%eax),%eax
595581:	8b 90 74 01 00 00    	mov    0x174(%eax),%edx
595587:	8b c3                	mov    %ebx,%eax
595589:	e8 36 e0 03 00       	call   0x5d35c4
59558e:	8b 45 08             	mov    0x8(%ebp),%eax
595591:	8b 40 ec             	mov    -0x14(%eax),%eax
595594:	99                   	cltd
595595:	52                   	push   %edx
595596:	50                   	push   %eax
595597:	8b 45 08             	mov    0x8(%ebp),%eax
59559a:	8b 40 fc             	mov    -0x4(%eax),%eax
59559d:	e8 36 91 e8 ff       	call   0x41e6d8
5955a2:	8b 45 08             	mov    0x8(%ebp),%eax
5955a5:	8b 50 fc             	mov    -0x4(%eax),%edx
5955a8:	8b c3                	mov    %ebx,%eax
5955aa:	e8 a5 87 03 00       	call   0x5cdd54
5955af:	8b c3                	mov    %ebx,%eax
5955b1:	e8 c2 e4 e6 ff       	call   0x403a78
5955b6:	5b                   	pop    %ebx
5955b7:	5d                   	pop    %ebp
5955b8:	c3                   	ret
5955b9:	8d 40 00             	lea    0x0(%eax),%eax
5955bc:	55                   	push   %ebp
5955bd:	8b ec                	mov    %esp,%ebp
5955bf:	83 c4 f8             	add    $0xfffffff8,%esp
5955c2:	53                   	push   %ebx
5955c3:	56                   	push   %esi
5955c4:	57                   	push   %edi
5955c5:	33 c9                	xor    %ecx,%ecx
5955c7:	89 4d f8             	mov    %ecx,-0x8(%ebp)
5955ca:	8b da                	mov    %edx,%ebx
5955cc:	8b f0                	mov    %eax,%esi
5955ce:	33 c0                	xor    %eax,%eax
5955d0:	55                   	push   %ebp
5955d1:	68 32 56 59 00       	push   $0x595632
5955d6:	64 ff 30             	push   %fs:(%eax)
5955d9:	64 89 20             	mov    %esp,%fs:(%eax)
5955dc:	8b c3                	mov    %ebx,%eax
5955de:	e8 85 f2 e6 ff       	call   0x404868
5955e3:	8d 55 ff             	lea    -0x1(%ebp),%edx
5955e6:	8b 45 08             	mov    0x8(%ebp),%eax
5955e9:	8b 40 fc             	mov    -0x4(%eax),%eax
5955ec:	b9 01 00 00 00       	mov    $0x1,%ecx
5955f1:	8b 38                	mov    (%eax),%edi
5955f3:	ff 57 08             	call   *0x8(%edi)
5955f6:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
5955fa:	74 20                	je     0x59561c
5955fc:	8d 45 f8             	lea    -0x8(%ebp),%eax
5955ff:	8a 55 ff             	mov    -0x1(%ebp),%dl
595602:	e8 41 f4 e6 ff       	call   0x404a48
595607:	8b 55 f8             	mov    -0x8(%ebp),%edx
59560a:	8b c3                	mov    %ebx,%eax
59560c:	e8 17 f5 e6 ff       	call   0x404b28
595611:	8b 03                	mov    (%ebx),%eax
595613:	e8 08 f5 e6 ff       	call   0x404b20
595618:	3b f0                	cmp    %eax,%esi
59561a:	7f c7                	jg     0x5955e3
59561c:	33 c0                	xor    %eax,%eax
59561e:	5a                   	pop    %edx
59561f:	59                   	pop    %ecx
595620:	59                   	pop    %ecx
595621:	64 89 10             	mov    %edx,%fs:(%eax)
595624:	68 39 56 59 00       	push   $0x595639
595629:	8d 45 f8             	lea    -0x8(%ebp),%eax
59562c:	e8 37 f2 e6 ff       	call   0x404868
595631:	c3                   	ret
595632:	e9 d5 eb e6 ff       	jmp    0x40420c
595637:	eb f0                	jmp    0x595629
595639:	5f                   	pop    %edi
59563a:	5e                   	pop    %esi
59563b:	5b                   	pop    %ebx
59563c:	59                   	pop    %ecx
59563d:	59                   	pop    %ecx
59563e:	5d                   	pop    %ebp
59563f:	c3                   	ret
595640:	55                   	push   %ebp
595641:	8b ec                	mov    %esp,%ebp
595643:	51                   	push   %ecx
595644:	53                   	push   %ebx
595645:	56                   	push   %esi
595646:	57                   	push   %edi
595647:	8b da                	mov    %edx,%ebx
595649:	89 45 fc             	mov    %eax,-0x4(%ebp)
59564c:	8b 45 08             	mov    0x8(%ebp),%eax
59564f:	8b 40 e4             	mov    -0x1c(%eax),%eax
595652:	8b d3                	mov    %ebx,%edx
595654:	e8 bb 65 e8 ff       	call   0x41bc14
595659:	8b fb                	mov    %ebx,%edi
59565b:	03 ff                	add    %edi,%edi
59565d:	8b c7                	mov    %edi,%eax
59565f:	e8 48 d1 e6 ff       	call   0x4027ac
595664:	8b f0                	mov    %eax,%esi
595666:	8b cf                	mov    %edi,%ecx
595668:	8b d6                	mov    %esi,%edx
59566a:	8b 45 08             	mov    0x8(%ebp),%eax
59566d:	8b 40 fc             	mov    -0x4(%eax),%eax
595670:	8b 18                	mov    (%eax),%ebx
595672:	ff 53 08             	call   *0x8(%ebx)
595675:	8b 45 08             	mov    0x8(%ebp),%eax
595678:	8b 40 e0             	mov    -0x20(%eax),%eax
59567b:	8b d6                	mov    %esi,%edx
59567d:	e8 92 65 e8 ff       	call   0x41bc14
595682:	8b 45 08             	mov    0x8(%ebp),%eax
595685:	8b 40 dc             	mov    -0x24(%eax),%eax
595688:	8b 55 fc             	mov    -0x4(%ebp),%edx
59568b:	e8 84 65 e8 ff       	call   0x41bc14
595690:	5f                   	pop    %edi
595691:	5e                   	pop    %esi
595692:	5b                   	pop    %ebx
595693:	59                   	pop    %ecx
595694:	5d                   	pop    %ebp
595695:	c3                   	ret
595696:	8b c0                	mov    %eax,%eax
595698:	55                   	push   %ebp
595699:	8b ec                	mov    %esp,%ebp
59569b:	83 c4 e8             	add    $0xffffffe8,%esp
59569e:	53                   	push   %ebx
59569f:	56                   	push   %esi
5956a0:	57                   	push   %edi
5956a1:	8b 45 08             	mov    0x8(%ebp),%eax
5956a4:	8b 40 dc             	mov    -0x24(%eax),%eax
5956a7:	66 8b 40 08          	mov    0x8(%eax),%ax
5956ab:	66 89 45 fa          	mov    %ax,-0x6(%ebp)
5956af:	8b 45 08             	mov    0x8(%ebp),%eax
5956b2:	8b 40 e8             	mov    -0x18(%eax),%eax
5956b5:	8b 00                	mov    (%eax),%eax
5956b7:	8b 80 0c 03 00 00    	mov    0x30c(%eax),%eax
5956bd:	8b 40 04             	mov    0x4(%eax),%eax
5956c0:	e8 4f 97 e8 ff       	call   0x41ee14
5956c5:	8d 55 fa             	lea    -0x6(%ebp),%edx
5956c8:	8b 45 08             	mov    0x8(%ebp),%eax
5956cb:	8b 40 e8             	mov    -0x18(%eax),%eax
5956ce:	8b 00                	mov    (%eax),%eax
5956d0:	8b 80 0c 03 00 00    	mov    0x30c(%eax),%eax
5956d6:	8b 40 04             	mov    0x4(%eax),%eax
5956d9:	b9 02 00 00 00       	mov    $0x2,%ecx
5956de:	8b 18                	mov    (%eax),%ebx
5956e0:	ff 53 0c             	call   *0xc(%ebx)
5956e3:	8b 45 08             	mov    0x8(%ebp),%eax
5956e6:	8b 40 e8             	mov    -0x18(%eax),%eax
5956e9:	8b 00                	mov    (%eax),%eax
5956eb:	8b 80 0c 03 00 00    	mov    0x30c(%eax),%eax
5956f1:	8b 40 04             	mov    0x4(%eax),%eax
5956f4:	e8 bf 8f e8 ff       	call   0x41e6b8
5956f9:	89 45 fc             	mov    %eax,-0x4(%ebp)
5956fc:	8b 45 08             	mov    0x8(%ebp),%eax
5956ff:	8b 40 dc             	mov    -0x24(%eax),%eax
595702:	8b 40 08             	mov    0x8(%eax),%eax
595705:	8b f0                	mov    %eax,%esi
595707:	c1 e6 02             	shl    $0x2,%esi
59570a:	8d 34 76             	lea    (%esi,%esi,2),%esi
59570d:	03 75 fc             	add    -0x4(%ebp),%esi
595710:	8b 55 08             	mov    0x8(%ebp),%edx
595713:	48                   	dec    %eax
595714:	85 c0                	test   %eax,%eax
595716:	0f 8c ea 00 00 00    	jl     0x595806
59571c:	40                   	inc    %eax
59571d:	89 45 f4             	mov    %eax,-0xc(%ebp)
595720:	33 db                	xor    %ebx,%ebx
595722:	8b 45 08             	mov    0x8(%ebp),%eax
595725:	8b 40 dc             	mov    -0x24(%eax),%eax
595728:	8b d3                	mov    %ebx,%edx
59572a:	e8 91 66 e8 ff       	call   0x41bdc0
59572f:	66 89 45 e8          	mov    %ax,-0x18(%ebp)
595733:	66 c7 45 ea 03 00    	movw   $0x3,-0x16(%ebp)
595739:	8b 45 08             	mov    0x8(%ebp),%eax
59573c:	8b 40 e4             	mov    -0x1c(%eax),%eax
59573f:	8b d3                	mov    %ebx,%edx
595741:	e8 7a 66 e8 ff       	call   0x41bdc0
595746:	89 45 ec             	mov    %eax,-0x14(%ebp)
595749:	89 75 f0             	mov    %esi,-0x10(%ebp)
59574c:	8d 55 e8             	lea    -0x18(%ebp),%edx
59574f:	8b 45 08             	mov    0x8(%ebp),%eax
595752:	8b 40 e8             	mov    -0x18(%eax),%eax
595755:	8b 00                	mov    (%eax),%eax
595757:	8b 80 0c 03 00 00    	mov    0x30c(%eax),%eax
59575d:	8b 40 04             	mov    0x4(%eax),%eax
595760:	b9 0c 00 00 00       	mov    $0xc,%ecx
595765:	8b 38                	mov    (%eax),%edi
595767:	ff 57 0c             	call   *0xc(%edi)
59576a:	8b 45 08             	mov    0x8(%ebp),%eax
59576d:	8b 40 e8             	mov    -0x18(%eax),%eax
595770:	8b 00                	mov    (%eax),%eax
595772:	8b 80 0c 03 00 00    	mov    0x30c(%eax),%eax
595778:	8b 40 04             	mov    0x4(%eax),%eax
59577b:	e8 38 8f e8 ff       	call   0x41e6b8
595780:	89 45 fc             	mov    %eax,-0x4(%ebp)
595783:	8b c6                	mov    %esi,%eax
595785:	99                   	cltd
595786:	52                   	push   %edx
595787:	50                   	push   %eax
595788:	8b 45 08             	mov    0x8(%ebp),%eax
59578b:	8b 40 e8             	mov    -0x18(%eax),%eax
59578e:	8b 00                	mov    (%eax),%eax
595790:	8b 80 0c 03 00 00    	mov    0x30c(%eax),%eax
595796:	8b 40 04             	mov    0x4(%eax),%eax
595799:	e8 3a 8f e8 ff       	call   0x41e6d8
59579e:	8b 45 08             	mov    0x8(%ebp),%eax
5957a1:	8b 40 e0             	mov    -0x20(%eax),%eax
5957a4:	8b d3                	mov    %ebx,%edx
5957a6:	e8 15 66 e8 ff       	call   0x41bdc0
5957ab:	8b d0                	mov    %eax,%edx
5957ad:	8b 4d ec             	mov    -0x14(%ebp),%ecx
5957b0:	03 c9                	add    %ecx,%ecx
5957b2:	8b 45 08             	mov    0x8(%ebp),%eax
5957b5:	8b 40 e8             	mov    -0x18(%eax),%eax
5957b8:	8b 00                	mov    (%eax),%eax
5957ba:	8b 80 0c 03 00 00    	mov    0x30c(%eax),%eax
5957c0:	8b 40 04             	mov    0x4(%eax),%eax
5957c3:	8b 30                	mov    (%eax),%esi
5957c5:	ff 56 0c             	call   *0xc(%esi)
5957c8:	8b 45 08             	mov    0x8(%ebp),%eax
5957cb:	8b 40 e8             	mov    -0x18(%eax),%eax
5957ce:	8b 00                	mov    (%eax),%eax
5957d0:	8b 80 0c 03 00 00    	mov    0x30c(%eax),%eax
5957d6:	8b 40 04             	mov    0x4(%eax),%eax
5957d9:	e8 da 8e e8 ff       	call   0x41e6b8
5957de:	8b f0                	mov    %eax,%esi
5957e0:	8b 45 fc             	mov    -0x4(%ebp),%eax
5957e3:	99                   	cltd
5957e4:	52                   	push   %edx
5957e5:	50                   	push   %eax
5957e6:	8b 45 08             	mov    0x8(%ebp),%eax
5957e9:	8b 40 e8             	mov    -0x18(%eax),%eax
5957ec:	8b 00                	mov    (%eax),%eax
5957ee:	8b 80 0c 03 00 00    	mov    0x30c(%eax),%eax
5957f4:	8b 40 04             	mov    0x4(%eax),%eax
5957f7:	e8 dc 8e e8 ff       	call   0x41e6d8
5957fc:	43                   	inc    %ebx
5957fd:	ff 4d f4             	decl   -0xc(%ebp)
595800:	0f 85 1c ff ff ff    	jne    0x595722
595806:	8b 45 08             	mov    0x8(%ebp),%eax
595809:	8b 40 e8             	mov    -0x18(%eax),%eax
59580c:	8b 00                	mov    (%eax),%eax
59580e:	8b 80 0c 03 00 00    	mov    0x30c(%eax),%eax
595814:	e8 2b ba 06 00       	call   0x601244
595819:	5f                   	pop    %edi
59581a:	5e                   	pop    %esi
59581b:	5b                   	pop    %ebx
59581c:	8b e5                	mov    %ebp,%esp
59581e:	5d                   	pop    %ebp
59581f:	c3                   	ret
595820:	55                   	push   %ebp
595821:	8b ec                	mov    %esp,%ebp
595823:	83 c4 d4             	add    $0xffffffd4,%esp
595826:	53                   	push   %ebx
595827:	56                   	push   %esi
595828:	57                   	push   %edi
595829:	33 c9                	xor    %ecx,%ecx
59582b:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
59582e:	89 4d d8             	mov    %ecx,-0x28(%ebp)
595831:	89 4d dc             	mov    %ecx,-0x24(%ebp)
595834:	89 4d e0             	mov    %ecx,-0x20(%ebp)
595837:	89 4d f4             	mov    %ecx,-0xc(%ebp)
59583a:	8b ca                	mov    %edx,%ecx
59583c:	89 45 fc             	mov    %eax,-0x4(%ebp)
59583f:	33 c0                	xor    %eax,%eax
595841:	55                   	push   %ebp
595842:	68 fb 5d 59 00       	push   $0x595dfb
595847:	64 ff 30             	push   %fs:(%eax)
59584a:	64 89 20             	mov    %esp,%fs:(%eax)
59584d:	8b 45 fc             	mov    -0x4(%ebp),%eax
595850:	03 c1                	add    %ecx,%eax
595852:	83 e8 04             	sub    $0x4,%eax
595855:	99                   	cltd
595856:	52                   	push   %edx
595857:	50                   	push   %eax
595858:	8b 45 08             	mov    0x8(%ebp),%eax
59585b:	8b 40 fc             	mov    -0x4(%eax),%eax
59585e:	e8 75 8e e8 ff       	call   0x41e6d8
595863:	8b 45 08             	mov    0x8(%ebp),%eax
595866:	50                   	push   %eax
595867:	e8 f4 fb ff ff       	call   0x595460
59586c:	59                   	pop    %ecx
59586d:	33 d2                	xor    %edx,%edx
59586f:	52                   	push   %edx
595870:	50                   	push   %eax
595871:	8b 45 fc             	mov    -0x4(%ebp),%eax
595874:	99                   	cltd
595875:	03 04 24             	add    (%esp),%eax
595878:	13 54 24 04          	adc    0x4(%esp),%edx
59587c:	83 c4 08             	add    $0x8,%esp
59587f:	52                   	push   %edx
595880:	50                   	push   %eax
595881:	8b 45 08             	mov    0x8(%ebp),%eax
595884:	8b 40 fc             	mov    -0x4(%eax),%eax
595887:	e8 4c 8e e8 ff       	call   0x41e6d8
59588c:	8b 45 08             	mov    0x8(%ebp),%eax
59588f:	50                   	push   %eax
595890:	e8 97 fb ff ff       	call   0x59542c
595895:	59                   	pop    %ecx
595896:	0f b7 c0             	movzwl %ax,%eax
595899:	48                   	dec    %eax
59589a:	85 c0                	test   %eax,%eax
59589c:	0f 8c 36 05 00 00    	jl     0x595dd8
5958a2:	40                   	inc    %eax
5958a3:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5958a6:	8b 45 08             	mov    0x8(%ebp),%eax
5958a9:	50                   	push   %eax
5958aa:	e8 7d fb ff ff       	call   0x59542c
5958af:	59                   	pop    %ecx
5958b0:	8b d8                	mov    %eax,%ebx
5958b2:	8b 45 08             	mov    0x8(%ebp),%eax
5958b5:	50                   	push   %eax
5958b6:	e8 a5 fb ff ff       	call   0x595460
5958bb:	59                   	pop    %ecx
5958bc:	89 45 f8             	mov    %eax,-0x8(%ebp)
5958bf:	8b 45 08             	mov    0x8(%ebp),%eax
5958c2:	50                   	push   %eax
5958c3:	e8 98 fb ff ff       	call   0x595460
5958c8:	59                   	pop    %ecx
5958c9:	8b f0                	mov    %eax,%esi
5958cb:	03 75 fc             	add    -0x4(%ebp),%esi
5958ce:	8b 45 08             	mov    0x8(%ebp),%eax
5958d1:	8b 40 fc             	mov    -0x4(%eax),%eax
5958d4:	e8 df 8d e8 ff       	call   0x41e6b8
5958d9:	8b f8                	mov    %eax,%edi
5958db:	8b c3                	mov    %ebx,%eax
5958dd:	66 25 00 c0          	and    $0xc000,%ax
5958e1:	66 3d 00 40          	cmp    $0x4000,%ax
5958e5:	75 0c                	jne    0x5958f3
5958e7:	c7 45 f8 08 00 00 00 	movl   $0x8,-0x8(%ebp)
5958ee:	8b f7                	mov    %edi,%esi
5958f0:	83 ee 08             	sub    $0x8,%esi
5958f3:	8b c6                	mov    %esi,%eax
5958f5:	33 d2                	xor    %edx,%edx
5958f7:	52                   	push   %edx
5958f8:	50                   	push   %eax
5958f9:	8b 45 08             	mov    0x8(%ebp),%eax
5958fc:	8b 40 fc             	mov    -0x4(%eax),%eax
5958ff:	e8 d4 8d e8 ff       	call   0x41e6d8
595904:	8b 45 ec             	mov    -0x14(%ebp),%eax
595907:	89 45 e8             	mov    %eax,-0x18(%ebp)
59590a:	0f b7 45 f2          	movzwl -0xe(%ebp),%eax
59590e:	89 45 ec             	mov    %eax,-0x14(%ebp)
595911:	8b c3                	mov    %ebx,%eax
595913:	66 25 ff 07          	and    $0x7ff,%ax
595917:	66 89 45 f2          	mov    %ax,-0xe(%ebp)