// File: mortennobel[P]glMatrix-vs-GLM-Benchmark/main.cpp
// Function: createRandomMatrix()
m4 createRandomMatrix(){
    return m4(
                     rnd(100),rnd(100),rnd(100),rnd(100),
                     rnd(100),rnd(100),rnd(100),rnd(100),
                     rnd(100),rnd(100),rnd(100),rnd(100),
                     rnd(100),rnd(100),rnd(100),rnd(100)
                     );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x220, %rsp            # imm = 0x220
movq %rdi, -0x218(%rbp)
movq %rdi, %rax
movq %rax, -0x220(%rbp)
movq %rdi, -0x1b8(%rbp)
movss 0x1c029(%rip), %xmm0    # 0x27054
callq 0xafd0
movss %xmm0, -0x1bc(%rbp)
movss 0x1c014(%rip), %xmm0    # 0x27054
callq 0xafd0
movss %xmm0, -0x1c0(%rbp)
movss 0x1bfff(%rip), %xmm0    # 0x27054
callq 0xafd0
movss %xmm0, -0x1c4(%rbp)
movss 0x1bfea(%rip), %xmm0    # 0x27054
callq 0xafd0
movss %xmm0, -0x1c8(%rbp)
movss 0x1bfd5(%rip), %xmm0    # 0x27054
callq 0xafd0
movss %xmm0, -0x1cc(%rbp)
movss 0x1bfc0(%rip), %xmm0    # 0x27054
callq 0xafd0
movss %xmm0, -0x1d0(%rbp)
movss 0x1bfab(%rip), %xmm0    # 0x27054
callq 0xafd0
movss %xmm0, -0x1d4(%rbp)
movss 0x1bf96(%rip), %xmm0    # 0x27054
callq 0xafd0
movss %xmm0, -0x1d8(%rbp)
movss 0x1bf81(%rip), %xmm0    # 0x27054
callq 0xafd0
movss %xmm0, -0x1dc(%rbp)
movss 0x1bf6c(%rip), %xmm0    # 0x27054
callq 0xafd0
movss %xmm0, -0x1e0(%rbp)
movss 0x1bf57(%rip), %xmm0    # 0x27054
callq 0xafd0
movss %xmm0, -0x1e4(%rbp)
movss 0x1bf42(%rip), %xmm0    # 0x27054
callq 0xafd0
movss %xmm0, -0x1e8(%rbp)
movss 0x1bf2d(%rip), %xmm0    # 0x27054
callq 0xafd0
movss %xmm0, -0x1ec(%rbp)
movss 0x1bf18(%rip), %xmm0    # 0x27054
callq 0xafd0
movss %xmm0, -0x1f0(%rbp)
movss 0x1bf03(%rip), %xmm0    # 0x27054
callq 0xafd0
movss %xmm0, -0x1f4(%rbp)
movss 0x1beee(%rip), %xmm0    # 0x27054
callq 0xafd0
movq -0x218(%rbp), %rdi
movss %xmm0, -0x1f8(%rbp)
movq %rdi, -0xf0(%rbp)
leaq -0x1bc(%rbp), %rax
movq %rax, -0xf8(%rbp)
leaq -0x1c0(%rbp), %rax
movq %rax, -0x100(%rbp)
leaq -0x1c4(%rbp), %rax
movq %rax, -0x108(%rbp)
leaq -0x1c8(%rbp), %rax
movq %rax, -0x110(%rbp)
leaq -0x1cc(%rbp), %rax
movq %rax, -0x118(%rbp)
leaq -0x1d0(%rbp), %rax
movq %rax, -0x120(%rbp)
leaq -0x1d4(%rbp), %rax
movq %rax, -0x128(%rbp)
leaq -0x1d8(%rbp), %rax
movq %rax, -0x130(%rbp)
leaq -0x1dc(%rbp), %rax
movq %rax, -0x138(%rbp)
leaq -0x1e0(%rbp), %rax
movq %rax, -0x140(%rbp)
leaq -0x1e4(%rbp), %rax
movq %rax, -0x148(%rbp)
leaq -0x1e8(%rbp), %rax
movq %rax, -0x150(%rbp)
leaq -0x1ec(%rbp), %rax
movq %rax, -0x158(%rbp)
leaq -0x1f0(%rbp), %rax
movq %rax, -0x160(%rbp)
leaq -0x1f4(%rbp), %rax
movq %rax, -0x168(%rbp)
leaq -0x1f8(%rbp), %rax
movq %rax, -0x170(%rbp)
movq -0xf0(%rbp), %rax
movq %rax, -0x210(%rbp)
movq %rax, %rcx
addq $0x40, %rcx
movq %rcx, -0x208(%rbp)
movq %rax, -0x200(%rbp)
movq -0x200(%rbp), %rax
movq -0x208(%rbp), %rcx
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rdx
xorps %xmm0, %xmm0
movss %xmm0, (%rdx)
xorps %xmm0, %xmm0
movss %xmm0, 0x4(%rdx)
xorps %xmm0, %xmm0
movss %xmm0, 0x8(%rdx)
xorps %xmm0, %xmm0
movss %xmm0, 0xc(%rdx)
addq $0x10, %rax
cmpq %rcx, %rax
movq %rax, -0x200(%rbp)
jne 0xb284
movq -0x220(%rbp), %rax
movq -0x210(%rbp), %rcx
movq -0xf8(%rbp), %r8
movq -0x100(%rbp), %rdi
movq -0x108(%rbp), %rsi
movq -0x110(%rbp), %rdx
leaq -0x180(%rbp), %r9
movq %r9, -0x10(%rbp)
movq %r8, -0x18(%rbp)
movq %rdi, -0x20(%rbp)
movq %rsi, -0x28(%rbp)
movq %rdx, -0x30(%rbp)
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rsi
movss (%rsi), %xmm0
movss %xmm0, (%rdx)
movq -0x20(%rbp), %rsi
movss (%rsi), %xmm0
movss %xmm0, 0x4(%rdx)
movq -0x28(%rbp), %rsi
movss (%rsi), %xmm0
movss %xmm0, 0x8(%rdx)
movq -0x30(%rbp), %rsi
movss (%rsi), %xmm0
movss %xmm0, 0xc(%rdx)
movq %rcx, -0xb0(%rbp)
leaq -0x180(%rbp), %rdx
movq %rdx, -0xb8(%rbp)
movq -0xb0(%rbp), %rdx
movq -0xb8(%rbp), %rsi
movss (%rsi), %xmm0
movss %xmm0, (%rdx)
movq -0xb8(%rbp), %rsi
movss 0x4(%rsi), %xmm0
movss %xmm0, 0x4(%rdx)
movq -0xb8(%rbp), %rsi
movss 0x8(%rsi), %xmm0
movss %xmm0, 0x8(%rdx)
movq -0xb8(%rbp), %rsi
movss 0xc(%rsi), %xmm0
movss %xmm0, 0xc(%rdx)
movq -0x118(%rbp), %r8
movq -0x120(%rbp), %rdi
movq -0x128(%rbp), %rsi
movq -0x130(%rbp), %rdx
leaq -0x190(%rbp), %r9
movq %r9, -0x38(%rbp)
movq %r8, -0x40(%rbp)
movq %rdi, -0x48(%rbp)
movq %rsi, -0x50(%rbp)
movq %rdx, -0x58(%rbp)
movq -0x38(%rbp), %rdx
movq -0x40(%rbp), %rsi
movss (%rsi), %xmm0
movss %xmm0, (%rdx)
movq -0x48(%rbp), %rsi
movss (%rsi), %xmm0
movss %xmm0, 0x4(%rdx)
movq -0x50(%rbp), %rsi
movss (%rsi), %xmm0
movss %xmm0, 0x8(%rdx)
movq -0x58(%rbp), %rsi
movss (%rsi), %xmm0
movss %xmm0, 0xc(%rdx)
movq %rcx, %rdx
addq $0x10, %rdx
movq %rdx, -0xc0(%rbp)
leaq -0x190(%rbp), %rdx
movq %rdx, -0xc8(%rbp)
movq -0xc0(%rbp), %rdx
movq -0xc8(%rbp), %rsi
movss (%rsi), %xmm0
movss %xmm0, (%rdx)
movq -0xc8(%rbp), %rsi
movss 0x4(%rsi), %xmm0
movss %xmm0, 0x4(%rdx)
movq -0xc8(%rbp), %rsi
movss 0x8(%rsi), %xmm0
movss %xmm0, 0x8(%rdx)
movq -0xc8(%rbp), %rsi
movss 0xc(%rsi), %xmm0
movss %xmm0, 0xc(%rdx)
movq -0x138(%rbp), %r8
movq -0x140(%rbp), %rdi
movq -0x148(%rbp), %rsi
movq -0x150(%rbp), %rdx
leaq -0x1a0(%rbp), %r9
movq %r9, -0x60(%rbp)
movq %r8, -0x68(%rbp)
movq %rdi, -0x70(%rbp)
movq %rsi, -0x78(%rbp)
movq %rdx, -0x80(%rbp)
movq -0x60(%rbp), %rdx
movq -0x68(%rbp), %rsi
movss (%rsi), %xmm0
movss %xmm0, (%rdx)
movq -0x70(%rbp), %rsi
movss (%rsi), %xmm0
movss %xmm0, 0x4(%rdx)
movq -0x78(%rbp), %rsi
movss (%rsi), %xmm0
movss %xmm0, 0x8(%rdx)
movq -0x80(%rbp), %rsi
movss (%rsi), %xmm0
movss %xmm0, 0xc(%rdx)
movq %rcx, %rdx
addq $0x20, %rdx
movq %rdx, -0xd0(%rbp)
leaq -0x1a0(%rbp), %rdx
movq %rdx, -0xd8(%rbp)
movq -0xd0(%rbp), %rdx
movq -0xd8(%rbp), %rsi
movss (%rsi), %xmm0
movss %xmm0, (%rdx)
movq -0xd8(%rbp), %rsi
movss 0x4(%rsi), %xmm0
movss %xmm0, 0x4(%rdx)
movq -0xd8(%rbp), %rsi
movss 0x8(%rsi), %xmm0
movss %xmm0, 0x8(%rdx)
movq -0xd8(%rbp), %rsi
movss 0xc(%rsi), %xmm0
movss %xmm0, 0xc(%rdx)
movq -0x158(%rbp), %r8
movq -0x160(%rbp), %rdi
movq -0x168(%rbp), %rsi
movq -0x170(%rbp), %rdx
leaq -0x1b0(%rbp), %r9
movq %r9, -0x88(%rbp)
movq %r8, -0x90(%rbp)
movq %rdi, -0x98(%rbp)
movq %rsi, -0xa0(%rbp)
movq %rdx, -0xa8(%rbp)
movq -0x88(%rbp), %rdx
movq -0x90(%rbp), %rsi
movss (%rsi), %xmm0
movss %xmm0, (%rdx)
movq -0x98(%rbp), %rsi
movss (%rsi), %xmm0
movss %xmm0, 0x4(%rdx)
movq -0xa0(%rbp), %rsi
movss (%rsi), %xmm0
movss %xmm0, 0x8(%rdx)
movq -0xa8(%rbp), %rsi
movss (%rsi), %xmm0
movss %xmm0, 0xc(%rdx)
addq $0x30, %rcx
movq %rcx, -0xe0(%rbp)
leaq -0x1b0(%rbp), %rcx
movq %rcx, -0xe8(%rbp)
movq -0xe0(%rbp), %rcx
movq -0xe8(%rbp), %rdx
movss (%rdx), %xmm0
movss %xmm0, (%rcx)
movq -0xe8(%rbp), %rdx
movss 0x4(%rdx), %xmm0
movss %xmm0, 0x4(%rcx)
movq -0xe8(%rbp), %rdx
movss 0x8(%rdx), %xmm0
movss %xmm0, 0x8(%rcx)
movq -0xe8(%rbp), %rdx
movss 0xc(%rdx), %xmm0
movss %xmm0, 0xc(%rcx)
addq $0x220, %rsp            # imm = 0x220
popq %rbp
retq