Skip to content

Instantly share code, notes, and snippets.

@Mischa-Alff
Created October 30, 2014 19:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Mischa-Alff/9efa98f768df4682ea2c to your computer and use it in GitHub Desktop.
Save Mischa-Alff/9efa98f768df4682ea2c to your computer and use it in GitHub Desktop.
asm_raw_noise_3d:
%line 80+1 ../src/util/asmnoise.asm
unpcklps xmm0,xmm1
addss xmm1,xmm0
addss xmm1,xmm2
movlhps xmm0,xmm2
mulss xmm1,[F3]
shufps xmm1,xmm1,0
addps xmm1,xmm0
roundps xmm1,xmm1,1
pshufd xmm2,xmm1,1
movhlps xmm3,xmm1
addss xmm2,xmm1
movss xmm6,[G3]
%line 95+0 ../src/util/asmnoise.asm
shufps xmm6,xmm6,0
%line 96+1 ../src/util/asmnoise.asm
addss xmm2,xmm3
mulss xmm2,xmm6
shufps xmm2,xmm2,0
movaps xmm3,xmm1
%line 99+0 ../src/util/asmnoise.asm
subps xmm3,xmm2
%line 100+1 ../src/util/asmnoise.asm
subps xmm0,xmm3
movss xmm7,[one]
%line 103+0 ../src/util/asmnoise.asm
shufps xmm7,xmm7,0
%line 104+1 ../src/util/asmnoise.asm
pshufd xmm2,xmm0,000001b
pshufd xmm3,xmm0,100110b
movaps xmm4,xmm2
cmpps xmm2,xmm3,5
cmpps xmm4,xmm3,1
movss xmm3,xmm4
shufps xmm2,xmm2,010010b
insertps xmm4,xmm2,10001000b
movlhps xmm2,xmm3
movaps xmm3,xmm2
andps xmm2,xmm4
orps xmm3,xmm4
andps xmm2,xmm7
andps xmm3,xmm7
movaps xmm5,xmm7
movaps xmm7,xmm0
subps xmm7,xmm5
movaps xmm4,xmm0
%line 123+0 ../src/util/asmnoise.asm
subps xmm4,xmm2
%line 124+1 ../src/util/asmnoise.asm
addps xmm4,xmm6
movaps xmm5,xmm0
%line 125+0 ../src/util/asmnoise.asm
subps xmm5,xmm3
%line 126+1 ../src/util/asmnoise.asm
addps xmm6,xmm6
addps xmm5,xmm6
addss xmm6,[G3]
shufps xmm6,xmm6,0
addps xmm7,xmm6
cvtps2dq xmm1,xmm1
cvtps2dq xmm2,xmm2
cvtps2dq xmm3,xmm3
pextrb r9d ,xmm1,8
pextrb r10d,xmm2,8
pextrb r11d,xmm3,8
add r9 ,rdi
movzx rax ,byte [r9]
movzx rcx ,byte [r9+r10]
movzx rdx ,byte [r9+r11]
movzx r8 ,byte [r9+1]
pextrb r9d ,xmm1,4
pextrb r10d,xmm2,4
pextrb r11d,xmm3,4
add r9 ,rdi
add r10 ,rcx
add r11 ,rdx
mov al ,byte [r9+rax]
mov cl ,byte [r9+r10]
mov dl ,byte [r9+r11]
mov r8b ,byte [r9+r8+1]
pextrb r9d ,xmm1,0
movd r10d,xmm2
movd r11d,xmm3
add r9 ,rdi
add r10 ,rcx
add r11 ,rdx
mov al ,byte [r9+rax]
mov cl ,byte [r9+r10]
mov dl ,byte [r9+r11]
mov r8b ,byte [r9+r8+1]
mov r9 ,12
div r9b
shr ax ,8
lea eax ,[eax+eax*2]
mov r10 ,qword grad3
pmovsxbd xmm1,[rax+r10]
mov rax ,rcx
div r9b
shr ax ,8
lea eax ,[eax+eax*2]
pmovsxbd xmm2,[rax+r10]
mov rax ,rdx
div r9b
shr ax ,8
lea eax ,[eax+eax*2]
pmovsxbd xmm3,[rax+r10]
mov rax ,r8
div r9b
shr ax ,8
lea eax ,[eax+eax*2]
pmovsxbd xmm6,[rax+r10]
cvtdq2ps xmm1,xmm1
cvtdq2ps xmm2,xmm2
cvtdq2ps xmm3,xmm3
cvtdq2ps xmm6,xmm6
dpps xmm1,xmm0,01110001b
dpps xmm2,xmm4,01110001b
dpps xmm3,xmm5,01110001b
dpps xmm6,xmm7,01110001b
unpcklps xmm1,xmm2
unpcklps xmm3,xmm6
movlhps xmm1,xmm3
mulps xmm0,xmm0
mulps xmm4,xmm4
mulps xmm5,xmm5
mulps xmm7,xmm7
movaps xmm2,xmm0
%line 210+0 ../src/util/asmnoise.asm
unpcklps xmm2,xmm5
%line 211+1 ../src/util/asmnoise.asm
movaps xmm3,xmm4
%line 211+0 ../src/util/asmnoise.asm
unpcklps xmm3,xmm7
%line 212+1 ../src/util/asmnoise.asm
unpckhps xmm0,xmm5
unpckhps xmm4,xmm7
movaps xmm5,xmm2
%line 215+0 ../src/util/asmnoise.asm
unpcklps xmm5,xmm3
%line 216+1 ../src/util/asmnoise.asm
unpckhps xmm2,xmm3
unpcklps xmm0,xmm4
movss xmm4,[tval]
%line 219+0 ../src/util/asmnoise.asm
shufps xmm4,xmm4,0
%line 220+1 ../src/util/asmnoise.asm
subps xmm4,xmm5
subps xmm4,xmm2
subps xmm4,xmm0
xorps xmm2,xmm2
cmpps xmm2,xmm4,1
andps xmm2,xmm4
mulps xmm2,xmm2
mulps xmm2,xmm2
mulps xmm2,xmm1
movhlps xmm0,xmm2
addps xmm0,xmm2
pshufd xmm1,xmm0,1
addss xmm0,xmm1
mulss xmm0,[retval]
%line 245+1 ../src/util/asmnoise.asm
%line 247+1 ../src/util/asmnoise.asm
ret
_ZN3fea12raw_noise_3dEfffPKh:
.LFB4696:
.cfi_startproc
vmovaps xmm4, xmm0
vaddss xmm0, xmm0, xmm1
push r13
.cfi_def_cfa_offset 16
.cfi_offset 13, -16
push r12
.cfi_def_cfa_offset 24
.cfi_offset 12, -24
push rbp
.cfi_def_cfa_offset 32
.cfi_offset 6, -32
vaddss xmm7, xmm0, xmm2
push rbx
.cfi_def_cfa_offset 40
.cfi_offset 3, -40
mov rbx, rdi
sub rsp, 88
.cfi_def_cfa_offset 128
vmovss xmm0, DWORD PTR .LC9[rip]
vmovss DWORD PTR [rsp+28], xmm4
vfmadd132ss xmm0, xmm4, xmm7
vmovss DWORD PTR [rsp+12], xmm7
vmovss DWORD PTR [rsp+32], xmm2
vmovss DWORD PTR [rsp+16], xmm1
call floorf
vmovss xmm1, DWORD PTR [rsp+16]
vmovss DWORD PTR [rsp+24], xmm0
vmovss xmm0, DWORD PTR .LC9[rip]
vfmadd132ss xmm0, xmm1, DWORD PTR [rsp+12]
vmovss DWORD PTR [rsp+20], xmm1
call floorf
vmovss xmm2, DWORD PTR [rsp+32]
vmovss DWORD PTR [rsp+16], xmm0
vmovss xmm0, DWORD PTR .LC9[rip]
vfmadd132ss xmm0, xmm2, DWORD PTR [rsp+12]
vmovss DWORD PTR [rsp+12], xmm2
call floorf
vmovss xmm7, DWORD PTR [rsp+16]
vmovss xmm6, DWORD PTR [rsp+24]
vmovss xmm14, DWORD PTR .LC10[rip]
vaddss xmm3, xmm6, xmm7
vmovss xmm4, DWORD PTR [rsp+28]
vmovss xmm1, DWORD PTR [rsp+20]
vmovss xmm2, DWORD PTR [rsp+12]
vaddss xmm3, xmm3, xmm0
vmovaps xmm5, xmm3
vfnmadd132ss xmm5, xmm6, xmm14
vsubss xmm4, xmm4, xmm5
vmovaps xmm5, xmm3
vfnmadd132ss xmm3, xmm0, xmm14
vfnmadd132ss xmm5, xmm7, xmm14
vsubss xmm5, xmm1, xmm5
vsubss xmm2, xmm2, xmm3
vucomiss xmm4, xmm5
jb .L34
vucomiss xmm5, xmm2
jb .L39
vmovss xmm1, DWORD PTR .LC0[rip]
vxorps xmm3, xmm3, xmm3
xor r9d, r9d
vmovaps xmm10, xmm3
mov edi, 1
mov esi, 1
vmovaps xmm8, xmm1
vmovaps xmm11, xmm1
.L25:
vmovaps xmm12, xmm3
xor r10d, r10d
vmovaps xmm9, xmm3
xor ebp, ebp
vmovaps xmm13, xmm1
mov r11d, 1
jmp .L18
.p2align 4,,10
.p2align 3
.L34:
vucomiss xmm2, xmm5
jbe .L40
vmovss xmm1, DWORD PTR .LC0[rip]
vxorps xmm3, xmm3, xmm3
mov r9d, 1
mov edi, 1
vmovaps xmm11, xmm3
xor esi, esi
vmovaps xmm10, xmm1
vmovaps xmm8, xmm1
.L38:
vmovaps xmm12, xmm1
mov r10d, 1
vmovaps xmm9, xmm3
xor ebp, ebp
vmovaps xmm13, xmm3
xor r11d, r11d
.L18:
vcvttss2si ecx, xmm0
vmovss DWORD PTR [rsp+32], xmm2
vcvttss2si edx, xmm7
vmovss DWORD PTR [rsp+40], xmm4
vcvttss2si eax, xmm6
vmovss DWORD PTR [rsp+36], xmm5
vsubss xmm13, xmm4, xmm13
vmovss DWORD PTR [rsp+20], xmm3
movzx r8d, cl
vsubss xmm9, xmm5, xmm9
movzx ecx, cl
add r10d, ecx
add ecx, r9d
movzx edx, dl
movzx r12d, BYTE PTR [rbx+r8]
movsx rcx, ecx
vsubss xmm12, xmm2, xmm12
movsx r10, r10d
movzx ecx, BYTE PTR [rbx+rcx]
vsubss xmm15, xmm4, xmm1
movzx eax, al
movzx r10d, BYTE PTR [rbx+r10]
vaddss xmm13, xmm13, xmm14
vaddss xmm9, xmm9, xmm14
add r12d, edx
vaddss xmm12, xmm12, xmm14
movsx r12, r12d
vmovss xmm14, DWORD PTR .LC5[rip]
add ecx, edx
movzx r12d, BYTE PTR [rbx+r12]
vsubss xmm11, xmm4, xmm11
vmovaps xmm7, xmm13
add ecx, edi
vaddss xmm15, xmm15, xmm14
add r10d, edx
movsx rcx, ecx
vsubss xmm10, xmm2, xmm10
add r10d, ebp
movzx ecx, BYTE PTR [rbx+rcx]
movsx r10, r10d
vsubss xmm8, xmm5, xmm8
vmovss DWORD PTR [rsp+12], xmm15
vsubss xmm15, xmm5, xmm1
movzx r10d, BYTE PTR [rbx+r10]
add r12d, eax
vsubss xmm1, xmm2, xmm1
vmovss xmm0, DWORD PTR [rsp+12]
movsx r12, r12d
vaddss xmm11, xmm11, DWORD PTR .LC9[rip]
add ecx, eax
vaddss xmm15, xmm15, xmm14
movzx r13d, BYTE PTR [rbx+r12]
add ecx, esi
vaddss xmm1, xmm1, xmm14
add r10d, eax
movsx rcx, ecx
vmovaps xmm14, xmm4
add r10d, r11d
movzx ebp, BYTE PTR [rbx+rcx]
vmovaps xmm6, xmm11
movsx r10, r10d
vmovss DWORD PTR [rsp+16], xmm15
movzx ecx, BYTE PTR [rbx+1+r8]
vmovaps xmm15, xmm1
vmovss DWORD PTR [rsp+28], xmm1
vmovss xmm1, DWORD PTR .LC11[rip]
vaddss xmm8, xmm8, DWORD PTR .LC9[rip]
vfnmadd132ss xmm14, xmm1, xmm4
vfnmadd231ss xmm14, xmm5, xmm5
vmovaps xmm5, xmm0
vfnmadd231ss xmm14, xmm2, xmm2
add edx, ecx
vfnmadd132ss xmm5, xmm1, xmm0
movzx r12d, BYTE PTR [rbx+r10]
vfnmadd132ss xmm7, xmm1, xmm13
movsx rdx, edx
vmovss xmm2, DWORD PTR [rsp+16]
vfnmadd132ss xmm6, xmm1, xmm11
vfnmadd231ss xmm7, xmm9, xmm9
movzx edx, BYTE PTR [rbx+1+rdx]
vfnmadd231ss xmm6, xmm8, xmm8
vfnmadd231ss xmm7, xmm12, xmm12
vaddss xmm10, xmm10, DWORD PTR .LC9[rip]
vmovaps xmm4, xmm2
vfnmadd132ss xmm4, xmm5, xmm2
vmovaps xmm1, xmm4
vmovaps xmm4, xmm15
vfnmadd132ss xmm4, xmm1, xmm15
vmovss DWORD PTR [rsp+24], xmm4
add eax, edx
vucomiss xmm3, xmm14
vfnmadd231ss xmm6, xmm10, xmm10
cdqe
movzx ebx, BYTE PTR [rbx+1+rax]
ja .L20
vmovsd xmm1, QWORD PTR .LC6[rip]
vmovss DWORD PTR [rsp+76], xmm3
vxorpd xmm0, xmm0, xmm0
vcvtss2sd xmm0, xmm0, xmm14
vmovss DWORD PTR [rsp+72], xmm6
vmovss DWORD PTR [rsp+68], xmm7
vmovss DWORD PTR [rsp+64], xmm10
vmovss DWORD PTR [rsp+60], xmm8
vmovss DWORD PTR [rsp+56], xmm11
vmovss DWORD PTR [rsp+52], xmm12
vmovss DWORD PTR [rsp+48], xmm9
vmovss DWORD PTR [rsp+44], xmm13
call pow
movzx edx, r13b
vxorps xmm1, xmm1, xmm1
vmovss xmm5, DWORD PTR [rsp+36]
lea eax, [rdx+rdx*8]
vxorps xmm14, xmm14, xmm14
vmovss xmm4, DWORD PTR [rsp+40]
lea eax, [rdx+rax*2]
vmovss xmm2, DWORD PTR [rsp+32]
lea eax, [rax+rax*8]
vmovss xmm3, DWORD PTR [rsp+76]
shr ax, 11
vmovss xmm6, DWORD PTR [rsp+72]
lea eax, [rax+rax*2]
vmovss xmm7, DWORD PTR [rsp+68]
sal eax, 2
vmovss xmm10, DWORD PTR [rsp+64]
sub r13d, eax
vmovss xmm8, DWORD PTR [rsp+60]
movzx r13d, r13b
vmovss xmm11, DWORD PTR [rsp+56]
lea rcx, [r13+0+r13*2]
vmovss xmm12, DWORD PTR [rsp+52]
movsx eax, BYTE PTR _ZN3feaL5grad3E[rcx+1]
vmovss xmm9, DWORD PTR [rsp+48]
vmovss xmm13, DWORD PTR [rsp+44]
vcvtsi2ss xmm1, xmm1, eax
movsx eax, BYTE PTR _ZN3feaL5grad3E[rcx]
vmulss xmm5, xmm5, xmm1
vxorps xmm1, xmm1, xmm1
vcvtsi2ss xmm1, xmm1, eax
movsx eax, BYTE PTR _ZN3feaL5grad3E[rcx+2]
vcvtsi2ss xmm14, xmm14, eax
vfmadd231ss xmm5, xmm4, xmm1
vfmadd132ss xmm2, xmm5, xmm14
vcvtss2sd xmm2, xmm2, xmm2
vmulsd xmm0, xmm2, xmm0
vxorps xmm2, xmm2, xmm2
vcvtsd2ss xmm2, xmm2, xmm0
vmovss DWORD PTR [rsp+20], xmm2
.L20:
vucomiss xmm3, xmm7
vmovss DWORD PTR [rsp+40], xmm12
vmovaps xmm5, xmm3
vmovss DWORD PTR [rsp+36], xmm9
vmovss DWORD PTR [rsp+32], xmm13
ja .L21
vmovsd xmm1, QWORD PTR .LC6[rip]
vmovss DWORD PTR [rsp+60], xmm3
vxorpd xmm0, xmm0, xmm0
vcvtss2sd xmm0, xmm0, xmm7
vmovss DWORD PTR [rsp+56], xmm6
vmovss DWORD PTR [rsp+52], xmm10
vmovss DWORD PTR [rsp+48], xmm8
vmovss DWORD PTR [rsp+44], xmm11
call pow
movzx edx, r12b
vxorps xmm1, xmm1, xmm1
vmovss xmm9, DWORD PTR [rsp+36]
lea eax, [rdx+rdx*8]
vmovss xmm13, DWORD PTR [rsp+32]
lea eax, [rdx+rax*2]
vmovss xmm12, DWORD PTR [rsp+40]
lea eax, [rax+rax*8]
vmovss xmm3, DWORD PTR [rsp+60]
shr ax, 11
vmovss xmm6, DWORD PTR [rsp+56]
lea eax, [rax+rax*2]
vmovss xmm10, DWORD PTR [rsp+52]
sal eax, 2
vmovss xmm8, DWORD PTR [rsp+48]
sub r12d, eax
vmovss xmm11, DWORD PTR [rsp+44]
movzx r12d, r12b
lea rcx, [r12+r12*2]
movsx eax, BYTE PTR _ZN3feaL5grad3E[rcx+1]
vcvtsi2ss xmm1, xmm1, eax
movsx eax, BYTE PTR _ZN3feaL5grad3E[rcx]
vmulss xmm9, xmm9, xmm1
vxorps xmm1, xmm1, xmm1
vcvtsi2ss xmm1, xmm1, eax
movsx eax, BYTE PTR _ZN3feaL5grad3E[rcx+2]
vfmadd231ss xmm9, xmm13, xmm1
vxorps xmm1, xmm1, xmm1
vcvtsi2ss xmm1, xmm1, eax
vfmadd132ss xmm12, xmm9, xmm1
vcvtss2sd xmm12, xmm12, xmm12
vmulsd xmm5, xmm12, xmm0
vcvtsd2ss xmm5, xmm5, xmm5
.L21:
vucomiss xmm3, xmm6
vmovss DWORD PTR [rsp+40], xmm10
vmovaps xmm4, xmm3
vmovss DWORD PTR [rsp+36], xmm8
vmovss DWORD PTR [rsp+32], xmm11
ja .L22
vmovsd xmm1, QWORD PTR .LC6[rip]
vmovss DWORD PTR [rsp+48], xmm3
vxorpd xmm0, xmm0, xmm0
vcvtss2sd xmm0, xmm0, xmm6
vmovss DWORD PTR [rsp+44], xmm5
call pow
movzx edx, bpl
vxorps xmm1, xmm1, xmm1
vmovss xmm8, DWORD PTR [rsp+36]
lea eax, [rdx+rdx*8]
vmovss xmm11, DWORD PTR [rsp+32]
lea eax, [rdx+rax*2]
vmovss xmm10, DWORD PTR [rsp+40]
lea eax, [rax+rax*8]
vmovss xmm3, DWORD PTR [rsp+48]
shr ax, 11
vmovss xmm5, DWORD PTR [rsp+44]
lea eax, [rax+rax*2]
sal eax, 2
sub ebp, eax
movzx ebp, bpl
lea rcx, [rbp+0+rbp*2]
movsx eax, BYTE PTR _ZN3feaL5grad3E[rcx+1]
vcvtsi2ss xmm1, xmm1, eax
movsx eax, BYTE PTR _ZN3feaL5grad3E[rcx]
vmulss xmm8, xmm8, xmm1
vxorps xmm1, xmm1, xmm1
vcvtsi2ss xmm1, xmm1, eax
movsx eax, BYTE PTR _ZN3feaL5grad3E[rcx+2]
vfmadd231ss xmm8, xmm11, xmm1
vxorps xmm1, xmm1, xmm1
vcvtsi2ss xmm1, xmm1, eax
vfmadd132ss xmm10, xmm8, xmm1
vcvtss2sd xmm10, xmm10, xmm10
vmulsd xmm4, xmm10, xmm0
vcvtsd2ss xmm4, xmm4, xmm4
.L22:
vmovss xmm6, DWORD PTR [rsp+24]
vucomiss xmm3, xmm6
ja .L23
vmovsd xmm1, QWORD PTR .LC6[rip]
vmovss DWORD PTR [rsp+32], xmm4
vxorpd xmm0, xmm0, xmm0
vcvtss2sd xmm0, xmm0, xmm6
vmovss DWORD PTR [rsp+24], xmm5
call pow
movzx edx, bl
vxorps xmm1, xmm1, xmm1
vxorps xmm2, xmm2, xmm2
lea eax, [rdx+rdx*8]
vmovss xmm4, DWORD PTR [rsp+32]
lea eax, [rdx+rax*2]
vmovss xmm5, DWORD PTR [rsp+24]
lea eax, [rax+rax*8]
shr ax, 11
lea eax, [rax+rax*2]
sal eax, 2
sub ebx, eax
movzx ebx, bl
lea rcx, [rbx+rbx*2]
movsx eax, BYTE PTR _ZN3feaL5grad3E[rcx+1]
vcvtsi2ss xmm1, xmm1, eax
movsx eax, BYTE PTR _ZN3feaL5grad3E[rcx]
vmulss xmm1, xmm1, DWORD PTR [rsp+16]
vcvtsi2ss xmm2, xmm2, eax
movsx eax, BYTE PTR _ZN3feaL5grad3E[rcx+2]
vfmadd231ss xmm1, xmm2, DWORD PTR [rsp+12]
vxorps xmm2, xmm2, xmm2
vcvtsi2ss xmm2, xmm2, eax
vfmadd231ss xmm1, xmm2, DWORD PTR [rsp+28]
vcvtss2sd xmm1, xmm1, xmm1
vmulsd xmm3, xmm1, xmm0
vcvtsd2ss xmm3, xmm3, xmm3
.L23:
vaddss xmm0, xmm5, DWORD PTR [rsp+20]
vaddss xmm0, xmm4, xmm0
vaddss xmm3, xmm3, xmm0
vmulss xmm0, xmm3, DWORD PTR .LC12[rip]
add rsp, 88
.cfi_remember_state
.cfi_def_cfa_offset 40
pop rbx
.cfi_def_cfa_offset 32
pop rbp
.cfi_def_cfa_offset 24
pop r12
.cfi_def_cfa_offset 16
pop r13
.cfi_def_cfa_offset 8
ret
.p2align 4,,10
.p2align 3
.L40:
.cfi_restore_state
vucomiss xmm2, xmm4
ja .L41
vmovss xmm1, DWORD PTR .LC0[rip]
vxorps xmm3, xmm3, xmm3
xor r9d, r9d
vmovaps xmm10, xmm3
mov edi, 1
mov esi, 1
vmovaps xmm8, xmm1
vmovaps xmm11, xmm1
.L37:
vmovaps xmm12, xmm3
xor r10d, r10d
vmovaps xmm9, xmm1
mov ebp, 1
vmovaps xmm13, xmm3
xor r11d, r11d
jmp .L18
.p2align 4,,10
.p2align 3
.L39:
xor edi, edi
vucomiss xmm4, xmm2
vxorps xmm3, xmm3, xmm3
vmovss xmm1, DWORD PTR .LC0[rip]
mov r9d, 1
vmovaps xmm8, xmm3
mov esi, 1
vmovaps xmm10, xmm1
vmovaps xmm11, xmm1
jae .L25
jmp .L38
.p2align 4,,10
.p2align 3
.L41:
vmovss xmm1, DWORD PTR .LC0[rip]
vxorps xmm3, xmm3, xmm3
mov r9d, 1
mov edi, 1
vmovaps xmm11, xmm3
xor esi, esi
vmovaps xmm10, xmm1
vmovaps xmm8, xmm1
jmp .L37
.cfi_endproc
.LFE4696:
.size _ZN3fea12raw_noise_3dEfffPKh, .-_ZN3fea12raw_noise_3dEfffPKh
.section .text.unlikely
.LCOLDE13:
.text
.LHOTE13:
.section .text.unlikely._ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv,"axG",@progbits,_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv,comdat
.align 2
.LCOLDB18:
.section .text._ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv,"axG",@progbits,_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv,comdat
.LHOTB18:
.align 2
.p2align 4,,15
.weak _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv
.type _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv, @function
_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv:
.LFB4872:
.cfi_startproc
mov rax, QWORD PTR [rdi+4992]
lea r10, [rsp+8]
.cfi_def_cfa 10, 0
and rsp, -32
push QWORD PTR [r10-8]
push rbp
.cfi_escape 0x10,0x6,0x2,0x76,0
mov rbp, rsp
push r12
push r10
.cfi_escape 0xf,0x3,0x76,0x70,0x6
.cfi_escape 0x10,0xc,0x2,0x76,0x78
push rbx
.cfi_escape 0x10,0x3,0x2,0x76,0x68
cmp rax, 623
ja .L43
lea rdx, [rax+1]
mov rax, QWORD PTR [rdi+rax*8]
.L44:
mov QWORD PTR [rdi+4992], rdx
mov rdx, rax
pop rbx
shr rdx, 11
pop r10
.cfi_remember_state
.cfi_def_cfa 10, 0
mov edx, edx
pop r12
xor rax, rdx
pop rbp
mov rdx, rax
lea rsp, [r10-8]
.cfi_def_cfa 7, 8
sal rdx, 7
and edx, 2636928640
xor rdx, rax
mov rax, rdx
sal rax, 15
and eax, 4022730752
xor rax, rdx
mov rdx, rax
shr rdx, 18
xor rax, rdx
ret
.p2align 4,,10
.p2align 3
.L43:
.cfi_restore_state
mov rax, rdi
and eax, 31
shr rax, 3
neg rax
and eax, 3
je .L58
mov rsi, QWORD PTR [rdi+8]
xor r9d, r9d
mov r8d, 2567483615
mov rdx, QWORD PTR [rdi]
mov rcx, rsi
and ecx, 2147483647
and rdx, -2147483648
or rdx, rcx
mov rcx, r9
test dl, 1
cmovne rcx, r8
xor rcx, QWORD PTR [rdi+3176]
shr rdx
xor rdx, rcx
mov QWORD PTR [rdi], rdx
cmp rax, 1
je .L59
mov rcx, QWORD PTR [rdi+16]
and rsi, -2147483648
mov rdx, rcx
and edx, 2147483647
or rdx, rsi
mov rsi, r9
test dl, 1
cmovne rsi, r8
xor rsi, QWORD PTR [rdi+3184]
shr rdx
xor rdx, rsi
mov QWORD PTR [rdi+8], rdx
cmp rax, 3
jne .L60
mov rdx, QWORD PTR [rdi+24]
and rcx, -2147483648
mov r10d, 224
and edx, 2147483647
or rdx, rcx
test dl, 1
cmove r8, r9
xor r8, QWORD PTR [rdi+3192]
shr rdx
mov r9b, 3
xor rdx, r8
mov QWORD PTR [rdi+16], rdx
.L46:
mov ebx, 227
sub rbx, rax
.L45:
sal rax, 3
xor edx, edx
vpxor xmm7, xmm7, xmm7
vmovdqa ymm3, YMMWORD PTR .LC14[rip]
vmovdqa ymm4, YMMWORD PTR .LC15[rip]
lea rcx, [rdi+rax]
vmovdqa ymm5, YMMWORD PTR .LC16[rip]
lea r8, [rdi+8+rax]
vmovdqa ymm6, YMMWORD PTR .LC17[rip]
lea rsi, [rdi+3176+rax]
xor eax, eax
.p2align 4,,10
.p2align 3
.L47:
vpand ymm0, ymm3, YMMWORD PTR [r8+rax]
vpand ymm2, ymm4, YMMWORD PTR [rcx+rax]
vpor ymm2, ymm0, ymm2
vpand ymm0, ymm2, ymm5
vpcmpeqq ymm0, ymm0, ymm7
add rdx, 1
vpandn ymm0, ymm0, ymm6
vpxor ymm1, ymm0, YMMWORD PTR [rsi+rax]
vpsrlq ymm0, ymm2, 1
vpxor ymm0, ymm1, ymm0
vmovdqa YMMWORD PTR [rcx+rax], ymm0
add rax, 32
cmp rdx, 55
jbe .L47
lea rax, [r9+224]
lea r11, [r10-224]
cmp rbx, 224
je .L49
lea rcx, [rdi+rax*8]
mov r8d, 2567483615
mov rdx, QWORD PTR [rcx+8]
lea rbx, [r9+225]
mov rsi, QWORD PTR [rcx]
mov rax, rdx
and rsi, -2147483648
and eax, 2147483647
or rax, rsi
xor esi, esi
mov r12, rsi
test al, 1
cmovne r12, r8
xor r12, QWORD PTR [rcx+3176]
shr rax
xor rax, r12
mov QWORD PTR [rcx], rax
cmp r10, 225
je .L49
lea r10, [rdi+rbx*8]
and rdx, -2147483648
add r9, 226
mov rcx, QWORD PTR [r10+8]
mov rax, rcx
and eax, 2147483647
or rax, rdx
mov rdx, rsi
test al, 1
cmovne rdx, r8
xor rdx, QWORD PTR [r10+3176]
shr rax
xor rax, rdx
mov QWORD PTR [r10], rax
cmp r11, 2
je .L49
lea rax, [rdi+r9*8]
and rcx, -2147483648
mov rdx, QWORD PTR [rax+8]
and edx, 2147483647
or rcx, rdx
test cl, 1
cmovne rsi, r8
xor rsi, QWORD PTR [rax+3176]
shr rcx
xor rcx, rsi
mov QWORD PTR [rax], rcx
.L49:
lea r8, [rdi+1816]
and r8d, 31
shr r8, 3
neg r8
and r8d, 3
je .L61
mov rcx, QWORD PTR [rdi+1824]
xor r9d, r9d
mov esi, 2567483615
mov rax, QWORD PTR [rdi+1816]
mov rdx, rcx
and edx, 2147483647
and rax, -2147483648
or rax, rdx
mov rdx, r9
test al, 1
cmovne rdx, rsi
xor rdx, QWORD PTR [rdi]
shr rax
xor rax, rdx
mov QWORD PTR [rdi+1816], rax
cmp r8, 1
je .L62
mov rdx, QWORD PTR [rdi+1832]
and rcx, -2147483648
mov rax, rdx
and eax, 2147483647
or rax, rcx
mov rcx, r9
test al, 1
cmovne rcx, rsi
xor rcx, QWORD PTR [rdi+8]
shr rax
xor rax, rcx
mov QWORD PTR [rdi+1824], rax
cmp r8, 3
jne .L63
mov rax, QWORD PTR [rdi+1840]
and rdx, -2147483648
mov ebx, 393
mov r12d, 230
and eax, 2147483647
or rax, rdx
test al, 1
cmove rsi, r9
xor rsi, QWORD PTR [rdi+16]
shr rax
xor rax, rsi
mov QWORD PTR [rdi+1832], rax
.L52:
mov r10d, 396
mov esi, 98
mov r11d, 392
sub r10, r8
.L51:
lea rax, [1816+r8*8]
xor edx, edx
vpxor xmm7, xmm7, xmm7
lea rcx, [rdi+rax]
lea r9, [rdi+8+rax]
lea r8, [rdi-1816+rax]
xor eax, eax
.p2align 4,,10
.p2align 3
.L53:
vpand ymm0, ymm3, YMMWORD PTR [r9+rax]
vpand ymm2, ymm4, YMMWORD PTR [rcx+rax]
vpor ymm2, ymm0, ymm2
vpand ymm0, ymm2, ymm5
vpcmpeqq ymm0, ymm0, ymm7
add rdx, 1
vpandn ymm0, ymm0, ymm6
vpxor ymm1, ymm0, YMMWORD PTR [r8+rax]
vpsrlq ymm0, ymm2, 1
vpxor ymm0, ymm1, ymm0
vmovdqa YMMWORD PTR [rcx+rax], ymm0
add rax, 32
cmp rdx, rsi
jb .L53
lea rcx, [r12+r11]
sub rbx, r11
mov r9, rbx
cmp r11, r10
je .L55
lea r10, [rdi+rcx*8]
mov r8d, 2567483615
mov rdx, QWORD PTR [r10+8]
lea rbx, [rcx+1]
mov rsi, QWORD PTR [r10]
mov rax, rdx
and rsi, -2147483648
and eax, 2147483647
or rax, rsi
xor esi, esi
mov r11, rsi
test al, 1
cmovne r11, r8
xor r11, QWORD PTR [r10-1816]
shr rax
xor rax, r11
mov QWORD PTR [r10], rax
cmp r9, 1
je .L55
lea r11, [rdi+rbx*8]
and rdx, -2147483648
lea r10, [rcx+2]
mov rcx, QWORD PTR [r11+8]
mov rax, rcx
and eax, 2147483647
or rax, rdx
mov rdx, rsi
test al, 1
cmovne rdx, r8
xor rdx, QWORD PTR [r11-1816]
shr rax
xor rax, rdx
mov QWORD PTR [r11], rax
cmp r9, 2
je .L55
lea rax, [rdi+r10*8]
and rcx, -2147483648
mov rdx, QWORD PTR [rax+8]
and edx, 2147483647
or rcx, rdx
test cl, 1
cmovne rsi, r8
xor rsi, QWORD PTR [rax-1816]
shr rcx
xor rcx, rsi
mov QWORD PTR [rax], rcx
.L55:
mov rax, QWORD PTR [rdi]
mov esi, 2567483615
mov rdx, QWORD PTR [rdi+4984]
mov rcx, rax
and ecx, 2147483647
and rdx, -2147483648
or rdx, rcx
mov rcx, rdx
shr rcx
xor rcx, QWORD PTR [rdi+3168]
and edx, 1
cmovne rdx, rsi
xor rdx, rcx
mov QWORD PTR [rdi+4984], rdx
mov edx, 1
vzeroupper
jmp .L44
.p2align 4,,10
.p2align 3
.L63:
mov ebx, 394
mov r12d, 229
jmp .L52
.p2align 4,,10
.p2align 3
.L62:
mov ebx, 395
mov r12d, 228
jmp .L52
.p2align 4,,10
.p2align 3
.L60:
mov r10d, 225
mov r9d, 2
jmp .L46
.p2align 4,,10
.p2align 3
.L59:
mov r10d, 226
mov r9d, 1
jmp .L46
.p2align 4,,10
.p2align 3
.L58:
mov ebx, 227
mov r10d, 227
xor r9d, r9d
jmp .L45
.p2align 4,,10
.p2align 3
.L61:
mov r12d, 227
mov ebx, 396
mov esi, 99
mov r10d, 396
mov r11d, 396
jmp .L51
.cfi_endproc
.LFE4872:
.size _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv, .-_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv
.section .text.unlikely._ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv,"axG",@progbits,_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv,comdat
.LCOLDE18:
.section .text._ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv,"axG",@progbits,_ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv,comdat
.LHOTE18:
.section .text.unlikely._ZNSt24uniform_int_distributionIiEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEiRT_RKNS0_10param_typeE,"axG",@progbits,_ZNSt24uniform_int_distributionIiEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEiRT_RKNS0_10param_typeE,comdat
.align 2
.LCOLDB19:
.section .text._ZNSt24uniform_int_distributionIiEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEiRT_RKNS0_10param_typeE,"axG",@progbits,_ZNSt24uniform_int_distributionIiEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEiRT_RKNS0_10param_typeE,comdat
.LHOTB19:
.align 2
.p2align 4,,15
.weak _ZNSt24uniform_int_distributionIiEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEiRT_RKNS0_10param_typeE
.type _ZNSt24uniform_int_distributionIiEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEiRT_RKNS0_10param_typeE, @function
_ZNSt24uniform_int_distributionIiEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEiRT_RKNS0_10param_typeE:
.LFB4828:
.cfi_startproc
push r15
.cfi_def_cfa_offset 16
.cfi_offset 15, -16
mov rax, rdx
push r14
.cfi_def_cfa_offset 24
.cfi_offset 14, -24
push r13
.cfi_def_cfa_offset 32
.cfi_offset 13, -32
push r12
.cfi_def_cfa_offset 40
.cfi_offset 12, -40
push rbp
.cfi_def_cfa_offset 48
.cfi_offset 6, -48
push rbx
.cfi_def_cfa_offset 56
.cfi_offset 3, -56
mov rbx, rsi
sub rsp, 136
.cfi_def_cfa_offset 192
movsx rax, DWORD PTR [rax]
mov QWORD PTR [rsp+96], rdx
movsx rdx, DWORD PTR [rdx+4]
sub rdx, rax
mov eax, 4294967294
mov QWORD PTR [rsp+56], rdx
cmp rdx, rax
ja .L82
mov rcx, rdx
mov al, -1
xor edx, edx
add rcx, 1
div rcx
imul rcx, rax
mov r12, rax
mov r13, rcx
.L83:
mov rdi, rbx
call _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv
cmp r13, rax
jbe .L83
xor edx, edx
div r12
.L84:
mov rcx, QWORD PTR [rsp+96]
add eax, DWORD PTR [rcx]
add rsp, 136
.cfi_remember_state
.cfi_def_cfa_offset 56
pop rbx
.cfi_def_cfa_offset 48
pop rbp
.cfi_def_cfa_offset 40
pop r12
.cfi_def_cfa_offset 32
pop r13
.cfi_def_cfa_offset 24
pop r14
.cfi_def_cfa_offset 16
pop r15
.cfi_def_cfa_offset 8
ret
.L82:
.cfi_restore_state
mov eax, 4294967295
cmp rdx, rax
je .L85
mov rax, rdx
mov r13, rdi
sar rax, 63
mov rsi, rax
mov QWORD PTR [rsp+88], rax
mov r14, rax
mov QWORD PTR [rsp+72], rax
shr rsi, 32
mov QWORD PTR [rsp+64], rax
mov r15, rsi
mov QWORD PTR [rsp+80], rax
mov QWORD PTR [rsp+40], rax
mov QWORD PTR [rsp+24], rax
mov QWORD PTR [rsp+8], rax
add rax, 1
mov QWORD PTR [rsp+104], rax
mov QWORD PTR [rsp+16], rax
mov QWORD PTR [rsp+32], rax
.L137:
mov eax, 4294967294
cmp QWORD PTR [rsp+88], rax
ja .L138
mov rcx, QWORD PTR [rsp+104]
mov al, -1
xor edx, edx
div rcx
imul rcx, rax
mov r12, rax
mov rbp, rcx
.L87:
mov rdi, rbx
call _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv
cmp rbp, rax
jbe .L87
xor edx, edx
div r12
.L88:
sal rax, 32
mov rdi, rbx
mov rbp, rax
call _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv
add rax, rbp
jc .L137
cmp rax, QWORD PTR [rsp+56]
ja .L137
jmp .L84
.L138:
mov rax, QWORD PTR [rsp+24]
add rax, 1
mov QWORD PTR [rsp+48], rax
.L136:
mov eax, 4294967294
cmp QWORD PTR [rsp+72], rax
ja .L135
mov rax, QWORD PTR [rsp+72]
xor edx, edx
lea rbp, [rax+1]
mov eax, 4294967295
div rbp
imul rbp, rax
mov r12, rax
.L91:
mov rdi, rbx
call _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv
cmp rbp, rax
jbe .L91
xor edx, edx
div r12
.L92:
sal rax, 32
mov rdi, rbx
mov rbp, rax
call _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv
add rax, rbp
jc .L136
cmp rax, QWORD PTR [rsp+88]
ja .L136
jmp .L88
.p2align 4,,10
.p2align 3
.L147:
xor edx, edx
div r12
.L95:
sal rax, 32
mov rdi, rbx
mov rbp, rax
call _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv
add rax, rbp
jc .L135
cmp rax, QWORD PTR [rsp+72]
jbe .L92
.L135:
mov eax, 4294967294
cmp QWORD PTR [rsp+64], rax
ja .L134
mov rax, QWORD PTR [rsp+64]
xor edx, edx
lea rbp, [rax+1]
mov eax, 4294967295
div rbp
imul rbp, rax
mov r12, rax
.L94:
mov rdi, rbx
call _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv
cmp rbp, rax
jbe .L94
jmp .L147
.L148:
xor edx, edx
div r12
.L98:
sal rax, 32
mov rdi, rbx
mov rbp, rax
call _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv
add rax, rbp
jc .L134
cmp QWORD PTR [rsp+64], rax
jae .L95
.L134:
mov eax, 4294967294
cmp QWORD PTR [rsp+80], rax
ja .L133
mov rax, QWORD PTR [rsp+80]
xor edx, edx
lea rbp, [rax+1]
mov eax, 4294967295
div rbp
imul rbp, rax
mov r12, rax
.L97:
mov rdi, rbx
call _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv
cmp rbp, rax
jbe .L97
jmp .L148
.L149:
xor edx, edx
div r12
.L101:
sal rax, 32
mov rdi, rbx
mov rbp, rax
call _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv
add rax, rbp
jc .L133
cmp rax, QWORD PTR [rsp+80]
jbe .L98
.L133:
mov eax, 4294967294
cmp QWORD PTR [rsp+40], rax
ja .L132
mov rax, QWORD PTR [rsp+40]
xor edx, edx
lea rbp, [rax+1]
mov eax, 4294967295
div rbp
imul rbp, rax
mov r12, rax
.p2align 4,,10
.p2align 3
.L100:
mov rdi, rbx
call _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv
cmp rbp, rax
jbe .L100
jmp .L149
.L150:
xor edx, edx
div rbp
.L104:
sal rax, 32
mov rdi, rbx
mov rbp, rax
call _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv
add rax, rbp
jc .L132
cmp rax, QWORD PTR [rsp+40]
jbe .L101
.L132:
mov eax, 4294967294
cmp QWORD PTR [rsp+24], rax
ja .L118
mov rcx, QWORD PTR [rsp+48]
mov al, -1
xor edx, edx
mov r12, rcx
div rcx
mov rbp, rax
imul r12, rax
.p2align 4,,10
.p2align 3
.L103:
mov rdi, rbx
call _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv
cmp r12, rax
jbe .L103
jmp .L150
.L118:
mov QWORD PTR [rsp], rax
.L131:
mov rcx, QWORD PTR [rsp]
cmp QWORD PTR [rsp+8], rcx
ja .L130
.L151:
mov rsi, QWORD PTR [rsp+32]
mov eax, 4294967295
xor edx, edx
mov r12, rsi
div rsi
mov rbp, rax
imul r12, rax
.p2align 4,,10
.p2align 3
.L106:
mov rdi, rbx
call _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv
cmp r12, rax
jbe .L106
xor edx, edx
div rbp
.L107:
sal rax, 32
mov rdi, rbx
mov rbp, rax
call _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv
add rax, rbp
jc .L131
cmp rax, QWORD PTR [rsp+24]
jbe .L104
mov rcx, QWORD PTR [rsp]
cmp QWORD PTR [rsp+8], rcx
jbe .L151
.p2align 4,,10
.p2align 3
.L130:
cmp r14, QWORD PTR [rsp]
ja .L129
.L152:
mov rcx, QWORD PTR [rsp+16]
mov eax, 4294967295
xor edx, edx
mov r12, rcx
div rcx
mov rbp, rax
imul r12, rax
.p2align 4,,10
.p2align 3
.L109:
mov rdi, rbx
call _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv
cmp r12, rax
jbe .L109
xor edx, edx
div rbp
.L110:
sal rax, 32
mov rdi, rbx
mov rbp, rax
call _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv
add rax, rbp
jc .L130
cmp rax, QWORD PTR [rsp+8]
jbe .L107
cmp r14, QWORD PTR [rsp]
jbe .L152
.p2align 4,,10
.p2align 3
.L129:
mov rdi, r13
mov rsi, rbx
mov DWORD PTR [rsp+116], r15d
lea rdx, [rsp+112]
mov DWORD PTR [rsp+112], 0
call _ZNSt24uniform_int_distributionIiEclISt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEEEiRT_RKNS0_10param_typeE
mov rdi, rbx
mov rbp, rax
sal rbp, 32
call _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv
add rax, rbp
jc .L129
cmp rax, r14
ja .L129
jmp .L110
.L85:
mov rdi, rsi
call _ZNSt23mersenne_twister_engineImLm32ELm624ELm397ELm31ELm2567483615ELm11ELm4294967295ELm7ELm2636928640ELm15ELm4022730752ELm18ELm1812433253EEclEv
jmp .L84
.cfi_endproc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment