// File: 0asa[P]TTree-source/JavaDB.cpp
// Function: JavaDB::readBlockStartEnd(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void JavaDB::readBlockStartEnd(std::string file) {
	std::ifstream fs(file.c_str());
	if (!fs)
		fprintf(stderr, "Error : Cannot find block file %s\n",file.c_str());
	std::string line;
	int ln = 0;
	while (getline(fs, line)) {
		std::vector<std::string> ex = StrTools::explode(line,const_cast<char *>("\t"));
		std::vector<unsigned int> g;
		// treat ex and pushback to block start end...
		if (ex.size() == 2) {
			int start = atoi(ex[0].c_str());
			int end = atoi(ex[1].c_str());
			for (int i = start ; i <= end ; ++i)
				g.push_back(i);
			groups.push_back(g);
		} else {
			fprintf(stderr, "Error : Incorrect block file format ?\n");
		}
		++ln;
	}
	setNbGroup((int) groups.size());
	blocked = true;
	fs.close();
}

// Assembly:
subq $0x2c8, %rsp            # imm = 0x2C8
movq %rsi, 0x18(%rsp)
movq %rdi, %rax
movq 0x18(%rsp), %rdi
movq %rdi, 0x20(%rsp)
movq %rax, 0x2c0(%rsp)
movq %rdi, 0x2b8(%rsp)
movq 0x2c0(%rsp), %rax
movq %rax, 0x28(%rsp)
callq 0x3100
movq %rax, %rsi
leaq 0xb0(%rsp), %rdi
movl $0x8, %edx
callq 0x3410
movq 0xb0(%rsp), %rax
movq -0x18(%rax), %rax
leaq 0xb0(%rsp,%rax), %rdi
callq 0x3140
movb %al, 0x37(%rsp)
jmp 0x1e11f
movb 0x37(%rsp), %al
testb $0x1, %al
jne 0x1e129
jmp 0x1e173
movq 0x20(%rsp), %rdi
movq 0x22ea3(%rip), %rax     # 0x40fd8
movq (%rax), %rax
movq %rax, 0x10(%rsp)
callq 0x3100
movq 0x10(%rsp), %rdi
movq %rax, %rdx
leaq 0x1282d(%rip), %rsi     # 0x3097e
movb $0x0, %al
callq 0x3360
jmp 0x1e173
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa8(%rsp)
movl %eax, 0xa4(%rsp)
jmp 0x1e37f
leaq 0x80(%rsp), %rdi
callq 0x3350
movl $0x0, 0x7c(%rsp)
leaq 0xb0(%rsp), %rdi
leaq 0x80(%rsp), %rsi
callq 0x3070
movq %rax, 0x8(%rsp)
jmp 0x1e1a4
movq 0x8(%rsp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x3320
movb %al, 0x7(%rsp)
jmp 0x1e1be
movb 0x7(%rsp), %al
testb $0x1, %al
jne 0x1e1cb
jmp 0x1e31c
leaq 0x126da(%rip), %rdx     # 0x308ac
leaq 0x60(%rsp), %rdi
leaq 0x80(%rsp), %rsi
callq 0x79d0
jmp 0x1e1e6
leaq 0x48(%rsp), %rdi
callq 0x67b0
leaq 0x60(%rsp), %rdi
callq 0x7b50
cmpq $0x2, %rax
jne 0x1e2e0
leaq 0x60(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x7b70
movq %rax, %rdi
callq 0x3100
movq %rax, %rdi
callq 0x33a0
movl %eax, 0x44(%rsp)
leaq 0x60(%rsp), %rdi
movl $0x1, %esi
callq 0x7b70
movq %rax, %rdi
callq 0x3100
movq %rax, %rdi
callq 0x33a0
movl %eax, 0x40(%rsp)
movl 0x44(%rsp), %eax
movl %eax, 0x3c(%rsp)
movl 0x3c(%rsp), %eax
cmpl 0x40(%rsp), %eax
jg 0x1e2c9
movl 0x3c(%rsp), %eax
movl %eax, 0x38(%rsp)
leaq 0x48(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x7b90
jmp 0x1e274
jmp 0x1e276
movl 0x3c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x3c(%rsp)
jmp 0x1e251
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa8(%rsp)
movl %eax, 0xa4(%rsp)
jmp 0x1e372
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa8(%rsp)
movl %eax, 0xa4(%rsp)
leaq 0x48(%rsp), %rdi
callq 0x6830
leaq 0x60(%rsp), %rdi
callq 0x7bc0
jmp 0x1e372
movq 0x28(%rsp), %rdi
addq $0x60, %rdi
leaq 0x48(%rsp), %rsi
callq 0x1ea90
jmp 0x1e2de
jmp 0x1e2f8
movq 0x22cf1(%rip), %rax     # 0x40fd8
movq (%rax), %rdi
leaq 0x126b0(%rip), %rsi     # 0x309a1
movb $0x0, %al
callq 0x3360
movl 0x7c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x7c(%rsp)
leaq 0x48(%rsp), %rdi
callq 0x6830
leaq 0x60(%rsp), %rdi
callq 0x7bc0
jmp 0x1e188
movq 0x28(%rsp), %rdi
addq $0x60, %rdi
callq 0x1eb00
movq 0x28(%rsp), %rdi
movl %eax, %esi
callq 0xf0b0
jmp 0x1e338
movq 0x28(%rsp), %rax
movb $0x1, 0x5c(%rax)
leaq 0xb0(%rsp), %rdi
callq 0x3080
jmp 0x1e350
leaq 0x80(%rsp), %rdi
callq 0x3170
leaq 0xb0(%rsp), %rdi
callq 0x30a0
addq $0x2c8, %rsp            # imm = 0x2C8
retq
leaq 0x80(%rsp), %rdi
callq 0x3170
leaq 0xb0(%rsp), %rdi
callq 0x30a0
movq 0xa8(%rsp), %rdi
callq 0x33e0
nopl (%rax)