// File: /workspace/github_cpp_makefile_star2_O1/Ciaxur[P]yagb-emu/include/imgui/imgui.cpp
// Function: ImGuiIO::ImGuiIO()
ImGuiIO::ImGuiIO()
{
    // Most fields are initialized with zero
    memset(this, 0, sizeof(*this));
    IM_ASSERT(IM_ARRAYSIZE(ImGuiIO::MouseDown) == ImGuiMouseButton_COUNT && IM_ARRAYSIZE(ImGuiIO::MouseClicked) == ImGuiMouseButton_COUNT); // Our pre-C++11 IM_STATIC_ASSERT() macros triggers warning on modern compilers so we don't use it here.

    // Settings
    ConfigFlags = ImGuiConfigFlags_None;
    BackendFlags = ImGuiBackendFlags_None;
    DisplaySize = ImVec2(-1.0f, -1.0f);
    DeltaTime = 1.0f / 60.0f;
    IniSavingRate = 5.0f;
    IniFilename = "imgui.ini";
    LogFilename = "imgui_log.txt";
    MouseDoubleClickTime = 0.30f;
    MouseDoubleClickMaxDist = 6.0f;
    for (int i = 0; i < ImGuiKey_COUNT; i++)
        KeyMap[i] = -1;
    KeyRepeatDelay = 0.275f;
    KeyRepeatRate = 0.050f;
    UserData = NULL;

    Fonts = NULL;
    FontGlobalScale = 1.0f;
    FontDefault = NULL;
    FontAllowUserScaling = false;
    DisplayFramebufferScale = ImVec2(1.0f, 1.0f);

    // Miscellaneous options
    MouseDrawCursor = false;
#ifdef __APPLE__
    ConfigMacOSXBehaviors = true;  // Set Mac OS X style defaults based on __APPLE__ compile time flag
#else
    ConfigMacOSXBehaviors = false;
#endif
    ConfigInputTextCursorBlink = true;
    ConfigWindowsResizeFromEdges = true;
    ConfigWindowsMoveFromTitleBarOnly = false;
    ConfigMemoryCompactTimer = 60.0f;

    // Platform Functions
    BackendPlatformName = BackendRendererName = NULL;
    BackendPlatformUserData = BackendRendererUserData = BackendLanguageUserData = NULL;
    GetClipboardTextFn = GetClipboardTextFn_DefaultImpl;   // Platform dependent default implementations
    SetClipboardTextFn = SetClipboardTextFn_DefaultImpl;
    ClipboardUserData = NULL;
    ImeSetInputScreenPosFn = ImeSetInputScreenPosFn_DefaultImpl;
    ImeWindowHandle = NULL;

    // Input (NB: we already have memset zero the entire structure!)
    MousePos = ImVec2(-FLT_MAX, -FLT_MAX);
    MousePosPrev = ImVec2(-FLT_MAX, -FLT_MAX);
    MouseDragThreshold = 6.0f;
    for (int i = 0; i < IM_ARRAYSIZE(MouseDownDuration); i++) MouseDownDuration[i] = MouseDownDurationPrev[i] = -1.0f;
    for (int i = 0; i < IM_ARRAYSIZE(KeysDownDuration); i++) KeysDownDuration[i]  = KeysDownDurationPrev[i] = -1.0f;
    for (int i = 0; i < IM_ARRAYSIZE(NavInputsDownDuration); i++) NavInputsDownDuration[i] = -1.0f;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movq %rdi, %rbx
xorl %r14d, %r14d
movq %r14, 0x8(%rdi)
movq %r14, 0xb8(%rdi)
movq %r14, 0x120(%rdi)
movq %r14, 0x3b0(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x3bc(%rdi)
movups %xmm0, 0x3cc(%rdi)
movups %xmm0, 0x3dc(%rdi)
movups %xmm0, 0x45c(%rdi)
movups %xmm0, 0x46c(%rdi)
movq %r14, 0x47c(%rdi)
movl $0x1558, %edx           # imm = 0x1558
xorl %esi, %esi
callq 0xc260
movdqa 0x767eb(%rip), %xmm0    # 0xb77c0
movdqu %xmm0, 0x8(%rbx)
leaq 0x7715b(%rip), %rax     # 0xb813c
movq %rax, 0x18(%rbx)
leaq 0x7715a(%rip), %rax     # 0xb8146
movq %rax, 0x20(%rbx)
movabsq $0x40c000003e99999a, %rax # imm = 0x40C000003E99999A
movq %rax, 0x28(%rbx)
pcmpeqd %xmm0, %xmm0
movdqu %xmm0, 0x34(%rbx)
movdqu %xmm0, 0x44(%rbx)
movdqu %xmm0, 0x54(%rbx)
movdqu %xmm0, 0x64(%rbx)
movdqu %xmm0, 0x74(%rbx)
movq $-0x1, 0x84(%rbx)
movabsq $0x3d4ccccd3e8ccccd, %rax # imm = 0x3D4CCCCD3E8CCCCD
movq %rax, 0x8c(%rbx)
pxor %xmm0, %xmm0
movdqu %xmm0, 0x98(%rbx)
movl $0x3f800000, 0xa8(%rbx) # imm = 0x3F800000
movq %r14, 0xb0(%rbx)
movb $0x0, 0xac(%rbx)
movabsq $0x3f8000003f800000, %rax # imm = 0x3F8000003F800000
movq %rax, 0xb8(%rbx)
movw $0x0, 0xc0(%rbx)
movb $0x1, 0xc2(%rbx)
movw $0x1, 0xc4(%rbx)
movl $0x42700000, 0xc8(%rbx) # imm = 0x42700000
movq %r14, 0xf0(%rbx)
movdqu %xmm0, 0xe0(%rbx)
movdqu %xmm0, 0xd0(%rbx)
leaq 0xa9(%rip), %rax        # 0x41156
movq %rax, 0xf8(%rbx)
leaq 0xbc(%rip), %rax        # 0x41177
movq %rax, 0x100(%rbx)
movq %r14, 0x108(%rbx)
leaq 0x239(%rip), %rax       # 0x41309
movq %rax, 0x110(%rbx)
movq %r14, 0x118(%rbx)
movabsq $-0x80000000800001, %rax # imm = 0xFF7FFFFFFF7FFFFF
movq %rax, 0x120(%rbx)
movq %rax, 0x3bc(%rbx)
movl $0x40c00000, 0x30(%rbx) # imm = 0x40C00000
movq $-0x5, %rax
movl $0xbf800000, %ecx       # imm = 0xBF800000
movl %ecx, 0x45c(%rbx,%rax,4)
movl %ecx, 0x448(%rbx,%rax,4)
incq %rax
jne 0x41109
movq $-0x200, %rax           # imm = 0xFE00
movl $0xbf800000, %ecx       # imm = 0xBF800000
movl %ecx, 0x1498(%rbx,%rax,4)
movl %ecx, 0xc98(%rbx,%rax,4)
incq %rax
jne 0x41128
xorl %eax, %eax
movl $0xbf800000, 0x1498(%rbx,%rax,4) # imm = 0xBF800000
incq %rax
cmpq $0x15, %rax
jne 0x4113d
popq %rbx
popq %r14
popq %rbp
retq