// File: /workspace/github_c_makefile_star2_O0/FredTheDino[P]Fog/src/engine/logic/block_physics.cpp
// Function: Physics::point_in_box(Vec2, Vec2, Vec2, float)
b8 point_in_box(Vec2 p, Vec2 center, Vec2 dim, f32 rotation) {
    p = rotate(p, -rotation);
    center = rotate(center, -rotation);
    Vec2 delta = p - center;
    return ABS(delta.x) < ABS(dim.x * 0.5) && ABS(delta.y) < ABS(dim.y * 0.5);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
movlpd %xmm0, -0x8(%rbp)
movlpd %xmm1, -0x10(%rbp)
movlpd %xmm2, -0x18(%rbp)
movss %xmm3, -0x1c(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x30(%rbp)
movss -0x1c(%rbp), %xmm1
movaps 0x12a9d(%rip), %xmm0    # 0x45a00
movaps %xmm0, -0x60(%rbp)
pxor %xmm0, %xmm1
movsd -0x30(%rbp), %xmm0
callq 0xb500
movaps %xmm0, %xmm1
movaps -0x60(%rbp), %xmm0
movlpd %xmm1, -0x24(%rbp)
movq -0x24(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x40(%rbp)
movss -0x1c(%rbp), %xmm1
pxor %xmm0, %xmm1
movsd -0x40(%rbp), %xmm0
callq 0xb500
movlpd %xmm0, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x50(%rbp)
movsd -0x50(%rbp), %xmm0
leaq -0x8(%rbp), %rdi
callq 0x5850
movlpd %xmm0, -0x48(%rbp)
xorps %xmm0, %xmm0
ucomiss -0x48(%rbp), %xmm0
jbe 0x32fee
movss -0x48(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x64(%rbp)
jmp 0x32ff8
movss -0x48(%rbp), %xmm0
movss %xmm0, -0x64(%rbp)
movss -0x64(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x70(%rbp)
movss -0x18(%rbp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x12039(%rip), %xmm0    # 0x45050
mulsd %xmm0, %xmm1
xorps %xmm0, %xmm0
ucomisd %xmm1, %xmm0
jbe 0x33057
movss -0x18(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x1201b(%rip), %xmm1    # 0x45050
mulsd %xmm1, %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x78(%rbp)
jmp 0x33071
movss -0x18(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x11fe8(%rip), %xmm1    # 0x45050
mulsd %xmm1, %xmm0
movsd %xmm0, -0x78(%rbp)
movsd -0x70(%rbp), %xmm1
movsd -0x78(%rbp), %xmm0
xorl %eax, %eax
ucomisd %xmm1, %xmm0
movb %al, -0x79(%rbp)
jbe 0x33152
xorps %xmm0, %xmm0
ucomiss -0x44(%rbp), %xmm0
jbe 0x330ac
movss -0x44(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x80(%rbp)
jmp 0x330b6
movss -0x44(%rbp), %xmm0
movss %xmm0, -0x80(%rbp)
movss -0x80(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x88(%rbp)
movss -0x14(%rbp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x11f78(%rip), %xmm0    # 0x45050
mulsd %xmm0, %xmm1
xorps %xmm0, %xmm0
ucomisd %xmm1, %xmm0
jbe 0x3311b
movss -0x14(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x11f5a(%rip), %xmm1    # 0x45050
mulsd %xmm1, %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x90(%rbp)
jmp 0x33138
movss -0x14(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x11f24(%rip), %xmm1    # 0x45050
mulsd %xmm1, %xmm0
movsd %xmm0, -0x90(%rbp)
movsd -0x88(%rbp), %xmm1
movsd -0x90(%rbp), %xmm0
ucomisd %xmm1, %xmm0
seta %al
movb %al, -0x79(%rbp)
movb -0x79(%rbp), %al
andb $0x1, %al
addq $0x90, %rsp
popq %rbp
retq