// File: /workspace/github_c_makefile_star2_O0/FredTheDino[P]Fog/src/engine/util/tweak_values.cpp
// Function: Util::tweak(char const*, Span*, float)
b8 tweak(const char *name, Span *value, f32 modifier) {
    if (!debug_values_are_on()) return false;
    const char *buffer = Util::format_int(" %s: %.4f, %.4f", name, value->min, value->max);
    debug_value_logic(name, buffer);

    if (name == global_tweak.hot) {
        Vec2 delta = {};
        if (Input::down(TWEAK_STEP)) {
            Vec2i int_delta = moved_over_boundry();
            delta = V2(int_delta.x, int_delta.y);
            if (Input::down(TWEAK_SMOOTH))
                delta *= 0.1;
            if (delta.x) {
                value->min += delta.x;
                precise_snap(&value->min);
            }

            if (delta.y) {
                value->min += delta.y;
                precise_snap(&value->min);
            }
        } else {
            delta = hadamard(V2(1, -1), scaled_mouse_movements());
            value->min += delta.x * modifier;
            value->max += delta.y * modifier;
        }
        return delta.x != 0 || delta.y != 0;
    }
    return false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movss %xmm0, -0x1c(%rbp)
callq 0xf630
cmpb $0x0, %al
jne 0xec47
movb $0x0, -0x1(%rbp)
jmp 0xee3e
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rax
movss (%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movq -0x18(%rbp), %rax
movss 0x4(%rax), %xmm1
cvtss2sd %xmm1, %xmm1
leaq 0x37c2c(%rip), %rdi     # 0x46897
movb $0x2, %al
callq 0x102c0
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0x312c0
movq -0x10(%rbp), %rax
leaq 0x5b19a(%rip), %rcx     # 0x69e28
cmpq 0x20(%rcx), %rax
jne 0xee3a
leaq -0x30(%rbp), %rdi
xorl %esi, %esi
movl $0x8, %edx
callq 0x21c0
leaq 0x6fd01(%rip), %rax     # 0x7e9b0
movl (%rax), %edi
movl $0xf, %esi
callq 0x11650
cmpb $0x0, %al
je 0xed88
callq 0x31440
movq %rax, -0x38(%rbp)
cvtsi2ssl -0x38(%rbp), %xmm0
cvtsi2ssl -0x34(%rbp), %xmm1
callq 0xbc10
movlpd %xmm0, -0x40(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq 0x6fcbd(%rip), %rax     # 0x7e9ac
movl (%rax), %edi
movl $0xf, %esi
callq 0x11650
cmpb $0x0, %al
je 0xed10
leaq -0x30(%rbp), %rdi
movss 0x36509(%rip), %xmm0    # 0x45214
callq 0x420d0
movss -0x30(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0xed21
jp 0xed21
jmp 0xed4b
movss -0x30(%rbp), %xmm0
movq -0x18(%rbp), %rax
addss (%rax), %xmm0
movss %xmm0, (%rax)
movq -0x18(%rbp), %rdi
movss 0x362ca(%rip), %xmm0    # 0x45008
movss 0x364ce(%rip), %xmm1    # 0x45214
callq 0x31500
movss -0x2c(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0xed5c
jp 0xed5c
jmp 0xed86
movss -0x2c(%rbp), %xmm0
movq -0x18(%rbp), %rax
addss (%rax), %xmm0
movss %xmm0, (%rax)
movq -0x18(%rbp), %rdi
movss 0x3628f(%rip), %xmm0    # 0x45008
movss 0x36493(%rip), %xmm1    # 0x45214
callq 0x31500
jmp 0xee06
movss 0x36278(%rip), %xmm0    # 0x45008
movss 0x36280(%rip), %xmm1    # 0x45018
callq 0xbc10
movlpd %xmm0, -0x50(%rbp)
callq 0x31410
movlpd %xmm0, -0x58(%rbp)
movsd -0x50(%rbp), %xmm0
movsd -0x58(%rbp), %xmm1
callq 0xb450
movlpd %xmm0, -0x48(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0x30(%rbp)
movss -0x30(%rbp), %xmm0
movss -0x1c(%rbp), %xmm2
movq -0x18(%rbp), %rax
movss (%rax), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, (%rax)
movss -0x2c(%rbp), %xmm0
movss -0x1c(%rbp), %xmm2
movq -0x18(%rbp), %rax
movss 0x4(%rax), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0x4(%rax)
movss -0x30(%rbp), %xmm0
movb $0x1, %al
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
movb %al, -0x59(%rbp)
jne 0xee30
jp 0xee30
movss -0x2c(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
setne %al
setp %cl
orb %cl, %al
movb %al, -0x59(%rbp)
movb -0x59(%rbp), %al
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0xee3e
movb $0x0, -0x1(%rbp)
movb -0x1(%rbp), %al
addq $0x60, %rsp
popq %rbp
retq
nopw (%rax,%rax)