// File: /workspace/github_cpp_makefile_star2_O2/ArthoPacini[P]blockchaincpp/./Blockchain.hpp
// Function: Blockchain::load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void load(const std::string input_filename = "blockchain.json")
    {
        std::filesystem::path input_path = std::filesystem::path(std::filesystem::current_path() / "blockchain" / input_filename);

        if(!std::filesystem::exists(input_path))
        {
            std::cerr << "Blockchain file does not exists!" << std::endl;
            return;
        }

        nlohmann::json input_json;
        
        std::ifstream input_file(input_path);
        input_file >> input_json;

        this->difficulty = input_json["difficulty"];
        this->maxTransactionsCount = input_json["maxTransactionsCount"];

        for(const auto & block_json : input_json["blocks"])
            chain.push_back(Block(block_json));
    }

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x350, %rsp            # imm = 0x350
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x98(%rsp), %rdi
callq 0x44d0
leaq 0xab30(%rip), %rsi      # 0x17ebe
leaq 0x48(%rsp), %rdi
pushq $0x2
popq %rdx
callq 0xcf24
leaq 0x148(%rsp), %rdi
leaq 0x98(%rsp), %rsi
leaq 0x48(%rsp), %rdx
callq 0xceeb
leaq 0x20(%rsp), %rdi
pushq $0x2
popq %rdx
movq %r14, %rsi
callq 0xcf90
leaq 0x70(%rsp), %rdi
leaq 0x148(%rsp), %rsi
leaq 0x20(%rsp), %rdx
callq 0xceeb
leaq 0x20(%rsp), %rdi
callq 0xcff8
leaq 0x148(%rsp), %rdi
callq 0xcff8
leaq 0x48(%rsp), %rdi
callq 0xcff8
leaq 0x98(%rsp), %rdi
callq 0xcff8
leaq 0x70(%rsp), %rdi
callq 0xd00e
testb %al, %al
je 0xd513
movq %rsp, %rdi
xorl %esi, %esi
callq 0xaaa6
movq 0x70(%rsp), %rsi
leaq 0x148(%rsp), %rdi
pushq $0x8
popq %rdx
callq 0x4590
leaq 0x148(%rsp), %rdi
movq %rsp, %rsi
callq 0xd5fa
leaq 0x84c6(%rip), %rsi      # 0x15918
movq %rsp, %rdi
callq 0x99e4
movq %rax, %rdi
callq 0x1417e
movl %eax, (%rbx)
leaq 0x84b8(%rip), %rsi      # 0x15923
movq %rsp, %rdi
callq 0x99e4
movq %rax, %rdi
callq 0x1417e
movl %eax, 0x4(%rbx)
leaq 0x84b3(%rip), %rsi      # 0x15938
movq %rsp, %rdi
callq 0x99e4
movq %rax, %r12
leaq 0x48(%rsp), %r14
movq %r14, %rdi
movq %rax, %rsi
callq 0xd6a8
leaq 0x20(%rsp), %r15
movq %r15, %rdi
movq %r12, %rsi
callq 0xd6ce
addq $0x8, %rbx
leaq 0x10(%rsp), %r12
leaq 0x98(%rsp), %r13
movq %r14, %rdi
movq %r15, %rsi
callq 0xd6f4
testb %al, %al
je 0xd530
movq %r14, %rdi
callq 0xd6fe
movq %r12, %rdi
movq %rax, %rsi
callq 0x85dc
movq %r13, %rdi
movq %r12, %rsi
callq 0xd88c
movq %rbx, %rdi
movq %r13, %rsi
callq 0x5f16
movq %r13, %rdi
callq 0x5ebc
movq %r12, %rdi
callq 0x7048
movq %r14, %rdi
callq 0xdb50
jmp 0xd4c1
movq 0x17ad6(%rip), %rdi     # 0x24ff0
leaq 0xa9b5(%rip), %rsi      # 0x17ed6
callq 0x4370
movq %rax, %rdi
callq 0x41c0
jmp 0xd545
leaq 0x148(%rsp), %rdi
callq 0x40d0
movq %rsp, %rdi
callq 0x7048
leaq 0x70(%rsp), %rdi
callq 0xcff8
addq $0x350, %rsp            # imm = 0x350
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
jmp 0xd5d0
movq %rax, %rbx
jmp 0xd5e0
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0xcff8
jmp 0xd579
movq %rax, %rbx
leaq 0x148(%rsp), %rdi
callq 0xcff8
jmp 0xd58b
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0xcff8
jmp 0xd59a
movq %rax, %rbx
leaq 0x98(%rsp), %rdi
jmp 0xd5ed
movq %rax, %rbx
jmp 0xd5e8
jmp 0xd5d0
jmp 0xd5d0
movq %rax, %rbx
leaq 0x98(%rsp), %rdi
callq 0x5ebc
jmp 0xd5c4
jmp 0xd5d0
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x7048
jmp 0xd5d3
movq %rax, %rbx
leaq 0x148(%rsp), %rdi
callq 0x40d0
movq %rsp, %rdi
callq 0x7048
leaq 0x70(%rsp), %rdi
callq 0xcff8
movq %rbx, %rdi
callq 0x4570