// File: /workspace/github_c_makefile_star2_O0/FredTheDino[P]Fog/src/engine/unix_main.cpp
// Function: Fog::setup_debug_keybinds()
void setup_debug_keybinds() {
    using namespace Input;
    CHECK(add(K(F10), QUIT),
          "Failed to create mapping");

    CHECK(add(K(LSHIFT), TWEAK_SMOOTH),
          "Failed to create mapping");

    CHECK(add(K(LCTRL), TWEAK_STEP),
          "Failed to create mapping");

    CHECK(add(K(F1), DEBUG_PERF),
          "Failed to create mapping");

    CHECK(add(K(F2), DEBUG_VIEW),
          "Failed to create mapping");

    CHECK(add(K(F3), DEBUG_VALUES),
          "Failed to create mapping");

    const auto debug_callback = [](f32, f32, f32, void*) {
        if (pressed(DEBUG_PERF))
            show_perf = !show_perf;
        if (pressed(DEBUG_VIEW))
            debug_view = !debug_view;
        if (pressed(DEBUG_VALUES))
            show_debug_values = !show_debug_values;
    };
    Logic::add_callback(Logic::At::PRE_UPDATE, debug_callback, Logic::now(),
                        Logic::FOREVER);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movl $0x40000043, %edi       # imm = 0x40000043
callq 0x35ee0
movl %eax, %edi
leaq 0x4893d(%rip), %rax     # 0x7e9a8
movl (%rax), %esi
movl $0x1, %edx
callq 0xf4a0
movzbl %al, %eax
cmpl $0x0, %eax
setne %al
andb $0x1, %al
leaq 0x10d21(%rip), %rdi     # 0x46daa
movl $0x81, %esi
leaq 0x10d2e(%rip), %rdx     # 0x46dc3
movzbl %al, %ecx
callq 0xb270
movl $0x400000e1, %edi       # imm = 0x400000E1
callq 0x35ee0
movl %eax, %edi
leaq 0x488fc(%rip), %rax     # 0x7e9ac
movl (%rax), %esi
movl $0x1, %edx
callq 0xf4a0
movzbl %al, %eax
cmpl $0x0, %eax
setne %al
andb $0x1, %al
leaq 0x10cdc(%rip), %rdi     # 0x46daa
movl $0x84, %esi
leaq 0x10d17(%rip), %rdx     # 0x46df1
movzbl %al, %ecx
callq 0xb270
movl $0x400000e0, %edi       # imm = 0x400000E0
callq 0x35ee0
movl %eax, %edi
leaq 0x488bb(%rip), %rax     # 0x7e9b0
movl (%rax), %esi
movl $0x1, %edx
callq 0xf4a0
movzbl %al, %eax
cmpl $0x0, %eax
setne %al
andb $0x1, %al
leaq 0x10c97(%rip), %rdi     # 0x46daa
movl $0x87, %esi
leaq 0x10d0b(%rip), %rdx     # 0x46e2a
movzbl %al, %ecx
callq 0xb270
movl $0x4000003a, %edi       # imm = 0x4000003A
callq 0x35ee0
movl %eax, %edi
leaq 0x4887a(%rip), %rax     # 0x7e9b4
movl (%rax), %esi
movl $0x1, %edx
callq 0xf4a0
movzbl %al, %eax
cmpl $0x0, %eax
setne %al
andb $0x1, %al
leaq 0x10c52(%rip), %rdi     # 0x46daa
movl $0x8a, %esi
leaq 0x10cfc(%rip), %rdx     # 0x46e60
movzbl %al, %ecx
callq 0xb270
movl $0x4000003b, %edi       # imm = 0x4000003B
callq 0x35ee0
movl %eax, %edi
leaq 0x48839(%rip), %rax     # 0x7e9b8
movl (%rax), %esi
movl $0x1, %edx
callq 0xf4a0
movzbl %al, %eax
cmpl $0x0, %eax
setne %al
andb $0x1, %al
leaq 0x10c0d(%rip), %rdi     # 0x46daa
movl $0x8d, %esi
leaq 0x10cea(%rip), %rdx     # 0x46e93
movzbl %al, %ecx
callq 0xb270
movl $0x4000003c, %edi       # imm = 0x4000003C
callq 0x35ee0
movl %eax, %edi
leaq 0x487f8(%rip), %rax     # 0x7e9bc
movl (%rax), %esi
movl $0x1, %edx
callq 0xf4a0
movzbl %al, %eax
cmpl $0x0, %eax
setne %al
andb $0x1, %al
leaq 0x10bc8(%rip), %rdi     # 0x46daa
movl $0x90, %esi
leaq 0x10cd8(%rip), %rdx     # 0x46ec6
movzbl %al, %ecx
callq 0xb270
leaq -0x1(%rbp), %rdi
callq 0x36230
movq %rax, -0x18(%rbp)
callq 0x31860
movq -0x18(%rbp), %rsi
xorl %edi, %edi
movss 0xee02(%rip), %xmm1     # 0x45018
xorps %xmm2, %xmm2
xorl %eax, %eax
movl %eax, %edx
callq 0x31c00
movq %rax, -0xc(%rbp)
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)