5977b1:	8b 55 08             	mov    0x8(%ebp),%edx
5977b4:	8b 52 f4             	mov    -0xc(%edx),%edx
5977b7:	c6 02 00             	movb   $0x0,(%edx)
5977ba:	8b 55 08             	mov    0x8(%ebp),%edx
5977bd:	ff 42 f4             	incl   -0xc(%edx)
5977c0:	8b 55 08             	mov    0x8(%ebp),%edx
5977c3:	8b 52 f4             	mov    -0xc(%edx),%edx
5977c6:	88 02                	mov    %al,(%edx)
5977c8:	8b 55 08             	mov    0x8(%ebp),%edx
5977cb:	ff 42 f4             	incl   -0xc(%edx)
5977ce:	8b c8                	mov    %eax,%ecx
5977d0:	d1 e9                	shr    $1,%ecx
5977d2:	49                   	dec    %ecx
5977d3:	85 c9                	test   %ecx,%ecx
5977d5:	7c 43                	jl     0x59781a
5977d7:	41                   	inc    %ecx
5977d8:	33 d2                	xor    %edx,%edx
5977da:	8b 5d 08             	mov    0x8(%ebp),%ebx
5977dd:	8b 5b f8             	mov    -0x8(%ebx),%ebx
5977e0:	8b f2                	mov    %edx,%esi
5977e2:	03 f6                	add    %esi,%esi
5977e4:	03 de                	add    %esi,%ebx
5977e6:	8b 75 08             	mov    0x8(%ebp),%esi
5977e9:	8b 76 f0             	mov    -0x10(%esi),%esi
5977ec:	8a 1c 1e             	mov    (%esi,%ebx,1),%bl
5977ef:	c1 e3 04             	shl    $0x4,%ebx
5977f2:	8b 75 08             	mov    0x8(%ebp),%esi
5977f5:	8b 76 f8             	mov    -0x8(%esi),%esi
5977f8:	8b fa                	mov    %edx,%edi
5977fa:	03 ff                	add    %edi,%edi
5977fc:	03 f7                	add    %edi,%esi
5977fe:	8b 7d 08             	mov    0x8(%ebp),%edi
597801:	8b 7f f0             	mov    -0x10(%edi),%edi
597804:	0a 5c 37 01          	or     0x1(%edi,%esi,1),%bl
597808:	8b 75 08             	mov    0x8(%ebp),%esi
59780b:	8b 76 f4             	mov    -0xc(%esi),%esi
59780e:	88 1e                	mov    %bl,(%esi)
597810:	8b 5d 08             	mov    0x8(%ebp),%ebx
597813:	ff 43 f4             	incl   -0xc(%ebx)
597816:	42                   	inc    %edx
597817:	49                   	dec    %ecx
597818:	75 c0                	jne    0x5977da
59781a:	8b d0                	mov    %eax,%edx
59781c:	83 e2 01             	and    $0x1,%edx
59781f:	85 d2                	test   %edx,%edx
597821:	74 20                	je     0x597843
597823:	8b 4d 08             	mov    0x8(%ebp),%ecx
597826:	8b 49 f8             	mov    -0x8(%ecx),%ecx
597829:	8b 5d 08             	mov    0x8(%ebp),%ebx
59782c:	8b 5b f0             	mov    -0x10(%ebx),%ebx
59782f:	8a 0c 0b             	mov    (%ebx,%ecx,1),%cl
597832:	c1 e1 04             	shl    $0x4,%ecx
597835:	8b 5d 08             	mov    0x8(%ebp),%ebx
597838:	8b 5b f4             	mov    -0xc(%ebx),%ebx
59783b:	88 0b                	mov    %cl,(%ebx)
59783d:	8b 4d 08             	mov    0x8(%ebp),%ecx
597840:	ff 41 f4             	incl   -0xc(%ecx)
597843:	8b c8                	mov    %eax,%ecx
597845:	d1 e9                	shr    $1,%ecx
597847:	03 ca                	add    %edx,%ecx
597849:	8b d1                	mov    %ecx,%edx
59784b:	f6 c2 01             	test   $0x1,%dl
59784e:	74 06                	je     0x597856
597850:	8b 55 08             	mov    0x8(%ebp),%edx
597853:	ff 42 f4             	incl   -0xc(%edx)
597856:	8b 55 08             	mov    0x8(%ebp),%edx
597859:	01 42 f8             	add    %eax,-0x8(%edx)
59785c:	8b 45 08             	mov    0x8(%ebp),%eax
59785f:	8b 40 fc             	mov    -0x4(%eax),%eax
597862:	8b 55 08             	mov    0x8(%ebp),%edx
597865:	2b 42 f8             	sub    -0x8(%edx),%eax
597868:	85 c0                	test   %eax,%eax
59786a:	0f 8f af fe ff ff    	jg     0x59771f
597870:	5f                   	pop    %edi
597871:	5e                   	pop    %esi
597872:	5b                   	pop    %ebx
597873:	5d                   	pop    %ebp
597874:	c3                   	ret
597875:	8d 40 00             	lea    0x0(%eax),%eax
597878:	55                   	push   %ebp
597879:	8b ec                	mov    %esp,%ebp
59787b:	83 c4 ec             	add    $0xffffffec,%esp
59787e:	53                   	push   %ebx
59787f:	56                   	push   %esi
597880:	57                   	push   %edi
597881:	89 4d f4             	mov    %ecx,-0xc(%ebp)
597884:	8b da                	mov    %edx,%ebx
597886:	89 45 f0             	mov    %eax,-0x10(%ebp)
597889:	8d 75 fc             	lea    -0x4(%ebp),%esi
59788c:	8b 45 f4             	mov    -0xc(%ebp),%eax
59788f:	89 45 ec             	mov    %eax,-0x14(%ebp)
597892:	33 c0                	xor    %eax,%eax
597894:	89 06                	mov    %eax,(%esi)
597896:	33 c0                	xor    %eax,%eax
597898:	89 45 f8             	mov    %eax,-0x8(%ebp)
59789b:	3b 1e                	cmp    (%esi),%ebx
59789d:	0f 8e 97 00 00 00    	jle    0x59793a
5978a3:	8b 06                	mov    (%esi),%eax
5978a5:	2b 45 f8             	sub    -0x8(%ebp),%eax
5978a8:	3d ff 00 00 00       	cmp    $0xff,%eax
5978ad:	7e 07                	jle    0x5978b6
5978af:	55                   	push   %ebp
5978b0:	e8 5f fe ff ff       	call   0x597714
5978b5:	59                   	pop    %ecx
5978b6:	8b 45 f0             	mov    -0x10(%ebp),%eax
5978b9:	8b 16                	mov    (%esi),%edx
5978bb:	8a 04 10             	mov    (%eax,%edx,1),%al
5978be:	8b 55 f0             	mov    -0x10(%ebp),%edx
5978c1:	8b 0e                	mov    (%esi),%ecx
5978c3:	3a 44 0a 01          	cmp    0x1(%edx,%ecx,1),%al
5978c7:	75 67                	jne    0x597930
5978c9:	8b 45 f8             	mov    -0x8(%ebp),%eax
5978cc:	3b 06                	cmp    (%esi),%eax
5978ce:	7d 07                	jge    0x5978d7
5978d0:	55                   	push   %ebp
5978d1:	e8 3e fe ff ff       	call   0x597714
5978d6:	59                   	pop    %ecx
5978d7:	8b 06                	mov    (%esi),%eax
5978d9:	83 c0 02             	add    $0x2,%eax
5978dc:	eb 01                	jmp    0x5978df
5978de:	40                   	inc    %eax
5978df:	3b d8                	cmp    %eax,%ebx
5978e1:	7e 1c                	jle    0x5978ff
5978e3:	8b 55 f0             	mov    -0x10(%ebp),%edx
5978e6:	8b 0e                	mov    (%esi),%ecx
5978e8:	8a 14 0a             	mov    (%edx,%ecx,1),%dl
5978eb:	8b 4d f0             	mov    -0x10(%ebp),%ecx
5978ee:	3a 14 01             	cmp    (%ecx,%eax,1),%dl
5978f1:	75 0c                	jne    0x5978ff
5978f3:	8b d0                	mov    %eax,%edx
5978f5:	2b 16                	sub    (%esi),%edx
5978f7:	81 fa ff 00 00 00    	cmp    $0xff,%edx
5978fd:	7c df                	jl     0x5978de
5978ff:	8b d0                	mov    %eax,%edx
597901:	2b 16                	sub    (%esi),%edx
597903:	8b 4d f4             	mov    -0xc(%ebp),%ecx
597906:	88 11                	mov    %dl,(%ecx)
597908:	ff 45 f4             	incl   -0xc(%ebp)
59790b:	8b 55 f0             	mov    -0x10(%ebp),%edx
59790e:	8b 0e                	mov    (%esi),%ecx
597910:	8a 14 0a             	mov    (%edx,%ecx,1),%dl
597913:	c1 e2 04             	shl    $0x4,%edx
597916:	8b 4d f0             	mov    -0x10(%ebp),%ecx
597919:	8b 3e                	mov    (%esi),%edi
59791b:	0a 14 39             	or     (%ecx,%edi,1),%dl
59791e:	8b 4d f4             	mov    -0xc(%ebp),%ecx
597921:	88 11                	mov    %dl,(%ecx)
597923:	ff 45 f4             	incl   -0xc(%ebp)
597926:	89 45 f8             	mov    %eax,-0x8(%ebp)
597929:	8b 45 f8             	mov    -0x8(%ebp),%eax
59792c:	89 06                	mov    %eax,(%esi)
59792e:	eb 02                	jmp    0x597932
597930:	ff 06                	incl   (%esi)
597932:	3b 1e                	cmp    (%esi),%ebx
597934:	0f 8f 69 ff ff ff    	jg     0x5978a3
59793a:	8b 45 f8             	mov    -0x8(%ebp),%eax
59793d:	3b 06                	cmp    (%esi),%eax
59793f:	7d 07                	jge    0x597948
597941:	55                   	push   %ebp
597942:	e8 cd fd ff ff       	call   0x597714
597947:	59                   	pop    %ecx
597948:	8b 45 f4             	mov    -0xc(%ebp),%eax
59794b:	c6 00 00             	movb   $0x0,(%eax)
59794e:	ff 45 f4             	incl   -0xc(%ebp)
597951:	8b 45 f4             	mov    -0xc(%ebp),%eax
597954:	c6 00 00             	movb   $0x0,(%eax)
597957:	8b 45 f4             	mov    -0xc(%ebp),%eax
59795a:	2b 45 ec             	sub    -0x14(%ebp),%eax
59795d:	40                   	inc    %eax
59795e:	5f                   	pop    %edi
59795f:	5e                   	pop    %esi
597960:	5b                   	pop    %ebx
597961:	8b e5                	mov    %ebp,%esp
597963:	5d                   	pop    %ebp
597964:	c3                   	ret
597965:	8d 40 00             	lea    0x0(%eax),%eax
597968:	55                   	push   %ebp
597969:	8b ec                	mov    %esp,%ebp
59796b:	53                   	push   %ebx
59796c:	56                   	push   %esi
59796d:	57                   	push   %edi
59796e:	8b 5d 08             	mov    0x8(%ebp),%ebx
597971:	83 c3 f4             	add    $0xfffffff4,%ebx
597974:	e9 b1 00 00 00       	jmp    0x597a2a
597979:	8b 55 08             	mov    0x8(%ebp),%edx
59797c:	8b 55 08             	mov    0x8(%ebp),%edx
59797f:	ba ff 00 00 00       	mov    $0xff,%edx
597984:	e8 93 1a 01 00       	call   0x5a941c
597989:	83 f8 01             	cmp    $0x1,%eax
59798c:	75 1e                	jne    0x5979ac
59798e:	8b 13                	mov    (%ebx),%edx
597990:	c6 02 01             	movb   $0x1,(%edx)
597993:	ff 03                	incl   (%ebx)
597995:	8b 55 08             	mov    0x8(%ebp),%edx
597998:	8b 52 f8             	mov    -0x8(%edx),%edx
59799b:	8b 4d 08             	mov    0x8(%ebp),%ecx
59799e:	8b 49 f0             	mov    -0x10(%ecx),%ecx
5979a1:	8a 14 11             	mov    (%ecx,%edx,1),%dl
5979a4:	8b 0b                	mov    (%ebx),%ecx
5979a6:	88 11                	mov    %dl,(%ecx)
5979a8:	ff 03                	incl   (%ebx)
5979aa:	eb 78                	jmp    0x597a24
5979ac:	83 f8 02             	cmp    $0x2,%eax
5979af:	75 3b                	jne    0x5979ec
5979b1:	8b 13                	mov    (%ebx),%edx
5979b3:	c6 02 01             	movb   $0x1,(%edx)
5979b6:	ff 03                	incl   (%ebx)
5979b8:	8b 55 08             	mov    0x8(%ebp),%edx
5979bb:	8b 52 f8             	mov    -0x8(%edx),%edx
5979be:	8b 4d 08             	mov    0x8(%ebp),%ecx
5979c1:	8b 49 f0             	mov    -0x10(%ecx),%ecx
5979c4:	8a 14 11             	mov    (%ecx,%edx,1),%dl
5979c7:	8b 0b                	mov    (%ebx),%ecx
5979c9:	88 11                	mov    %dl,(%ecx)
5979cb:	ff 03                	incl   (%ebx)
5979cd:	8b 13                	mov    (%ebx),%edx
5979cf:	c6 02 01             	movb   $0x1,(%edx)
5979d2:	ff 03                	incl   (%ebx)
5979d4:	8b 55 08             	mov    0x8(%ebp),%edx
5979d7:	8b 52 f8             	mov    -0x8(%edx),%edx
5979da:	8b 4d 08             	mov    0x8(%ebp),%ecx
5979dd:	8b 49 f0             	mov    -0x10(%ecx),%ecx
5979e0:	8a 54 11 01          	mov    0x1(%ecx,%edx,1),%dl
5979e4:	8b 0b                	mov    (%ebx),%ecx
5979e6:	88 11                	mov    %dl,(%ecx)
5979e8:	ff 03                	incl   (%ebx)
5979ea:	eb 38                	jmp    0x597a24
5979ec:	8b 13                	mov    (%ebx),%edx
5979ee:	c6 02 00             	movb   $0x0,(%edx)
5979f1:	ff 03                	incl   (%ebx)
5979f3:	8b 13                	mov    (%ebx),%edx
5979f5:	88 02                	mov    %al,(%edx)
5979f7:	ff 03                	incl   (%ebx)
5979f9:	8b d0                	mov    %eax,%edx
5979fb:	4a                   	dec    %edx
5979fc:	85 d2                	test   %edx,%edx
5979fe:	7c 1e                	jl     0x597a1e
597a00:	42                   	inc    %edx
597a01:	33 f6                	xor    %esi,%esi
597a03:	8b 4d 08             	mov    0x8(%ebp),%ecx
597a06:	8b 49 f8             	mov    -0x8(%ecx),%ecx
597a09:	03 ce                	add    %esi,%ecx
597a0b:	8b 7d 08             	mov    0x8(%ebp),%edi
597a0e:	8b 7f f0             	mov    -0x10(%edi),%edi
597a11:	8a 0c 0f             	mov    (%edi,%ecx,1),%cl
597a14:	8b 3b                	mov    (%ebx),%edi
597a16:	88 0f                	mov    %cl,(%edi)
597a18:	ff 03                	incl   (%ebx)
597a1a:	46                   	inc    %esi
597a1b:	4a                   	dec    %edx
597a1c:	75 e5                	jne    0x597a03
597a1e:	a8 01                	test   $0x1,%al
597a20:	74 02                	je     0x597a24
597a22:	ff 03                	incl   (%ebx)
597a24:	8b 55 08             	mov    0x8(%ebp),%edx
597a27:	01 42 f8             	add    %eax,-0x8(%edx)
597a2a:	8b 45 08             	mov    0x8(%ebp),%eax
597a2d:	8b 40 fc             	mov    -0x4(%eax),%eax
597a30:	8b 55 08             	mov    0x8(%ebp),%edx
597a33:	2b 42 f8             	sub    -0x8(%edx),%eax
597a36:	85 c0                	test   %eax,%eax
597a38:	0f 8f 3b ff ff ff    	jg     0x597979
597a3e:	5f                   	pop    %edi
597a3f:	5e                   	pop    %esi
597a40:	5b                   	pop    %ebx
597a41:	5d                   	pop    %ebp
597a42:	c3                   	ret
597a43:	90                   	nop
597a44:	55                   	push   %ebp
597a45:	8b ec                	mov    %esp,%ebp
597a47:	83 c4 ec             	add    $0xffffffec,%esp
597a4a:	53                   	push   %ebx
597a4b:	56                   	push   %esi
597a4c:	89 4d f4             	mov    %ecx,-0xc(%ebp)
597a4f:	8b da                	mov    %edx,%ebx
597a51:	89 45 f0             	mov    %eax,-0x10(%ebp)
597a54:	8d 75 fc             	lea    -0x4(%ebp),%esi
597a57:	8b 45 f4             	mov    -0xc(%ebp),%eax
597a5a:	89 45 ec             	mov    %eax,-0x14(%ebp)
597a5d:	33 c0                	xor    %eax,%eax
597a5f:	89 06                	mov    %eax,(%esi)
597a61:	33 c0                	xor    %eax,%eax
597a63:	89 45 f8             	mov    %eax,-0x8(%ebp)
597a66:	3b 1e                	cmp    (%esi),%ebx
597a68:	0f 8e 8c 00 00 00    	jle    0x597afa
597a6e:	8b 06                	mov    (%esi),%eax
597a70:	2b 45 f8             	sub    -0x8(%ebp),%eax
597a73:	3d ff 00 00 00       	cmp    $0xff,%eax
597a78:	7e 07                	jle    0x597a81
597a7a:	55                   	push   %ebp
597a7b:	e8 e8 fe ff ff       	call   0x597968
597a80:	59                   	pop    %ecx
597a81:	8b 45 f0             	mov    -0x10(%ebp),%eax
597a84:	8b 16                	mov    (%esi),%edx
597a86:	8a 04 10             	mov    (%eax,%edx,1),%al
597a89:	8b 55 f0             	mov    -0x10(%ebp),%edx
597a8c:	8b 0e                	mov    (%esi),%ecx
597a8e:	3a 44 0a 01          	cmp    0x1(%edx,%ecx,1),%al
597a92:	75 5c                	jne    0x597af0
597a94:	8b 45 f8             	mov    -0x8(%ebp),%eax
597a97:	3b 06                	cmp    (%esi),%eax
597a99:	7d 07                	jge    0x597aa2
597a9b:	55                   	push   %ebp
597a9c:	e8 c7 fe ff ff       	call   0x597968
597aa1:	59                   	pop    %ecx
597aa2:	8b 06                	mov    (%esi),%eax
597aa4:	83 c0 02             	add    $0x2,%eax
597aa7:	eb 01                	jmp    0x597aaa
597aa9:	40                   	inc    %eax
597aaa:	3b d8                	cmp    %eax,%ebx
597aac:	7e 1c                	jle    0x597aca
597aae:	8b 55 f0             	mov    -0x10(%ebp),%edx
597ab1:	8b 0e                	mov    (%esi),%ecx
597ab3:	8a 14 0a             	mov    (%edx,%ecx,1),%dl
597ab6:	8b 4d f0             	mov    -0x10(%ebp),%ecx
597ab9:	3a 14 01             	cmp    (%ecx,%eax,1),%dl
597abc:	75 0c                	jne    0x597aca
597abe:	8b d0                	mov    %eax,%edx
597ac0:	2b 16                	sub    (%esi),%edx
597ac2:	81 fa ff 00 00 00    	cmp    $0xff,%edx
597ac8:	7c df                	jl     0x597aa9
597aca:	8b d0                	mov    %eax,%edx
597acc:	2b 16                	sub    (%esi),%edx
597ace:	8b 4d f4             	mov    -0xc(%ebp),%ecx
597ad1:	88 11                	mov    %dl,(%ecx)
597ad3:	ff 45 f4             	incl   -0xc(%ebp)
597ad6:	8b 55 f0             	mov    -0x10(%ebp),%edx
597ad9:	8b 0e                	mov    (%esi),%ecx
597adb:	8a 14 0a             	mov    (%edx,%ecx,1),%dl
597ade:	8b 4d f4             	mov    -0xc(%ebp),%ecx
597ae1:	88 11                	mov    %dl,(%ecx)
597ae3:	ff 45 f4             	incl   -0xc(%ebp)
597ae6:	89 45 f8             	mov    %eax,-0x8(%ebp)
597ae9:	8b 45 f8             	mov    -0x8(%ebp),%eax
597aec:	89 06                	mov    %eax,(%esi)
597aee:	eb 02                	jmp    0x597af2
597af0:	ff 06                	incl   (%esi)
597af2:	3b 1e                	cmp    (%esi),%ebx
597af4:	0f 8f 74 ff ff ff    	jg     0x597a6e
597afa:	8b 45 f8             	mov    -0x8(%ebp),%eax
597afd:	3b 06                	cmp    (%esi),%eax
597aff:	7d 07                	jge    0x597b08
597b01:	55                   	push   %ebp
597b02:	e8 61 fe ff ff       	call   0x597968
597b07:	59                   	pop    %ecx
597b08:	8b 45 f4             	mov    -0xc(%ebp),%eax
597b0b:	c6 00 00             	movb   $0x0,(%eax)
597b0e:	ff 45 f4             	incl   -0xc(%ebp)
597b11:	8b 45 f4             	mov    -0xc(%ebp),%eax
597b14:	c6 00 00             	movb   $0x0,(%eax)