// File: /workspace/github_c_makefile_star2_O3/lemire[P]simdprune/benchmark.c
// Function: main
int main() {
  testepi8();
  printf("This test measures the latency in CPU cycles.\n");
  const int N = 2048;
  int * bitmasks = malloc(sizeof(int) * N);
  const int repeat = 500;
  __m128i x = _mm_set_epi8(15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0);
  BEST_TIME_NOCHECK(runprune_epi8(bitmasks, N, &x), randomize(bitmasks, N, (1<<16)-1), repeat, N, true);
  BEST_TIME_NOCHECK(runthinprune_epi8(bitmasks, N, &x), randomize(bitmasks, N, (1<<16)-1), repeat, N, true);
  BEST_TIME_NOCHECK(runskinnyprune_epi8(bitmasks, N, &x), randomize(bitmasks, N, (1<<16)-1), repeat, N, true);
#ifdef __AVX512VBMI2__ 
  BEST_TIME_NOCHECK(runbmiprune_epi8(bitmasks, N, &x), randomize(bitmasks, N, (1<<16)-1), repeat, N, true);
#endif // __AVX512VBMI2__
  BEST_TIME_NOCHECK(runprune_epi16(bitmasks, N, &x), randomize(bitmasks, N, (1<<8)-1), repeat, N, true);
  BEST_TIME_NOCHECK(runprune_epi32(bitmasks, N, &x), randomize(bitmasks, N, (1<<4)-1), repeat, N, true);
#ifdef __AVX2__
  __m256i xx = _mm256_set_epi32(7,6,5,4,3,2,1,0);
  BEST_TIME_NOCHECK(runprune256_epi32(bitmasks, N, &xx), randomize(bitmasks, N, (1<<8)-1), repeat, N, true);
  BEST_TIME_NOCHECK(runpext_prune256_epi32(bitmasks, N, &xx), randomize(bitmasks, N, (1<<8)-1), repeat, N, true);
  printf("%d \n", _mm_extract_epi8(x,0) + _mm256_extract_epi8(xx,0));
#endif // __AVX2__
  free(bitmasks);
  return EXIT_SUCCESS;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
andq $-0x20, %rsp
subq $0xa0, %rsp
callq 0x148a
leaq 0x1057a6(%rip), %rdi    # 0x106d5a
callq 0x1050
movl $0x2000, %edi           # imm = 0x2000
callq 0x1080
movq %rax, 0x18(%rsp)
vmovapd 0x105580(%rip), %xmm0   # 0x106b50
vmovapd %xmm0, 0x50(%rsp)
cmpq $-0x1, 0x107a8a(%rip)   # 0x109068
jne 0x163b
movq $-0x1, %rsi
movl $0x1f4, %edi            # imm = 0x1F4
movq %rsi, %r8
cpuid
rdtsc
movl %edx, %r9d
movl %eax, %esi
negl %r9d
shlq $0x20, %r9
movl %esi, %r10d
rdtscp
movl %edx, %r11d
movl %eax, %esi
cpuid
shlq $0x20, %r11
movl %esi, %esi
subq %r10, %rsi
addq %r9, %rsi
addq %r11, %rsi
cmpq %r8, %rsi
cmovaeq %r8, %rsi
decl %edi
jne 0x15ec
movq %rsi, 0x107a3b(%rip)    # 0x109068
leaq 0x1055c5(%rip), %rdi    # 0x106bf9
xorl %eax, %eax
callq 0x1060
leaq 0x1055d1(%rip), %rdi    # 0x106c13
leaq 0x1055d3(%rip), %rsi    # 0x106c1c
xorl %ebx, %ebx
xorl %eax, %eax
callq 0x1060
xorl %edi, %edi
callq 0x1090
movq $-0x1, %r12
movl $0x1f4, %eax            # imm = 0x1F4
movq 0x18(%rsp), %r13
movl %eax, 0x10(%rsp)
movq %rbx, 0x20(%rsp)
movq %r13, %rdi
movl $0x800, %esi            # imm = 0x800
movl $0xffff, %edx           # imm = 0xFFFF
callq 0x11ac
cpuid
rdtsc
movl %edx, %r15d
movl %eax, %esi
negl %r15d
shlq $0x20, %r15
movl %esi, %r14d
movq %r13, %rdi
movl $0x800, %esi            # imm = 0x800
leaq 0x50(%rsp), %rdx
callq 0x11e2
rdtscp
movl %edx, %edi
movl %eax, %esi
cpuid
movq 0x20(%rsp), %rbx
shlq $0x20, %rdi
movl %esi, %eax
addq %rdi, %rax
addq 0x1079a0(%rip), %r14    # 0x109068
subq %r14, %r15
addq %rax, %r15
movl 0x10(%rsp), %eax
cmpq %r12, %r15
cmovbq %r15, %r12
addq %r15, %rbx
decl %eax
jne 0x166a
vcvtusi2sd %r12, %xmm1, %xmm0
vmulsd 0x105472(%rip), %xmm0, %xmm0 # 0x106b60
vcvtsd2ss %xmm0, %xmm0, %xmm0
vcvtusi2sd %rbx, %xmm1, %xmm1
vdivsd 0x105468(%rip), %xmm1, %xmm1 # 0x106b68
vcvtsd2ss %xmm1, %xmm1, %xmm1
vmovss %xmm1, 0x20(%rsp)
vcvtss2sd %xmm0, %xmm0, %xmm0
leaq 0x105526(%rip), %rdi    # 0x106c3b
movb $0x1, %al
callq 0x1060
vcvtss2sd 0x20(%rsp), %xmm2, %xmm0
leaq 0x105535(%rip), %rdi    # 0x106c5e
movb $0x1, %al
callq 0x1060
movl $0xa, %edi
callq 0x1040
xorl %edi, %edi
callq 0x1090
cmpq $-0x1, 0x10791f(%rip)   # 0x109068
jne 0x17a6
movq $-0x1, %rsi
movl $0x1f4, %edi            # imm = 0x1F4
movq %rsi, %r8
cpuid
rdtsc
movl %edx, %r9d
movl %eax, %esi
negl %r9d
shlq $0x20, %r9
movl %esi, %r10d
rdtscp
movl %edx, %r11d
movl %eax, %esi
cpuid
shlq $0x20, %r11
movl %esi, %esi
subq %r10, %rsi
addq %r9, %rsi
addq %r11, %rsi
cmpq %r8, %rsi
cmovaeq %r8, %rsi
decl %edi
jne 0x1757
movq %rsi, 0x1078d0(%rip)    # 0x109068
leaq 0x10545a(%rip), %rdi    # 0x106bf9
xorl %eax, %eax
callq 0x1060
leaq 0x105466(%rip), %rdi    # 0x106c13
leaq 0x1054cc(%rip), %rsi    # 0x106c80
xorl %ebx, %ebx
xorl %eax, %eax
callq 0x1060
xorl %edi, %edi
callq 0x1090
movq $-0x1, %r12
movl $0x1f4, %eax            # imm = 0x1F4
movq 0x18(%rsp), %r13
movl %eax, 0x10(%rsp)
movq %rbx, 0x20(%rsp)
movq %r13, %rdi
movl $0x800, %esi            # imm = 0x800
movl $0xffff, %edx           # imm = 0xFFFF
callq 0x11ac
cpuid
rdtsc
movl %edx, %r15d
movl %eax, %esi
negl %r15d
shlq $0x20, %r15
movl %esi, %r14d
movq %r13, %rdi
movl $0x800, %esi            # imm = 0x800
leaq 0x50(%rsp), %rdx
callq 0x1215
rdtscp
movl %edx, %edi
movl %eax, %esi
cpuid
movq 0x20(%rsp), %rbx
shlq $0x20, %rdi
movl %esi, %eax
addq %rdi, %rax
addq 0x107835(%rip), %r14    # 0x109068
subq %r14, %r15
addq %rax, %r15
movl 0x10(%rsp), %eax
cmpq %r12, %r15
cmovbq %r15, %r12
addq %r15, %rbx
decl %eax
jne 0x17d5
vcvtusi2sd %r12, %xmm2, %xmm0
vmulsd 0x105307(%rip), %xmm0, %xmm0 # 0x106b60
vcvtsd2ss %xmm0, %xmm0, %xmm0
vcvtusi2sd %rbx, %xmm2, %xmm1
vdivsd 0x1052fd(%rip), %xmm1, %xmm1 # 0x106b68
vcvtsd2ss %xmm1, %xmm1, %xmm1
vmovss %xmm1, 0x20(%rsp)
vcvtss2sd %xmm0, %xmm0, %xmm0
leaq 0x1053bb(%rip), %rdi    # 0x106c3b
movb $0x1, %al
callq 0x1060
vcvtss2sd 0x20(%rsp), %xmm2, %xmm0
leaq 0x1053ca(%rip), %rdi    # 0x106c5e
movb $0x1, %al
callq 0x1060
movl $0xa, %edi
callq 0x1040
xorl %edi, %edi
callq 0x1090
cmpq $-0x1, 0x1077b4(%rip)   # 0x109068
jne 0x1911
movq $-0x1, %rsi
movl $0x1f4, %edi            # imm = 0x1F4
movq %rsi, %r8
cpuid
rdtsc
movl %edx, %r9d
movl %eax, %esi
negl %r9d
shlq $0x20, %r9
movl %esi, %r10d
rdtscp
movl %edx, %r11d
movl %eax, %esi
cpuid
shlq $0x20, %r11
movl %esi, %esi
subq %r10, %rsi
addq %r9, %rsi
addq %r11, %rsi
cmpq %r8, %rsi
cmovaeq %r8, %rsi
decl %edi
jne 0x18c2
movq %rsi, 0x107765(%rip)    # 0x109068
leaq 0x1052ef(%rip), %rdi    # 0x106bf9
xorl %eax, %eax
callq 0x1060
leaq 0x1052fb(%rip), %rdi    # 0x106c13
leaq 0x105384(%rip), %rsi    # 0x106ca3
xorl %ebx, %ebx
xorl %eax, %eax
callq 0x1060
xorl %edi, %edi
callq 0x1090
movq $-0x1, %r12
movl $0x1f4, %eax            # imm = 0x1F4
movq 0x18(%rsp), %r13
movl %eax, 0x10(%rsp)
movq %rbx, 0x20(%rsp)
movq %r13, %rdi
movl $0x800, %esi            # imm = 0x800
movl $0xffff, %edx           # imm = 0xFFFF
callq 0x11ac
cpuid
rdtsc
movl %edx, %r15d
movl %eax, %esi
negl %r15d
shlq $0x20, %r15
movl %esi, %r14d
movq %r13, %rdi
movl $0x800, %esi            # imm = 0x800
leaq 0x50(%rsp), %rdx
callq 0x129a
rdtscp
movl %edx, %edi
movl %eax, %esi
cpuid
movq 0x20(%rsp), %rbx
shlq $0x20, %rdi
movl %esi, %eax
addq %rdi, %rax
addq 0x1076ca(%rip), %r14    # 0x109068
subq %r14, %r15
addq %rax, %r15
movl 0x10(%rsp), %eax
cmpq %r12, %r15
cmovbq %r15, %r12
addq %r15, %rbx
decl %eax
jne 0x1940
vcvtusi2sd %r12, %xmm2, %xmm0
vmulsd 0x10519c(%rip), %xmm0, %xmm0 # 0x106b60
vcvtsd2ss %xmm0, %xmm0, %xmm0
vcvtusi2sd %rbx, %xmm2, %xmm1
vdivsd 0x105192(%rip), %xmm1, %xmm1 # 0x106b68
vcvtsd2ss %xmm1, %xmm1, %xmm1
vmovss %xmm1, 0x20(%rsp)
vcvtss2sd %xmm0, %xmm0, %xmm0
leaq 0x105250(%rip), %rdi    # 0x106c3b
movb $0x1, %al
callq 0x1060
vcvtss2sd 0x20(%rsp), %xmm2, %xmm0
leaq 0x10525f(%rip), %rdi    # 0x106c5e
movb $0x1, %al
callq 0x1060
movl $0xa, %edi
callq 0x1040
xorl %edi, %edi
callq 0x1090
cmpq $-0x1, 0x107649(%rip)   # 0x109068
jne 0x1a7c
movq $-0x1, %rsi
movl $0x1f4, %edi            # imm = 0x1F4
movq %rsi, %r8
cpuid
rdtsc
movl %edx, %r9d
movl %eax, %esi
negl %r9d
shlq $0x20, %r9
movl %esi, %r10d
rdtscp
movl %edx, %r11d
movl %eax, %esi
cpuid
shlq $0x20, %r11
movl %esi, %esi
subq %r10, %rsi
addq %r9, %rsi
addq %r11, %rsi
cmpq %r8, %rsi
cmovaeq %r8, %rsi
decl %edi
jne 0x1a2d
movq %rsi, 0x1075fa(%rip)    # 0x109068
leaq 0x105184(%rip), %rdi    # 0x106bf9
xorl %eax, %eax
callq 0x1060
leaq 0x105190(%rip), %rdi    # 0x106c13
leaq 0x10523e(%rip), %rsi    # 0x106cc8
xorl %ebx, %ebx
xorl %eax, %eax
callq 0x1060
xorl %edi, %edi
callq 0x1090
movq $-0x1, %r12
movl $0x1f4, %eax            # imm = 0x1F4
movq 0x18(%rsp), %r13
movl %eax, 0x10(%rsp)
movq %rbx, 0x20(%rsp)
movq %r13, %rdi
movl $0x800, %esi            # imm = 0x800
movl $0xff, %edx
callq 0x11ac
cpuid
rdtsc
movl %edx, %r15d
movl %eax, %esi
negl %r15d
shlq $0x20, %r15
movl %esi, %r14d
movq %r13, %rdi
movl $0x800, %esi            # imm = 0x800
leaq 0x50(%rsp), %rdx
callq 0x1303
rdtscp
movl %edx, %edi
movl %eax, %esi
cpuid
movq 0x20(%rsp), %rbx
shlq $0x20, %rdi
movl %esi, %eax
addq %rdi, %rax
addq 0x10755f(%rip), %r14    # 0x109068
subq %r14, %r15
addq %rax, %r15
movl 0x10(%rsp), %eax
cmpq %r12, %r15
cmovbq %r15, %r12
addq %r15, %rbx
decl %eax
jne 0x1aab
vcvtusi2sd %r12, %xmm2, %xmm0
vmulsd 0x105031(%rip), %xmm0, %xmm0 # 0x106b60
vcvtsd2ss %xmm0, %xmm0, %xmm0
vcvtusi2sd %rbx, %xmm2, %xmm1
vdivsd 0x105027(%rip), %xmm1, %xmm1 # 0x106b68
vcvtsd2ss %xmm1, %xmm1, %xmm1
vmovss %xmm1, 0x20(%rsp)
vcvtss2sd %xmm0, %xmm0, %xmm0
leaq 0x1050e5(%rip), %rdi    # 0x106c3b
movb $0x1, %al
callq 0x1060
vcvtss2sd 0x20(%rsp), %xmm2, %xmm0
leaq 0x1050f4(%rip), %rdi    # 0x106c5e
movb $0x1, %al
callq 0x1060
movl $0xa, %edi
callq 0x1040
xorl %edi, %edi
callq 0x1090
cmpq $-0x1, 0x1074de(%rip)   # 0x109068
jne 0x1be7
movq $-0x1, %rsi
movl $0x1f4, %edi            # imm = 0x1F4
movq %rsi, %r8
cpuid
rdtsc
movl %edx, %r9d
movl %eax, %esi
negl %r9d
shlq $0x20, %r9
movl %esi, %r10d
rdtscp
movl %edx, %r11d
movl %eax, %esi
cpuid
shlq $0x20, %r11
movl %esi, %esi
subq %r10, %rsi
addq %r9, %rsi
addq %r11, %rsi
cmpq %r8, %rsi
cmovaeq %r8, %rsi
decl %edi
jne 0x1b98
movq %rsi, 0x10748f(%rip)    # 0x109068
leaq 0x105019(%rip), %rdi    # 0x106bf9
xorl %eax, %eax
callq 0x1060
leaq 0x105025(%rip), %rdi    # 0x106c13
leaq 0x1050f3(%rip), %rsi    # 0x106ce8
xorl %ebx, %ebx
xorl %eax, %eax
callq 0x1060
xorl %edi, %edi
callq 0x1090
movq $-0x1, %r12
movl $0x1f4, %eax            # imm = 0x1F4
movq 0x18(%rsp), %r13
movl %eax, 0x10(%rsp)
movq %rbx, 0x20(%rsp)
movq %r13, %rdi
movl $0x800, %esi            # imm = 0x800
movl $0xf, %edx
callq 0x11ac
cpuid
rdtsc
movl %edx, %r15d
movl %eax, %esi
negl %r15d
shlq $0x20, %r15
movl %esi, %r14d
movq %r13, %rdi
movl $0x800, %esi            # imm = 0x800
leaq 0x50(%rsp), %rdx
callq 0x1336
rdtscp
movl %edx, %edi
movl %eax, %esi
cpuid
movq 0x20(%rsp), %rbx
shlq $0x20, %rdi
movl %esi, %eax
addq %rdi, %rax
addq 0x1073f4(%rip), %r14    # 0x109068
subq %r14, %r15
addq %rax, %r15
movl 0x10(%rsp), %eax
cmpq %r12, %r15
cmovbq %r15, %r12
addq %r15, %rbx
decl %eax
jne 0x1c16
vcvtusi2sd %r12, %xmm2, %xmm0
vmulsd 0x104ec6(%rip), %xmm0, %xmm0 # 0x106b60
vcvtsd2ss %xmm0, %xmm0, %xmm0
vcvtusi2sd %rbx, %xmm2, %xmm1
vdivsd 0x104ebc(%rip), %xmm1, %xmm1 # 0x106b68
vcvtsd2ss %xmm1, %xmm1, %xmm1
vmovss %xmm1, 0x20(%rsp)
vcvtss2sd %xmm0, %xmm0, %xmm0
leaq 0x104f7a(%rip), %rdi    # 0x106c3b
movb $0x1, %al
callq 0x1060
vcvtss2sd 0x20(%rsp), %xmm2, %xmm0
leaq 0x104f89(%rip), %rdi    # 0x106c5e
movb $0x1, %al
callq 0x1060
movl $0xa, %edi
callq 0x1040
xorl %edi, %edi
callq 0x1090
vmovapd 0x104e8b(%rip), %ymm0   # 0x106b80
vmovapd %ymm0, 0x60(%rsp)
cmpq $-0x1, 0x107365(%rip)   # 0x109068
jne 0x1d63
movq $-0x1, %rsi
movl $0x1f4, %edi            # imm = 0x1F4
movq %rsi, %r8
cpuid
rdtsc
movl %edx, %r9d
movl %eax, %esi
negl %r9d
shlq $0x20, %r9
movl %esi, %r10d
rdtscp
movl %edx, %r11d
movl %eax, %esi
cpuid
shlq $0x20, %r11
movl %esi, %esi
subq %r10, %rsi
addq %r9, %rsi
addq %r11, %rsi
cmpq %r8, %rsi
cmovaeq %r8, %rsi
decl %edi
jne 0x1d11
movq %rsi, 0x107316(%rip)    # 0x109068
leaq 0x104ea0(%rip), %rdi    # 0x106bf9
xorl %eax, %eax
vzeroupper
callq 0x1060
leaq 0x104ea9(%rip), %rdi    # 0x106c13
leaq 0x104f97(%rip), %rsi    # 0x106d08
xorl %ebx, %ebx
xorl %eax, %eax
vzeroupper
callq 0x1060
xorl %edi, %edi
callq 0x1090
movq $-0x1, %r12
movl $0x1f4, %eax            # imm = 0x1F4
movq 0x18(%rsp), %r13
movl %eax, 0x10(%rsp)
movq %rbx, 0x20(%rsp)
movq %r13, %rdi
movl $0x800, %esi            # imm = 0x800
movl $0xff, %edx
vzeroupper
callq 0x11ac
cpuid
rdtsc
movl %edx, %r15d
movl %eax, %esi
negl %r15d
shlq $0x20, %r15
movl %esi, %r14d
movq %r13, %rdi
movl $0x800, %esi            # imm = 0x800
leaq 0x60(%rsp), %rdx
callq 0x1369
rdtscp
movl %edx, %edi
movl %eax, %esi
cpuid
movq 0x20(%rsp), %rbx
shlq $0x20, %rdi
movl %esi, %eax
addq %rdi, %rax
addq 0x107272(%rip), %r14    # 0x109068
subq %r14, %r15
addq %rax, %r15
movl 0x10(%rsp), %eax
cmpq %r12, %r15
cmovbq %r15, %r12
addq %r15, %rbx
decl %eax
jne 0x1d95
vcvtusi2sd %r12, %xmm2, %xmm0
vmulsd 0x104d44(%rip), %xmm0, %xmm0 # 0x106b60
vcvtsd2ss %xmm0, %xmm0, %xmm0
vcvtusi2sd %rbx, %xmm2, %xmm1
vdivsd 0x104d3a(%rip), %xmm1, %xmm1 # 0x106b68
vcvtsd2ss %xmm1, %xmm1, %xmm1
vmovss %xmm1, 0x20(%rsp)
vcvtss2sd %xmm0, %xmm0, %xmm0
leaq 0x104df8(%rip), %rdi    # 0x106c3b
movb $0x1, %al
vzeroupper
callq 0x1060
vcvtss2sd 0x20(%rsp), %xmm2, %xmm0
leaq 0x104e04(%rip), %rdi    # 0x106c5e
movb $0x1, %al
callq 0x1060
movl $0xa, %edi
callq 0x1040
xorl %ebx, %ebx
xorl %edi, %edi
callq 0x1090
cmpq $-0x1, 0x1071ec(%rip)   # 0x109068
jne 0x1edb
movq $-0x1, %rsi
movl $0x1f4, %edi            # imm = 0x1F4
movq %rsi, %r8
cpuid
rdtsc
movl %edx, %r9d
movl %eax, %esi
negl %r9d
shlq $0x20, %r9
movl %esi, %r10d
rdtscp
movl %edx, %r11d
movl %eax, %esi
cpuid
shlq $0x20, %r11
movl %esi, %esi
subq %r10, %rsi
addq %r9, %rsi
addq %r11, %rsi
cmpq %r8, %rsi
cmovaeq %r8, %rsi
decl %edi
jne 0x1e8a
movq %rsi, 0x10719d(%rip)    # 0x109068
leaq 0x104d27(%rip), %rdi    # 0x106bf9
xorl %eax, %eax
callq 0x1060
xorl %ebx, %ebx
leaq 0x104d31(%rip), %rdi    # 0x106c13
leaq 0x104e43(%rip), %rsi    # 0x106d2c
xorl %eax, %eax
callq 0x1060
xorl %edi, %edi
callq 0x1090
movq $-0x1, %r12
vmovdqa 0x60(%rsp), %ymm0
vmovdqa %ymm0, 0x20(%rsp)
movabsq $0x101010101010101, %r14 # imm = 0x101010101010101
movabsq $0x706050403020100, %r15 # imm = 0x706050403020100
xorl %r13d, %r13d
movq 0x18(%rsp), %r10
movq %rbx, 0x10(%rsp)
movq %r10, %rdi
movl $0x800, %esi            # imm = 0x800
movl $0xff, %edx
vzeroupper
callq 0x11ac
movq 0x18(%rsp), %r10
cpuid
rdtsc
movl %edx, %esi
movl %eax, %edi
negl %esi
shlq $0x20, %rsi
xorl %eax, %eax
vmovdqa 0x20(%rsp), %ymm1
movl (%r10,%rax,4), %ecx
pdepq %r14, %rcx, %rcx
movq %rcx, %rdx
shlq $0x8, %rdx
subq %rcx, %rdx
pextq %rdx, %r15, %rcx
vmovq %rcx, %xmm0
vpmovzxbd %xmm0, %ymm0    # ymm0 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero,xmm0[2],zero,zero,zero,xmm0[3],zero,zero,zero,xmm0[4],zero,zero,zero,xmm0[5],zero,zero,zero,xmm0[6],zero,zero,zero,xmm0[7],zero,zero,zero
vpermd %ymm1, %ymm0, %ymm1
incq %rax
cmpq $0x800, %rax            # imm = 0x800
jne 0x1f5b
vmovdqa %ymm1, 0x20(%rsp)
movl %edi, %edi
rdtscp
movl %edx, %r9d
movl %eax, %r8d
cpuid
shlq $0x20, %r9
movl %r8d, %eax
addq %r9, %rax
addq 0x1070b7(%rip), %rdi    # 0x109068
subq %rdi, %rsi
addq %rax, %rsi
cmpq %r12, %rsi
cmovbq %rsi, %r12
addq %rsi, %r13
movq 0x10(%rsp), %rbx
incl %ebx
cmpl $0x1f4, %ebx            # imm = 0x1F4
jne 0x1f26
vcvtusi2sd %r12, %xmm2, %xmm0
vmulsd 0x104b7e(%rip), %xmm0, %xmm0 # 0x106b60
vcvtsd2ss %xmm0, %xmm0, %xmm0
vcvtusi2sd %r13, %xmm2, %xmm1
vdivsd 0x104b74(%rip), %xmm1, %xmm1 # 0x106b68
vcvtsd2ss %xmm1, %xmm1, %xmm1
vmovss %xmm1, 0x10(%rsp)
vcvtss2sd %xmm0, %xmm0, %xmm0
leaq 0x104c32(%rip), %rdi    # 0x106c3b
movb $0x1, %al
movq %r10, %rbx
vzeroupper
callq 0x1060
vcvtss2sd 0x10(%rsp), %xmm2, %xmm0
leaq 0x104c3b(%rip), %rdi    # 0x106c5e
movb $0x1, %al
callq 0x1060
movl $0xa, %edi
callq 0x1040
xorl %edi, %edi
callq 0x1090
movzbl 0x50(%rsp), %eax
vmovdqa 0x20(%rsp), %ymm0
vpextrb $0x0, %xmm0, %esi
addl %eax, %esi
leaq 0x104d00(%rip), %rdi    # 0x106d55
xorl %eax, %eax
vzeroupper
callq 0x1060
movq %rbx, %rdi
callq 0x1030
xorl %eax, %eax
leaq -0x28(%rbp), %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq