// File: /workspace/github_c_makefile_star2_O0/0x3f00[P]PhotonCpp/./PhotonFileHeader.h
// Function: PhotonFileHeader::save(PhotonOutputStream, int, int, int, int)
void save(PhotonOutputStream os, int previewOnePos, int previewTwoPos, int layerDefinitionPos, int parametersPos) {
        previewOneOffsetAddress_ = previewOnePos;
        previewTwoOffsetAddress_ = previewTwoPos;
        layersDefinitionOffsetAddress_ = layerDefinitionPos;
        printParametersOffsetAddress_ = parametersPos;

        os.writeInt(header1_);
        os.writeInt(version_);

        os.writeFloat(bedXmm_);
        os.writeFloat(bedYmm_);
        os.writeFloat(bedZmm_);

        os.writeInt(unknown1_);
        os.writeInt(unknown2_);
        os.writeInt(unknown3_);

        os.writeFloat(layerHeightMilimeter_);
        os.writeFloat(exposureTimeSeconds_);
        os.writeFloat(exposureBottomTimeSeconds_);

        os.writeFloat(offTimeSeconds_);
        os.writeInt(bottomLayers_);

        os.writeInt(resolutionX_);
        os.writeInt(resolutionY_);

        os.writeInt(previewOneOffsetAddress_);
        os.writeInt(layersDefinitionOffsetAddress_);

        os.writeInt(numberOfLayers_);

        os.writeInt(previewTwoOffsetAddress_);
        os.writeInt(printTimeSeconds_);

        os.writeInt(projectType_);

        os.writeInt(printParametersOffsetAddress_);
        os.writeInt(printParametersSize_);
        os.writeInt(antiAliasingLevel_);

        os.writeShort(lightPWM_);
        os.writeShort(bottomLightPWM_);

        os.writeInt(unknown4_);
        os.writeInt(unknown5_);
        if (version_>1) {
            os.writeInt(unknown6_);
        }
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rsi, -0x8(%rbp)
movq %rdi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movl %ecx, -0x18(%rbp)
movl %r8d, -0x1c(%rbp)
movl %r9d, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x28(%rbp)
movl -0x14(%rbp), %ecx
movl %ecx, 0x3c(%rax)
movl -0x18(%rbp), %ecx
movl %ecx, 0x48(%rax)
movl -0x1c(%rbp), %ecx
movl %ecx, 0x40(%rax)
movl -0x20(%rbp), %ecx
movl %ecx, 0x54(%rax)
movl (%rax), %esi
leaq -0x8(%rbp), %rdi
callq 0x1a3e0
movq -0x28(%rbp), %rax
movl 0x4(%rax), %esi
leaq -0x8(%rbp), %rdi
callq 0x1a3e0
movq -0x28(%rbp), %rax
movss 0x8(%rax), %xmm0
leaq -0x8(%rbp), %rdi
callq 0x1a460
movq -0x28(%rbp), %rax
movss 0xc(%rax), %xmm0
leaq -0x8(%rbp), %rdi
callq 0x1a460
movq -0x28(%rbp), %rax
movss 0x10(%rax), %xmm0
leaq -0x8(%rbp), %rdi
callq 0x1a460
movq -0x28(%rbp), %rax
movl 0x14(%rax), %esi
leaq -0x8(%rbp), %rdi
callq 0x1a3e0
movq -0x28(%rbp), %rax
movl 0x18(%rax), %esi
leaq -0x8(%rbp), %rdi
callq 0x1a3e0
movq -0x28(%rbp), %rax
movl 0x1c(%rax), %esi
leaq -0x8(%rbp), %rdi
callq 0x1a3e0
movq -0x28(%rbp), %rax
movss 0x20(%rax), %xmm0
leaq -0x8(%rbp), %rdi
callq 0x1a460
movq -0x28(%rbp), %rax
movss 0x24(%rax), %xmm0
leaq -0x8(%rbp), %rdi
callq 0x1a460
movq -0x28(%rbp), %rax
movss 0x28(%rax), %xmm0
leaq -0x8(%rbp), %rdi
callq 0x1a460
movq -0x28(%rbp), %rax
movss 0x2c(%rax), %xmm0
leaq -0x8(%rbp), %rdi
callq 0x1a460
movq -0x28(%rbp), %rax
movl 0x30(%rax), %esi
leaq -0x8(%rbp), %rdi
callq 0x1a3e0
movq -0x28(%rbp), %rax
movl 0x34(%rax), %esi
leaq -0x8(%rbp), %rdi
callq 0x1a3e0
movq -0x28(%rbp), %rax
movl 0x38(%rax), %esi
leaq -0x8(%rbp), %rdi
callq 0x1a3e0
movq -0x28(%rbp), %rax
movl 0x3c(%rax), %esi
leaq -0x8(%rbp), %rdi
callq 0x1a3e0
movq -0x28(%rbp), %rax
movl 0x40(%rax), %esi
leaq -0x8(%rbp), %rdi
callq 0x1a3e0
movq -0x28(%rbp), %rax
movl 0x44(%rax), %esi
leaq -0x8(%rbp), %rdi
callq 0x1a3e0
movq -0x28(%rbp), %rax
movl 0x48(%rax), %esi
leaq -0x8(%rbp), %rdi
callq 0x1a3e0
movq -0x28(%rbp), %rax
movl 0x4c(%rax), %esi
leaq -0x8(%rbp), %rdi
callq 0x1a3e0
movq -0x28(%rbp), %rax
movl 0x50(%rax), %esi
leaq -0x8(%rbp), %rdi
callq 0x1a3e0
movq -0x28(%rbp), %rax
movl 0x54(%rax), %esi
leaq -0x8(%rbp), %rdi
callq 0x1a3e0
movq -0x28(%rbp), %rax
movl 0x58(%rax), %esi
leaq -0x8(%rbp), %rdi
callq 0x1a3e0
movq -0x28(%rbp), %rax
movl 0x5c(%rax), %esi
leaq -0x8(%rbp), %rdi
callq 0x1a3e0
movq -0x28(%rbp), %rax
movswl 0x60(%rax), %esi
leaq -0x8(%rbp), %rdi
callq 0x1a490
movq -0x28(%rbp), %rax
movswl 0x62(%rax), %esi
leaq -0x8(%rbp), %rdi
callq 0x1a490
movq -0x28(%rbp), %rax
movl 0x64(%rax), %esi
leaq -0x8(%rbp), %rdi
callq 0x1a3e0
movq -0x28(%rbp), %rax
movl 0x68(%rax), %esi
leaq -0x8(%rbp), %rdi
callq 0x1a3e0
movq -0x28(%rbp), %rax
cmpl $0x1, 0x4(%rax)
jle 0xdb03
movq -0x28(%rbp), %rax
movl 0x6c(%rax), %esi
leaq -0x8(%rbp), %rdi
callq 0x1a3e0
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)