// File: /workspace/github_cpp_makefile_star2_O2/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
movl $0x1558, %edx           # imm = 0x1558
xorl %esi, %esi
callq 0xc270
movabsq $-0x407fffff40800000, %rax # imm = 0xBF800000BF800000
movq %rax, 0x8(%rbx)
movabsq $0x40a000003c888889, %rax # imm = 0x40A000003C888889
movq %rax, 0x10(%rbx)
leaq 0x69a32(%rip), %rax     # 0x9d16c
movq %rax, 0x18(%rbx)
leaq 0x69a31(%rip), %rax     # 0x9d176
movq %rax, 0x20(%rbx)
movabsq $0x40c000003e99999a, %rax # imm = 0x40C000003E99999A
movq %rax, 0x28(%rbx)
cmpq $0x16, %r14
je 0x33768
orl $-0x1, 0x34(%rbx,%r14,4)
incq %r14
jmp 0x33757
movabsq $0x3d4ccccd3e8ccccd, %rax # imm = 0x3D4CCCCD3E8CCCCD
movq %rax, 0x8c(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x98(%rbx)
movl $0x3f800000, 0xa8(%rbx) # imm = 0x3F800000
andq $0x0, 0xb0(%rbx)
xorl %eax, %eax
movb %al, 0xac(%rbx)
movabsq $0x3f8000003f800000, %rcx # imm = 0x3F8000003F800000
movq %rcx, 0xb8(%rbx)
movb %al, 0xc0(%rbx)
movb %al, 0xc1(%rbx)
movb $0x1, %cl
movb %cl, 0xc2(%rbx)
movb %cl, 0xc4(%rbx)
movb %al, 0xc5(%rbx)
movl $0x42700000, 0xc8(%rbx) # imm = 0x42700000
movups %xmm0, 0xd0(%rbx)
movups %xmm0, 0xe0(%rbx)
andq $0x0, 0xf0(%rbx)
leaq 0xb5(%rip), %rax        # 0x338aa
movq %rax, 0xf8(%rbx)
leaq 0xc8(%rip), %rax        # 0x338cb
movq %rax, 0x100(%rbx)
andq $0x0, 0x108(%rbx)
leaq 0x11a(%rip), %rax       # 0x33933
movq %rax, 0x110(%rbx)
andq $0x0, 0x118(%rbx)
movabsq $-0x80000000800001, %rax # imm = 0xFF7FFFFFFF7FFFFF
movq %rax, 0x120(%rbx)
movq %rax, 0x3bc(%rbx)
movl $0x40c00000, 0x30(%rbx) # imm = 0x40C00000
pushq $-0x14
popq %rax
movl $0xbf800000, %ecx       # imm = 0xBF800000
testq %rax, %rax
je 0x33868
movl %ecx, 0x45c(%rbx,%rax)
movl %ecx, 0x448(%rbx,%rax)
addq $0x4, %rax
jmp 0x3384f
movq $-0x800, %rax           # imm = 0xF800
movl $0xbf800000, %ecx       # imm = 0xBF800000
testq %rax, %rax
je 0x3388d
movl %ecx, 0x1498(%rbx,%rax)
movl %ecx, 0xc98(%rbx,%rax)
addq $0x4, %rax
jmp 0x33874
xorl %eax, %eax
cmpq $0x15, %rax
je 0x338a5
movl $0xbf800000, 0x1498(%rbx,%rax,4) # imm = 0xBF800000
incq %rax
jmp 0x3388f
popq %rbx
popq %r14
popq %rbp
retq