// File: /workspace/github_c_makefile_star2_O0/FredTheDino[P]Fog/src/engine/renderer/opengl_renderer.cpp
// Function: Renderer::Impl::push_quad(unsigned int, Vec2, Vec2, Vec2, Vec2, float, Vec4)
void push_quad(u32 layer, Vec2 min, Vec2 min_uv, Vec2 max, Vec2 max_uv,
                      f32 sprite, Vec4 color) {
    LAYER_CHECK(layer);
    Vertex verticies[] = {
        {V2(min.x, min.y), V2(min_uv.x, max_uv.y), sprite, color},
        {V2(max.x, min.y), V2(max_uv.x, max_uv.y), sprite, color},
        {V2(max.x, max.y), V2(max_uv.x, min_uv.y), sprite, color},

        {V2(min.x, min.y), V2(min_uv.x, max_uv.y), sprite, color},
        {V2(max.x, max.y), V2(max_uv.x, min_uv.y), sprite, color},
        {V2(min.x, max.y), V2(min_uv.x, min_uv.y), sprite, color},
    };
    sprite_render_queues[layer].push(LEN(verticies), verticies);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x120, %rsp            # imm = 0x120
movlpd %xmm0, -0x8(%rbp)
movlpd %xmm1, -0x10(%rbp)
movlpd %xmm2, -0x18(%rbp)
movlpd %xmm3, -0x20(%rbp)
movlpd %xmm5, -0x30(%rbp)
movlpd %xmm6, -0x28(%rbp)
movl %edi, -0x34(%rbp)
movss %xmm4, -0x38(%rbp)
xorl %eax, %eax
xorl %ecx, %ecx
cmpl -0x34(%rbp), %ecx
movb %al, -0x111(%rbp)
ja 0x2c47d
cmpl $0x10, -0x34(%rbp)
setb %al
movb %al, -0x111(%rbp)
movb -0x111(%rbp), %al
movzbl %al, %ecx
andl $0x1, %ecx
leaq 0x19bb5(%rip), %rdi     # 0x46045
leaq 0x19c30(%rip), %rdx     # 0x460c7
movl $0x1b6, %esi            # imm = 0x1B6
callq 0xb210
movss -0x8(%rbp), %xmm0
movss -0x4(%rbp), %xmm1
callq 0xbc10
movlpd %xmm0, -0x110(%rbp)
movss -0x10(%rbp), %xmm0
movss -0x1c(%rbp), %xmm1
callq 0xbc10
movlpd %xmm0, -0x108(%rbp)
movss -0x38(%rbp), %xmm0
movss %xmm0, -0x100(%rbp)
movups -0x30(%rbp), %xmm0
movups %xmm0, -0xfc(%rbp)
movss -0x18(%rbp), %xmm0
movss -0x4(%rbp), %xmm1
callq 0xbc10
movlpd %xmm0, -0xec(%rbp)
movss -0x20(%rbp), %xmm0
movss -0x1c(%rbp), %xmm1
callq 0xbc10
movlpd %xmm0, -0xe4(%rbp)
movss -0x38(%rbp), %xmm0
movss %xmm0, -0xdc(%rbp)
movups -0x30(%rbp), %xmm0
movups %xmm0, -0xd8(%rbp)
movss -0x18(%rbp), %xmm0
movss -0x14(%rbp), %xmm1
callq 0xbc10
movlpd %xmm0, -0xc8(%rbp)
movss -0x20(%rbp), %xmm0
movss -0xc(%rbp), %xmm1
callq 0xbc10
movlpd %xmm0, -0xc0(%rbp)
movss -0x38(%rbp), %xmm0
movss %xmm0, -0xb8(%rbp)
movups -0x30(%rbp), %xmm0
movups %xmm0, -0xb4(%rbp)
movss -0x8(%rbp), %xmm0
movss -0x4(%rbp), %xmm1
callq 0xbc10
movlpd %xmm0, -0xa4(%rbp)
movss -0x10(%rbp), %xmm0
movss -0x1c(%rbp), %xmm1
callq 0xbc10
movlpd %xmm0, -0x9c(%rbp)
movss -0x38(%rbp), %xmm0
movss %xmm0, -0x94(%rbp)
movups -0x30(%rbp), %xmm0
movups %xmm0, -0x90(%rbp)
movss -0x18(%rbp), %xmm0
movss -0x14(%rbp), %xmm1
callq 0xbc10
movlpd %xmm0, -0x80(%rbp)
movss -0x20(%rbp), %xmm0
movss -0xc(%rbp), %xmm1
callq 0xbc10
movlpd %xmm0, -0x78(%rbp)
movss -0x38(%rbp), %xmm0
movss %xmm0, -0x70(%rbp)
movups -0x30(%rbp), %xmm0
movups %xmm0, -0x6c(%rbp)
movss -0x8(%rbp), %xmm0
movss -0x14(%rbp), %xmm1
callq 0xbc10
movlpd %xmm0, -0x5c(%rbp)
movss -0x10(%rbp), %xmm0
movss -0xc(%rbp), %xmm1
callq 0xbc10
movlpd %xmm0, -0x54(%rbp)
movss -0x38(%rbp), %xmm0
movss %xmm0, -0x4c(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x40(%rbp)
movl -0x34(%rbp), %eax
leaq 0x589d1(%rip), %rdi     # 0x85010
shlq $0x5, %rax
addq %rax, %rdi
leaq -0x110(%rbp), %rdx
movl $0x6, %esi
callq 0x41b80
addq $0x120, %rsp            # imm = 0x120
popq %rbp
retq