// File: /workspace/github_cpp_makefile_star2_O3/stevedonovan[P]outstreams/speedtest.cpp
// Function: main
int main(int argc, char **argv)
{
    U64 start = millisecs();
    testwrite_f("f.dat");
    U64 diff = millisecs() - start;
    U64 stdio_ms = diff;
    outs("stdio ")(diff)("ms")();
    start = millisecs();
    testwrite_s("s.dat");
    diff = millisecs() - start;
    outs("outstreams ")(diff)("ms")();
    start = millisecs();
    testwrite_i("io.dat");
    diff = millisecs() - start;
    outs("iostreams ")(diff)("ms")();
    exec("rm f.dat s.dat io.dat");
    return 0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x70, %rsp
movq %rsp, %r14
xorl %edi, %edi
movq %r14, %rsi
callq 0x2100
movabsq $-0x431bde82d7b634db, %rax # imm = 0xBCE4217D2849CB25
imulq 0x8(%r14)
movq %rdx, %rbx
movq (%r14), %r15
movq %rdx, %rax
shrq $0x3f, %rax
sarq $0x12, %rbx
addq %rax, %rbx
leaq 0x60(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x198d(%rip), %rsi      # 0x4016
leaq 0x198b(%rip), %rdx      # 0x401b
leaq 0x50(%rsp), %r14
movq %r14, %rdi
callq 0x2996
movq %r14, %rdi
callq 0x2492
movq (%r14), %rdi
cmpq %r12, %rdi
je 0x26ba
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x2120
movq %rsp, %r14
xorl %edi, %edi
movq %r14, %rsi
callq 0x2100
movq (%r14), %rcx
subq %r15, %rcx
movabsq $0x431bde82d7b634db, %rax # imm = 0x431BDE82D7B634DB
imulq 0x8(%r14)
movq %rdx, %rax
shrq $0x3f, %rax
sarq $0x12, %rdx
addq %rdx, %rax
addq %rbx, %rax
imulq $0x3e8, %rcx, %rbx      # imm = 0x3E8
addq %rax, %rbx
leaq 0x3a63(%rip), %rdi      # 0x6160
leaq 0x1958(%rip), %r14      # 0x405c
leaq 0x1911(%rip), %rcx      # 0x401c
movq %r14, %rsi
xorl %edx, %edx
xorl %eax, %eax
callq 0x2c1a
leaq 0x1941(%rip), %rsi      # 0x405f
movq %rax, %rdi
xorl %edx, %edx
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2c1a
leaq 0x18ef(%rip), %rcx      # 0x4023
movq %rax, %rdi
movq %r14, %rsi
xorl %edx, %edx
xorl %eax, %eax
callq 0x2c1a
movq %rax, %rdi
callq 0x2ea4
movq %rsp, %r15
xorl %edi, %edi
movq %r15, %rsi
callq 0x2100
movabsq $-0x431bde82d7b634db, %rbx # imm = 0xBCE4217D2849CB25
movq %rbx, %rax
imulq 0x8(%r15)
movq %rdx, %r14
movq (%r15), %r13
leaq 0x40(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x18a6(%rip), %rsi      # 0x4026
leaq 0x18a4(%rip), %rdx      # 0x402b
leaq 0x30(%rsp), %r15
movq %r15, %rdi
callq 0x2996
movq %r15, %rdi
callq 0x23ac
movq %r14, %rax
shrq $0x3f, %rax
sarq $0x12, %r14
addq %rax, %r14
movq 0x30(%rsp), %rdi
cmpq %r12, %rdi
je 0x27c1
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x2120
movq %rsp, %r15
xorl %edi, %edi
movq %r15, %rsi
callq 0x2100
movq (%r15), %rcx
subq %r13, %rcx
movabsq $0x431bde82d7b634db, %rax # imm = 0x431BDE82D7B634DB
imulq 0x8(%r15)
movq %rdx, %rax
shrq $0x3f, %rax
sarq $0x12, %rdx
addq %rdx, %rax
addq %r14, %rax
imulq $0x3e8, %rcx, %r14      # imm = 0x3E8
addq %rax, %r14
leaq 0x395c(%rip), %rdi      # 0x6160
leaq 0x1851(%rip), %r15      # 0x405c
leaq 0x181a(%rip), %rcx      # 0x402c
movq %r15, %rsi
xorl %edx, %edx
xorl %eax, %eax
callq 0x2c1a
leaq 0x183a(%rip), %rsi      # 0x405f
movq %rax, %rdi
xorl %edx, %edx
movq %r14, %rcx
xorl %eax, %eax
callq 0x2c1a
leaq 0x17e8(%rip), %rcx      # 0x4023
movq %rax, %rdi
movq %r15, %rsi
xorl %edx, %edx
xorl %eax, %eax
callq 0x2c1a
movq %rax, %rdi
callq 0x2ea4
movq %rsp, %r14
xorl %edi, %edi
movq %r14, %rsi
callq 0x2100
movq (%r14), %r13
movq 0x8(%r14), %r14
leaq 0x20(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x17db(%rip), %rsi      # 0x4052
leaq 0x17da(%rip), %rdx      # 0x4058
leaq 0x10(%rsp), %r15
movq %r15, %rdi
callq 0x2996
movq %r15, %rdi
callq 0x24f9
movq 0x10(%rsp), %rdi
cmpq %r12, %rdi
je 0x28aa
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x2120
movq %r14, %rax
imulq %rbx
movq %rdx, %r14
shrq $0x3f, %r14
sarq $0x12, %rdx
addq %rdx, %r14
movq %rsp, %rbx
xorl %edi, %edi
movq %rbx, %rsi
callq 0x2100
movq (%rbx), %rcx
subq %r13, %rcx
movabsq $0x431bde82d7b634db, %rax # imm = 0x431BDE82D7B634DB
imulq 0x8(%rbx)
movq %rdx, %rax
shrq $0x3f, %rax
sarq $0x12, %rdx
addq %rdx, %rax
addq %r14, %rax
imulq $0x3e8, %rcx, %rbx      # imm = 0x3E8
addq %rax, %rbx
leaq 0x385f(%rip), %rdi      # 0x6160
leaq 0x1754(%rip), %r14      # 0x405c
leaq 0x1729(%rip), %rcx      # 0x4038
movq %r14, %rsi
xorl %edx, %edx
xorl %eax, %eax
callq 0x2c1a
leaq 0x173d(%rip), %rsi      # 0x405f
movq %rax, %rdi
xorl %edx, %edx
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2c1a
leaq 0x16eb(%rip), %rcx      # 0x4023
movq %rax, %rdi
movq %r14, %rsi
xorl %edx, %edx
xorl %eax, %eax
callq 0x2c1a
movq %rax, %rdi
callq 0x2ea4
leaq 0x16ed(%rip), %rdi      # 0x4043
callq 0x20d0
xorl %eax, %eax
addq $0x70, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
movq %rax, %rbx
movq 0x10(%rsp), %rdi
jmp 0x297d
movq %rax, %rbx
movq 0x30(%rsp), %rdi
cmpq %r12, %rdi
je 0x298e
movq (%r12), %rsi
incq %rsi
callq 0x2120
movq %rbx, %rdi
callq 0x21d0