// File: /workspace/github_c_makefile_star2_O3/0x3f00[P]PhotonCpp/./PhotonFileHeader.h
// Function: PhotonFileHeader::PhotonFileHeader(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
PhotonFileHeader(const std::string & fileContent) {
		std::stringstream ss(fileContent);
        PhotonInputStream ds(ss);

        header1_ = ds.readInt();
        version_ = ds.readInt();

        bedXmm_ = ds.readFloat();
        bedYmm_ = ds.readFloat();
        bedZmm_ = ds.readFloat();

        unknown1_ = ds.readInt();
        unknown2_ = ds.readInt();
        unknown3_ = ds.readInt();

        layerHeightMilimeter_ = ds.readFloat();
        exposureTimeSeconds_ = ds.readFloat();
        exposureBottomTimeSeconds_ = ds.readFloat();

        offTimeSeconds_ = ds.readFloat();
        bottomLayers_ = ds.readInt();

        resolutionX_ = ds.readInt();
        resolutionY_ = ds.readInt();

        previewOneOffsetAddress_ = ds.readInt();
        layersDefinitionOffsetAddress_ = ds.readInt();

        numberOfLayers_ = ds.readInt();

        previewTwoOffsetAddress_ = ds.readInt();
        printTimeSeconds_ = ds.readInt();

        projectType_ = (ds.readInt() ? PhotonProjectType::lcdMirror : PhotonProjectType::cast);

        printParametersOffsetAddress_ = ds.readInt();
        printParametersSize_ = ds.readInt();
        antiAliasingLevel_ = ds.readInt();

        lightPWM_ = ds.readShort();
        bottomLightPWM_ = ds.readShort();

        unknown4_ = ds.readInt();
        unknown5_ = ds.readInt();
        if (version_>1) {
            unknown6_ = ds.readInt();
        }
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x190, %rsp            # imm = 0x190
movq %rdi, %rbx
leaq -0x1a0(%rbp), %r14
movq %r14, %rdi
movl $0x18, %edx
callq 0x2350
leaq -0x18(%rbp), %rdi
movq %r14, (%rdi)
callq 0x9d04
movl %eax, (%rbx)
leaq -0x18(%rbp), %rdi
callq 0x9d04
movl %eax, 0x4(%rbx)
leaq -0x18(%rbp), %rdi
callq 0x9d04
movl %eax, 0x8(%rbx)
leaq -0x18(%rbp), %rdi
callq 0x9d04
movl %eax, 0xc(%rbx)
leaq -0x18(%rbp), %rdi
callq 0x9d04
movl %eax, 0x10(%rbx)
leaq -0x18(%rbp), %rdi
callq 0x9d04
movl %eax, 0x14(%rbx)
leaq -0x18(%rbp), %rdi
callq 0x9d04
movl %eax, 0x18(%rbx)
leaq -0x18(%rbp), %rdi
callq 0x9d04
movl %eax, 0x1c(%rbx)
leaq -0x18(%rbp), %rdi
callq 0x9d04
movl %eax, 0x20(%rbx)
leaq -0x18(%rbp), %rdi
callq 0x9d04
movl %eax, 0x24(%rbx)
leaq -0x18(%rbp), %rdi
callq 0x9d04
movl %eax, 0x28(%rbx)
leaq -0x18(%rbp), %rdi
callq 0x9d04
movl %eax, 0x2c(%rbx)
leaq -0x18(%rbp), %rdi
callq 0x9d04
movl %eax, 0x30(%rbx)
leaq -0x18(%rbp), %rdi
callq 0x9d04
movl %eax, 0x34(%rbx)
leaq -0x18(%rbp), %rdi
callq 0x9d04
movl %eax, 0x38(%rbx)
leaq -0x18(%rbp), %rdi
callq 0x9d04
movl %eax, 0x3c(%rbx)
leaq -0x18(%rbp), %rdi
callq 0x9d04
movl %eax, 0x40(%rbx)
leaq -0x18(%rbp), %rdi
callq 0x9d04
movl %eax, 0x44(%rbx)
leaq -0x18(%rbp), %rdi
callq 0x9d04
movl %eax, 0x48(%rbx)
leaq -0x18(%rbp), %rdi
callq 0x9d04
movl %eax, 0x4c(%rbx)
leaq -0x18(%rbp), %rdi
callq 0x9d04
xorl %ecx, %ecx
testl %eax, %eax
setne %cl
movl %ecx, 0x50(%rbx)
leaq -0x18(%rbp), %rdi
callq 0x9d04
movl %eax, 0x54(%rbx)
leaq -0x18(%rbp), %rdi
callq 0x9d04
movl %eax, 0x58(%rbx)
leaq -0x18(%rbp), %rdi
callq 0x9d04
movl %eax, 0x5c(%rbx)
leaq -0x18(%rbp), %rdi
callq 0x9d74
movw %ax, 0x60(%rbx)
leaq -0x18(%rbp), %rdi
callq 0x9d74
movw %ax, 0x62(%rbx)
leaq -0x18(%rbp), %rdi
callq 0x9d04
movl %eax, 0x64(%rbx)
leaq -0x18(%rbp), %rdi
callq 0x9d04
movl %eax, 0x68(%rbx)
cmpl $0x2, 0x4(%rbx)
jl 0x8690
leaq -0x18(%rbp), %rdi
callq 0x9d04
movl %eax, 0x6c(%rbx)
movq 0x9911(%rip), %rsi      # 0x11fa8
leaq -0x1a0(%rbp), %rdi
callq 0x2180
leaq -0x120(%rbp), %rdi
callq 0x20d0
addq $0x190, %rsp            # imm = 0x190
popq %rbx
popq %r14
popq %rbp
retq
movq %rax, %rbx
movq 0x98e3(%rip), %rsi      # 0x11fa8
leaq -0x1a0(%rbp), %rdi
callq 0x2180
leaq -0x120(%rbp), %rdi
callq 0x20d0
movq %rbx, %rdi
callq 0x23b0
nop