// File: donfreiday[P]gb/./imgui/imgui.cpp
// Function: ImGuiIO::ImGuiIO()
ImGuiIO::ImGuiIO()
{
    // Most fields are initialized with zero
    memset(this, 0, sizeof(*this));

    DisplaySize = ImVec2(-1.0f, -1.0f);
    DeltaTime = 1.0f/60.0f;
    IniSavingRate = 5.0f;
    IniFilename = "imgui.ini";
    LogFilename = "imgui_log.txt";
    Fonts = &GImDefaultFontAtlas;
    FontGlobalScale = 1.0f;
    DisplayFramebufferScale = ImVec2(1.0f, 1.0f);
    MousePos = ImVec2(-1,-1);
    MousePosPrev = ImVec2(-1,-1);
    MouseDoubleClickTime = 0.30f;
    MouseDoubleClickMaxDist = 6.0f;
    MouseDragThreshold = 6.0f;
    for (int i = 0; i < ImGuiKey_COUNT; i++)
        KeyMap[i] = -1;
    KeyRepeatDelay = 0.250f;
    KeyRepeatRate = 0.050f;
    UserData = NULL;

    // User functions
    RenderDrawListsFn = NULL;
    MemAllocFn = malloc;
    MemFreeFn = free;
    GetClipboardTextFn = GetClipboardTextFn_DefaultImpl;   // Platform dependent default implementations
    SetClipboardTextFn = SetClipboardTextFn_DefaultImpl;
    ImeSetInputScreenPosFn = ImeSetInputScreenPosFn_DefaultImpl;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x48(%rbp)
callq 0x2d230
movq -0x48(%rbp), %rdi
addq $0x98, %rdi
callq 0x2d230
movq -0x48(%rbp), %rdi
addq $0xa0, %rdi
callq 0x2d230
movq -0x48(%rbp), %rdi
addq $0xa8, %rdi
callq 0x2d230
movq -0x48(%rbp), %rdi
addq $0xe8, %rdi
callq 0x2d230
movq -0x48(%rbp), %rdi
addq $0x33c, %rdi            # imm = 0x33C
callq 0x2d230
movq -0x48(%rbp), %rdi
addq $0x344, %rdi            # imm = 0x344
callq 0x2d230
movq -0x48(%rbp), %rax
addq $0x354, %rax            # imm = 0x354
movq %rax, %rcx
addq $0x28, %rcx
movq %rcx, -0x40(%rbp)
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rdi
movq %rdi, -0x50(%rbp)
callq 0x2d230
movq -0x50(%rbp), %rax
movq -0x40(%rbp), %rcx
addq $0x8, %rax
cmpq %rcx, %rax
movq %rax, -0x38(%rbp)
jne 0x8b92
movq -0x48(%rbp), %rdi
xorl %esi, %esi
movl $0x13e0, %edx           # imm = 0x13E0
callq 0x7240
leaq -0x10(%rbp), %rdi
movss 0x524ac(%rip), %xmm1    # 0x5b07c
movaps %xmm1, %xmm0
callq 0x2d280
movq -0x48(%rbp), %rax
movq -0x10(%rbp), %rcx
movq %rcx, (%rax)
movss 0x52499(%rip), %xmm0    # 0x5b084
movss %xmm0, 0x8(%rax)
movss 0x52488(%rip), %xmm0    # 0x5b080
movss %xmm0, 0xc(%rax)
leaq 0x526a4(%rip), %rcx     # 0x5b2a8
movq %rcx, 0x10(%rax)
leaq 0x526a3(%rip), %rcx     # 0x5b2b2
movq %rcx, 0x18(%rax)
leaq 0x7a43e(%rip), %rcx     # 0x83058
movq %rcx, 0x88(%rax)
movss 0x523ef(%rip), %xmm0    # 0x5b018
movss %xmm0, 0x90(%rax)
leaq -0x18(%rbp), %rdi
movss 0x523db(%rip), %xmm1    # 0x5b018
movaps %xmm1, %xmm0
callq 0x2d280
movq -0x48(%rbp), %rax
movq -0x18(%rbp), %rcx
movq %rcx, 0x98(%rax)
leaq -0x20(%rbp), %rdi
movss 0x5241c(%rip), %xmm1    # 0x5b07c
movaps %xmm1, %xmm0
callq 0x2d280
movq -0x48(%rbp), %rax
movq -0x20(%rbp), %rcx
movq %rcx, 0xe8(%rax)
leaq -0x28(%rbp), %rdi
movss 0x523f9(%rip), %xmm1    # 0x5b07c
movaps %xmm1, %xmm0
callq 0x2d280
movq -0x48(%rbp), %rax
movq -0x28(%rbp), %rcx
movq %rcx, 0x33c(%rax)
movss 0x52386(%rip), %xmm0    # 0x5b028
movss %xmm0, 0x20(%rax)
movss 0x523bd(%rip), %xmm0    # 0x5b06c
movss %xmm0, 0x24(%rax)
movss 0x523b0(%rip), %xmm0    # 0x5b06c
movss %xmm0, 0x28(%rax)
movl $0x0, -0x2c(%rbp)
cmpl $0x13, -0x2c(%rbp)
jge 0x8ce9
movq -0x48(%rbp), %rax
movslq -0x2c(%rbp), %rcx
movl $0xffffffff, 0x2c(%rax,%rcx,4) # imm = 0xFFFFFFFF
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0x8cc8
movq -0x48(%rbp), %rax
movss 0x52393(%rip), %xmm0    # 0x5b088
movss %xmm0, 0x78(%rax)
movss 0x5230a(%rip), %xmm0    # 0x5b00c
movss %xmm0, 0x7c(%rax)
movq $0x0, 0x80(%rax)
movq $0x0, 0xb0(%rax)
movq 0x702bc(%rip), %rcx     # 0x78fe0
movq %rcx, 0xc8(%rax)
movq 0x7027e(%rip), %rcx     # 0x78fb0
movq %rcx, 0xd0(%rax)
leaq 0x30(%rip), %rcx        # 0x8d70
movq %rcx, 0xb8(%rax)
leaq 0x42(%rip), %rcx        # 0x8d90
movq %rcx, 0xc0(%rax)
leaq 0x104(%rip), %rcx       # 0x8e60
movq %rcx, 0xd8(%rax)
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax)