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)
597b17:	8b 45 f4             	mov    -0xc(%ebp),%eax
597b1a:	2b 45 ec             	sub    -0x14(%ebp),%eax
597b1d:	40                   	inc    %eax
597b1e:	5e                   	pop    %esi
597b1f:	5b                   	pop    %ebx
597b20:	8b e5                	mov    %ebp,%esp
597b22:	5d                   	pop    %ebp
597b23:	c3                   	ret
597b24:	55                   	push   %ebp
597b25:	8b ec                	mov    %esp,%ebp
597b27:	83 c4 f8             	add    $0xfffffff8,%esp
597b2a:	53                   	push   %ebx
597b2b:	56                   	push   %esi
597b2c:	48                   	dec    %eax
597b2d:	85 c0                	test   %eax,%eax
597b2f:	7c 64                	jl     0x597b95
597b31:	40                   	inc    %eax
597b32:	89 45 f8             	mov    %eax,-0x8(%ebp)
597b35:	33 db                	xor    %ebx,%ebx
597b37:	8d 04 5b             	lea    (%ebx,%ebx,2),%eax
597b3a:	8b 55 08             	mov    0x8(%ebp),%edx
597b3d:	8b 52 fc             	mov    -0x4(%edx),%edx
597b40:	8b 12                	mov    (%edx),%edx
597b42:	8b 92 a8 03 00 00    	mov    0x3a8(%edx),%edx
597b48:	8a 14 02             	mov    (%edx,%eax,1),%dl
597b4b:	88 55 fc             	mov    %dl,-0x4(%ebp)
597b4e:	8b 55 08             	mov    0x8(%ebp),%edx
597b51:	8b 52 fc             	mov    -0x4(%edx),%edx
597b54:	8b 12                	mov    (%edx),%edx
597b56:	8b 92 a8 03 00 00    	mov    0x3a8(%edx),%edx
597b5c:	8a 54 02 01          	mov    0x1(%edx,%eax,1),%dl
597b60:	88 55 fd             	mov    %dl,-0x3(%ebp)
597b63:	8b 55 08             	mov    0x8(%ebp),%edx
597b66:	8b 52 fc             	mov    -0x4(%edx),%edx
597b69:	8b 12                	mov    (%edx),%edx
597b6b:	8b 92 a8 03 00 00    	mov    0x3a8(%edx),%edx
597b71:	8a 44 02 02          	mov    0x2(%edx,%eax,1),%al
597b75:	88 45 fe             	mov    %al,-0x2(%ebp)
597b78:	c6 45 ff 00          	movb   $0x0,-0x1(%ebp)
597b7c:	8d 55 fc             	lea    -0x4(%ebp),%edx
597b7f:	8b 45 08             	mov    0x8(%ebp),%eax
597b82:	8b 40 f8             	mov    -0x8(%eax),%eax
597b85:	b9 04 00 00 00       	mov    $0x4,%ecx
597b8a:	8b 30                	mov    (%eax),%esi
597b8c:	ff 56 0c             	call   *0xc(%esi)
597b8f:	43                   	inc    %ebx
597b90:	ff 4d f8             	decl   -0x8(%ebp)
597b93:	75 a2                	jne    0x597b37
597b95:	5e                   	pop    %esi
597b96:	5b                   	pop    %ebx
597b97:	59                   	pop    %ecx
597b98:	59                   	pop    %ecx
597b99:	5d                   	pop    %ebp
597b9a:	c3                   	ret
597b9b:	90                   	nop
597b9c:	55                   	push   %ebp
597b9d:	8b ec                	mov    %esp,%ebp
597b9f:	81 c4 18 ff ff ff    	add    $0xffffff18,%esp
597ba5:	53                   	push   %ebx
597ba6:	56                   	push   %esi
597ba7:	57                   	push   %edi
597ba8:	89 4d fc             	mov    %ecx,-0x4(%ebp)
597bab:	89 55 f4             	mov    %edx,-0xc(%ebp)
597bae:	89 45 f8             	mov    %eax,-0x8(%ebp)
597bb1:	8b 45 08             	mov    0x8(%ebp),%eax
597bb4:	8b 40 28             	mov    0x28(%eax),%eax
597bb7:	89 85 48 ff ff ff    	mov    %eax,-0xb8(%ebp)
597bbd:	33 c0                	xor    %eax,%eax
597bbf:	89 85 20 ff ff ff    	mov    %eax,-0xe0(%ebp)
597bc5:	89 85 24 ff ff ff    	mov    %eax,-0xdc(%ebp)
597bcb:	33 c0                	xor    %eax,%eax
597bcd:	89 85 28 ff ff ff    	mov    %eax,-0xd8(%ebp)
597bd3:	8b 45 f8             	mov    -0x8(%ebp),%eax
597bd6:	e8 dd 6a e8 ff       	call   0x41e6b8
597bdb:	89 45 d8             	mov    %eax,-0x28(%ebp)
597bde:	89 55 dc             	mov    %edx,-0x24(%ebp)
597be1:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)
597be8:	c7 45 d4 00 00 00 00 	movl   $0x0,-0x2c(%ebp)
597bef:	8b 45 fc             	mov    -0x4(%ebp),%eax
597bf2:	8b 00                	mov    (%eax),%eax
597bf4:	8b 40 08             	mov    0x8(%eax),%eax
597bf7:	83 f8 01             	cmp    $0x1,%eax
597bfa:	74 08                	je     0x597c04
597bfc:	8b 55 fc             	mov    -0x4(%ebp),%edx
597bff:	83 f8 04             	cmp    $0x4,%eax
597c02:	75 08                	jne    0x597c0c
597c04:	8b 55 fc             	mov    -0x4(%ebp),%edx
597c07:	89 45 f0             	mov    %eax,-0x10(%ebp)
597c0a:	eb 46                	jmp    0x597c52
597c0c:	8b 45 fc             	mov    -0x4(%ebp),%eax
597c0f:	8b 00                	mov    (%eax),%eax
597c11:	83 78 10 01          	cmpl   $0x1,0x10(%eax)
597c15:	75 09                	jne    0x597c20
597c17:	c7 45 f0 08 00 00 00 	movl   $0x8,-0x10(%ebp)
597c1e:	eb 32                	jmp    0x597c52
597c20:	8b 45 f4             	mov    -0xc(%ebp),%eax
597c23:	e8 e0 fc 05 00       	call   0x5f7908
597c28:	84 c0                	test   %al,%al
597c2a:	74 1f                	je     0x597c4b
597c2c:	8b 45 fc             	mov    -0x4(%ebp),%eax
597c2f:	8b 00                	mov    (%eax),%eax
597c31:	83 78 10 04          	cmpl   $0x4,0x10(%eax)
597c35:	75 14                	jne    0x597c4b
597c37:	8b 45 fc             	mov    -0x4(%ebp),%eax
597c3a:	8b 00                	mov    (%eax),%eax
597c3c:	83 78 08 08          	cmpl   $0x8,0x8(%eax)
597c40:	75 09                	jne    0x597c4b
597c42:	c7 45 f0 20 00 00 00 	movl   $0x20,-0x10(%ebp)
597c49:	eb 07                	jmp    0x597c52
597c4b:	c7 45 f0 18 00 00 00 	movl   $0x18,-0x10(%ebp)
597c52:	8d 45 9e             	lea    -0x62(%ebp),%eax
597c55:	33 c9                	xor    %ecx,%ecx
597c57:	ba 0e 00 00 00       	mov    $0xe,%edx
597c5c:	e8 df b5 e6 ff       	call   0x403240
597c61:	66 c7 45 9e 42 4d    	movw   $0x4d42,-0x62(%ebp)
597c67:	6a 0e                	push   $0xe
597c69:	8d 4d 9e             	lea    -0x62(%ebp),%ecx
597c6c:	8b 55 08             	mov    0x8(%ebp),%edx
597c6f:	8b 52 28             	mov    0x28(%edx),%edx
597c72:	8b 45 f8             	mov    -0x8(%ebp),%eax
597c75:	e8 82 e2 05 00       	call   0x5f5efc
597c7a:	8b 45 fc             	mov    -0x4(%ebp),%eax
597c7d:	8b 00                	mov    (%eax),%eax
597c7f:	80 b8 01 01 00 00 02 	cmpb   $0x2,0x101(%eax)
597c86:	75 51                	jne    0x597cd9
597c88:	c7 85 52 ff ff ff 0c 	movl   $0xc,-0xae(%ebp)
597c8f:	00 00 00
597c92:	8b 45 f4             	mov    -0xc(%ebp),%eax
597c95:	8b 10                	mov    (%eax),%edx
597c97:	ff 52 0c             	call   *0xc(%edx)
597c9a:	66 89 85 56 ff ff ff 	mov    %ax,-0xaa(%ebp)
597ca1:	8b 45 f4             	mov    -0xc(%ebp),%eax
597ca4:	8b 10                	mov    (%eax),%edx
597ca6:	ff 52 08             	call   *0x8(%edx)
597ca9:	66 89 85 58 ff ff ff 	mov    %ax,-0xa8(%ebp)
597cb0:	66 c7 85 5a ff ff ff 	movw   $0x1,-0xa6(%ebp)
597cb7:	01 00
597cb9:	8b 85 52 ff ff ff    	mov    -0xae(%ebp),%eax
597cbf:	50                   	push   %eax
597cc0:	8d 8d 52 ff ff ff    	lea    -0xae(%ebp),%ecx
597cc6:	8b 55 08             	mov    0x8(%ebp),%edx
597cc9:	8b 52 28             	mov    0x28(%edx),%edx
597ccc:	8b 45 f8             	mov    -0x8(%ebp),%eax
597ccf:	e8 28 e2 05 00       	call   0x5f5efc
597cd4:	e9 26 01 00 00       	jmp    0x597dff
597cd9:	8d 85 5e ff ff ff    	lea    -0xa2(%ebp),%eax
597cdf:	33 c9                	xor    %ecx,%ecx
597ce1:	ba 40 00 00 00       	mov    $0x40,%edx
597ce6:	e8 55 b5 e6 ff       	call   0x403240
597ceb:	8b 45 fc             	mov    -0x4(%ebp),%eax
597cee:	8b 00                	mov    (%eax),%eax
597cf0:	8a 80 01 01 00 00    	mov    0x101(%eax),%al
597cf6:	2c 01                	sub    $0x1,%al
597cf8:	72 08                	jb     0x597d02
597cfa:	74 12                	je     0x597d0e
597cfc:	2c 02                	sub    $0x2,%al
597cfe:	74 1a                	je     0x597d1a
597d00:	eb 22                	jmp    0x597d24
597d02:	c7 85 5e ff ff ff 28 	movl   $0x28,-0xa2(%ebp)
597d09:	00 00 00
597d0c:	eb 16                	jmp    0x597d24
597d0e:	c7 85 5e ff ff ff 28 	movl   $0x28,-0xa2(%ebp)
597d15:	00 00 00
597d18:	eb 0a                	jmp    0x597d24
597d1a:	c7 85 5e ff ff ff 40 	movl   $0x40,-0xa2(%ebp)
597d21:	00 00 00
597d24:	8b 45 f4             	mov    -0xc(%ebp),%eax
597d27:	8b 10                	mov    (%eax),%edx
597d29:	ff 52 0c             	call   *0xc(%edx)
597d2c:	89 85 62 ff ff ff    	mov    %eax,-0x9e(%ebp)
597d32:	8b 45 f4             	mov    -0xc(%ebp),%eax
597d35:	8b 10                	mov    (%eax),%edx
597d37:	ff 52 08             	call   *0x8(%edx)
597d3a:	89 85 66 ff ff ff    	mov    %eax,-0x9a(%ebp)
597d40:	66 c7 85 6a ff ff ff 	movw   $0x1,-0x96(%ebp)