Function at 0x596400
Capabilities:
Encode data using xor
Encrypt data using salsa20 or chacha

Disassembly:
mov r14, qword [0x008afa40]
mov r14, qword gs:[r14]
mov r14, qword [r14]
lea r12, [rsp - 0xa8]
cmp r12, qword [r14 + 0x10]
jbe 0x59ac85
push rbp
mov rbp, rsp
sub rsp, 0x120
mov rbp, rsp
add rbp, 0x20
and rbp, 0xffffffffffffffe0
mov rdi, qword [rsp + 0x130]
mov r8, qword [rsp + 0x148]
mov rsi, qword [rsp + 0x160]
mov rbx, qword [rsp + 0x168]
mov rcx, qword [rsp + 0x178]
cmp byte [0x008af78d], 1
je 0x59865c
cmp rbx, 0x80
jbe 0x596e63
movdqu xmm0, xmmword [0x006dc9c0]
movdqu xmm3, xmmword [r8 + 0x10]
movdqu xmm6, xmmword [r8 + 0x20]
movdqu xmm9, xmmword [r8 + 0x30]
movdqa xmm13, xmm9
movdqa xmmword [rbp + 0x20], xmm3
movdqa xmmword [rbp + 0x30], xmm6
movdqa xmmword [rbp + 0x80], xmm9
mov r9, 0xa
paddd xmm0, xmm3
pxor xmm9, xmm0
pshufb xmm9, xmmword [0x006dc9e0]
paddd xmm6, xmm9
pxor xmm3, xmm6
movdqa xmm12, xmm3
pslld xmm12, 0xc
psrld xmm3, 0x14
pxor xmm3, xmm12
paddd xmm0, xmm3
pxor xmm9, xmm0
pshufb xmm9, xmmword [0x006dca00]
paddd xmm6, xmm9
pxor xmm3, xmm6
movdqa xmm12, xmm3
pslld xmm12, 7
psrld xmm3, 0x19
pxor xmm3, xmm12
palignr xmm3, xmm3, 4
palignr xmm6, xmm6, 8
palignr xmm9, xmm9, 0xc
paddd xmm0, xmm3
pxor xmm9, xmm0
pshufb xmm9, xmmword [0x006dc9e0]
paddd xmm6, xmm9
pxor xmm3, xmm6
movdqa xmm12, xmm3
pslld xmm12, 0xc
psrld xmm3, 0x14
pxor xmm3, xmm12
paddd xmm0, xmm3
pxor xmm9, xmm0
pshufb xmm9, xmmword [0x006dca00]
paddd xmm6, xmm9
pxor xmm3, xmm6
movdqa xmm12, xmm3
pslld xmm12, 7
psrld xmm3, 0x19
pxor xmm3, xmm12
palignr xmm3, xmm3, 0xc
palignr xmm6, xmm6, 8
palignr xmm9, xmm9, 4
dec r9
jne 0x5964b1
paddd xmm0, xmmword [0x006dc9c0]
paddd xmm3, xmmword [rbp + 0x20]
pand xmm0, xmmword [0x006dca60]
movdqa xmmword [rbp], xmm0
movdqa xmmword [rbp + 0x10], xmm3
mov r9, qword [rsp + 0x180]
call sym.polyHashADInternal
cmp rbx, 0x100
jb 0x596d4f
movdqa xmm0, xmmword [0x006dc9c0]
movdqa xmm3, xmmword [rbp + 0x20]
movdqa xmm6, xmmword [rbp + 0x30]
movdqa xmm9, xmmword [rbp + 0x80]
paddd xmm9, xmmword [0x006db9a0]
movdqa xmm1, xmm0
movdqa xmm4, xmm3
movdqa xmm7, xmm6
movdqa xmm10, xmm9
paddd xmm10, xmmword [0x006db9a0]
movdqa xmm2, xmm1
movdqa xmm5, xmm4
movdqa xmm8, xmm7
movdqa xmm11, xmm10
paddd xmm11, xmmword [0x006db9a0]
movdqa xmm12, xmm2
movdqa xmm13, xmm5
movdqa xmm14, xmm8
movdqa xmm15, xmm11
paddd xmm15, xmmword [0x006db9a0]
movdqa xmmword [rbp + 0x50], xmm9
movdqa xmmword [rbp + 0x60], xmm10
movdqa xmmword [rbp + 0x70], xmm11
movdqa xmmword [rbp + 0x80], xmm15
mov rcx, 4
mov r9, rsi
movdqa xmmword [rbp + 0x40], xmm14
paddd xmm0, xmm3
pxor xmm9, xmm0
pshufb xmm9, xmmword [0x006dc9e0]
paddd xmm6, xmm9
pxor xmm3, xmm6
movdqa xmm14, xmm3
pslld xmm14, 0xc
psrld xmm3, 0x14
pxor xmm3, xmm14
paddd xmm0, xmm3
pxor xmm9, xmm0
pshufb xmm9, xmmword [0x006dca00]
paddd xmm6, xmm9
pxor xmm3, xmm6
movdqa xmm14, xmm3
pslld xmm14, 7
psrld xmm3, 0x19
pxor xmm3, xmm14
paddd xmm1, xmm4
pxor xmm10, xmm1
pshufb xmm10, xmmword [0x006dc9e0]
paddd xmm7, xmm10
pxor xmm4, xmm7
movdqa xmm14, xmm4
pslld xmm14, 0xc
psrld xmm4, 0x14
pxor xmm4, xmm14
paddd xmm1, xmm4
pxor xmm10, xmm1
pshufb xmm10, xmmword [0x006dca00]
paddd xmm7, xmm10
pxor xmm4, xmm7
movdqa xmm14, xmm4
pslld xmm14, 7
psrld xmm4, 0x19
pxor xmm4, xmm14
paddd xmm2, xmm5
pxor xmm11, xmm2
pshufb xmm11, xmmword [0x006dc9e0]
paddd xmm8, xmm11
pxor xmm5, xmm8
movdqa xmm14, xmm5
pslld xmm14, 0xc
psrld xmm5, 0x14
pxor xmm5, xmm14
paddd xmm2, xmm5
pxor xmm11, xmm2
pshufb xmm11, xmmword [0x006dca00]
paddd xmm8, xmm11
pxor xmm5, xmm8
movdqa xmm14, xmm5
pslld xmm14, 7
psrld xmm5, 0x19
pxor xmm5, xmm14
movdqa xmm14, xmmword [rbp + 0x40]
movdqa xmmword [rbp + 0x40], xmm7
paddd xmm12, xmm13
pxor xmm15, xmm12
pshufb xmm15, xmmword [0x006dc9e0]
paddd xmm14, xmm15
pxor xmm13, xmm14
movdqa xmm7, xmm13
pslld xmm7, 0xc
psrld xmm13, 0x14
pxor xmm13, xmm7
paddd xmm12, xmm13
pxor xmm15, xmm12
pshufb xmm15, xmmword [0x006dca00]
paddd xmm14, xmm15
pxor xmm13, xmm14
movdqa xmm7, xmm13
pslld xmm7, 7
psrld xmm13, 0x19
pxor xmm13, xmm7
movdqa xmm7, xmmword [rbp + 0x40]
add r10, qword [r9]
adc r11, qword [r9 + 8]
adc r12, 1
palignr xmm3, xmm3, 4
palignr xmm4, xmm4, 4
palignr xmm5, xmm5, 4
palignr xmm13, xmm13, 4
palignr xmm6, xmm6, 8
palignr xmm7, xmm7, 8
palignr xmm8, xmm8, 8
palignr xmm14, xmm14, 8
palignr xmm9, xmm9, 0xc
palignr xmm10, xmm10, 0xc
palignr xmm11, xmm11, 0xc
palignr xmm15, xmm15, 0xc
mov rax, qword [rbp]
mov r15, rax
mul r10
mov r13, rax
mov r14, rdx
mov rax, qword [rbp]
mul r11
imul r15, r12
add r14, rax
adc r15, rdx
mov rax, qword [rbp + 8]
mov r8, rax
mul r10
add r14, rax
adc rdx, 0
mov r10, rdx
mov rax, qword [rbp + 8]
mul r11
add r15, rax
adc rdx, 0
lea r9, [r9 + 0x10]
movdqa xmmword [rbp + 0x40], xmm14
paddd xmm0, xmm3
pxor xmm9, xmm0
pshufb xmm9, xmmword [0x006dc9e0]
paddd xmm6, xmm9
pxor xmm3, xmm6
movdqa xmm14, xmm3
pslld xmm14, 0xc
psrld xmm3, 0x14
pxor xmm3, xmm14
paddd xmm0, xmm3
pxor xmm9, xmm0
pshufb xmm9, xmmword [0x006dca00]
paddd xmm6, xmm9
pxor xmm3, xmm6
movdqa xmm14, xmm3
pslld xmm14, 7
psrld xmm3, 0x19
pxor xmm3, xmm14
paddd xmm1, xmm4
pxor xmm10, xmm1
pshufb xmm10, xmmword [0x006dc9e0]
paddd xmm7, xmm10
pxor xmm4, xmm7
movdqa xmm14, xmm4
pslld xmm14, 0xc
psrld xmm4, 0x14
pxor xmm4, xmm14
paddd xmm1, xmm4
pxor xmm10, xmm1
pshufb xmm10, xmmword [0x006dca00]
paddd xmm7, xmm10
pxor xmm4, xmm7
movdqa xmm14, xmm4
pslld xmm14, 7
psrld xmm4, 0x19
pxor xmm4, xmm14
paddd xmm2, xmm5
pxor xmm11, xmm2
pshufb xmm11, xmmword [0x006dc9e0]
paddd xmm8, xmm11
pxor xmm5, xmm8
movdqa xmm14, xmm5
pslld xmm14, 0xc
psrld xmm5, 0x14
pxor xmm5, xmm14
paddd xmm2, xmm5
pxor xmm11, xmm2
pshufb xmm11, xmmword [0x006dca00]
paddd xmm8, xmm11
pxor xmm5, xmm8
movdqa xmm14, xmm5
pslld xmm14, 7
psrld xmm5, 0x19
pxor xmm5, xmm14
movdqa xmm14, xmmword [rbp + 0x40]
movdqa xmmword [rbp + 0x40], xmm7
imul r8, r12
add r15, r10
adc r8, rdx
paddd xmm12, xmm13
pxor xmm15, xmm12
pshufb xmm15, xmmword [0x006dc9e0]
paddd xmm14, xmm15
pxor xmm13, xmm14
movdqa xmm7, xmm13
pslld xmm7, 0xc
psrld xmm13, 0x14
pxor xmm13, xmm7
paddd xmm12, xmm13
pxor xmm15, xmm12
pshufb xmm15, xmmword [0x006dca00]
paddd xmm14, xmm15
pxor xmm13, xmm14
movdqa xmm7, xmm13
pslld xmm7, 7
psrld xmm13, 0x19
pxor xmm13, xmm7
movdqa xmm7, xmmword [rbp + 0x40]
mov r10, r13
mov r11, r14
mov r12, r15
and r12, 3
mov r13, r15
and r13, 0xfffffffffffffffc
mov r14, r8
shrd r15, r8, 2
shr r8, 2
add r10, r13
adc r11, r14
adc r12, 0
add r10, r15
adc r11, r8
adc r12, 0
palignr xmm3, xmm3, 0xc
palignr xmm4, xmm4, 0xc
palignr xmm5, xmm5, 0xc
palignr xmm13, xmm13, 0xc
palignr xmm6, xmm6, 8
palignr xmm7, xmm7, 8
palignr xmm8, xmm8, 8
palignr xmm14, xmm14, 8
palignr xmm9, xmm9, 4
palignr xmm10, xmm10, 4
palignr xmm11, xmm11, 4
palignr xmm15, xmm15, 4
dec rcx
jge 0x596678
add r10, qword [r9]
adc r11, qword [r9 + 8]
adc r12, 1
mov rax, qword [rbp]
mov r15, rax
mul r10
mov r13, rax
mov r14, rdx
mov rax, qword [rbp]
mul r11
imul r15, r12
add r14, rax
adc r15, rdx
mov rax, qword [rbp + 8]
mov r8, rax
mul r10
add r14, rax
adc rdx, 0
mov r10, rdx
mov rax, qword [rbp + 8]
mul r11
add r15, rax
adc rdx, 0
imul r8, r12
add r15, r10
adc r8, rdx
mov r10, r13
mov r11, r14
mov r12, r15
and r12, 3
mov r13, r15
and r13, 0xfffffffffffffffc
mov r14, r8
shrd r15, r8, 2
shr r8, 2
add r10, r13
adc r11, r14
adc r12, 0
add r10, r15
adc r11, r8
adc r12, 0
lea r9, [r9 + 0x10]
cmp rcx, 0xfffffffffffffffa
jg 0x596678
paddd xmm0, xmmword [0x006dc9c0]
paddd xmm1, xmmword [0x006dc9c0]
paddd xmm2, xmmword [0x006dc9c0]
paddd xmm12, xmmword [0x006dc9c0]
paddd xmm3, xmmword [rbp + 0x20]
paddd xmm4, xmmword [rbp + 0x20]
paddd xmm5, xmmword [rbp + 0x20]
paddd xmm13, xmmword [rbp + 0x20]
paddd xmm6, xmmword [rbp + 0x30]
paddd xmm7, xmmword [rbp + 0x30]
paddd xmm8, xmmword [rbp + 0x30]
paddd xmm14, xmmword [rbp + 0x30]
paddd xmm9, xmmword [rbp + 0x50]
paddd xmm10, xmmword [rbp + 0x60]
paddd xmm11, xmmword [rbp + 0x70]
paddd xmm15, xmmword [rbp + 0x80]
movdqa xmmword [rbp + 0x40], xmm15
movdqu xmm15, xmmword [rsi]
pxor xmm0, xmm15
movdqu xmmword [rdi], xmm0
movdqu xmm15, xmmword [rsi + 0x10]
pxor xmm3, xmm15
movdqu xmmword [rdi + 0x10], xmm3
movdqu xmm15, xmmword [rsi + 0x20]
pxor xmm6, xmm15
movdqu xmmword [rdi + 0x20], xmm6
movdqu xmm15, xmmword [rsi + 0x30]
pxor xmm9, xmm15
movdqu xmmword [rdi + 0x30], xmm9
movdqu xmm9, xmmword [rsi + 0x40]
pxor xmm1, xmm9
movdqu xmmword [rdi + 0x40], xmm1
movdqu xmm9, xmmword [rsi + 0x50]
pxor xmm4, xmm9
movdqu xmmword [rdi + 0x50], xmm4
movdqu xmm9, xmmword [rsi + 0x60]
pxor xmm7, xmm9
movdqu xmmword [rdi + 0x60], xmm7
movdqu xmm9, xmmword [rsi + 0x70]
pxor xmm10, xmm9
movdqu xmmword [rdi + 0x70], xmm10
movdqu xmm9, xmmword [rsi + 0x80]
pxor xmm2, xmm9
movdqu xmmword [rdi + 0x80], xmm2
movdqu xmm9, xmmword [rsi + 0x90]
pxor xmm5, xmm9
movdqu xmmword [rdi + 0x90], xmm5
movdqu xmm9, xmmword [rsi + 0xa0]
pxor xmm8, xmm9
movdqu xmmword [rdi + 0xa0], xmm8
movdqu xmm9, xmmword [rsi + 0xb0]
pxor xmm11, xmm9
movdqu xmmword [rdi + 0xb0], xmm11
movdqu xmm9, xmmword [rsi + 0xc0]
pxor xmm12, xmm9
movdqu xmmword [rdi + 0xc0], xmm12
movdqu xmm9, xmmword [rsi + 0xd0]
pxor xmm13, xmm9
movdqu xmmword [rdi + 0xd0], xmm13
movdqu xmm9, xmmword [rsi + 0xe0]
pxor xmm14, xmm9
movdqu xmmword [rdi + 0xe0], xmm14
movdqu xmm9, xmmword [rsi + 0xf0]
pxor xmm9, xmmword [rbp + 0x40]
movdqu xmmword [rdi + 0xf0], xmm9
lea rsi, [rsi + 0x100]
lea rdi, [rdi + 0x100]
sub rbx, 0x100
jmp 0x5965d0
test rbx, rbx
je 0x596d7d
cmp rbx, 0x40
jbe 0x5973ad
cmp rbx, 0x80
jbe 0x5975ce
cmp rbx, 0xc0
jbe 0x59791e
jmp 0x597f36
add r10, qword [rsp + 0x180]
adc r11, qword [rsp + 0x168]
adc r12, 1
mov rax, qword [rbp]
mov r15, rax
mul r10
mov r13, rax
mov r14, rdx
mov rax, qword [rbp]
mul r11
imul r15, r12
add r14, rax
adc r15, rdx
mov rax, qword [rbp + 8]
mov r8, rax
mul r10
add r14, rax
adc rdx, 0
mov r10, rdx
mov rax, qword [rbp + 8]
mul r11
add r15, rax
adc rdx, 0
imul r8, r12
add r15, r10
adc r8, rdx
mov r10, r13
mov r11, r14
mov r12, r15
and r12, 3
mov r13, r15
and r13, 0xfffffffffffffffc
mov r14, r8
shrd r15, r8, 2
shr r8, 2
add r10, r13
adc r11, r14
adc r12, 0
add r10, r15
adc r11, r8
adc r12, 0
mov r13, r10
mov r14, r11
mov r15, r12
sub r10, 0xfffffffffffffffb
sbb r11, 0xffffffffffffffff
sbb r12, 3
cmovb r10, r13
cmovb r11, r14
cmovb r12, r15
add r10, qword [rbp + 0x10]
adc r11, qword [rbp + 0x18]
xor rax, rax
mov rdx, 1
xor r10, qword [rsi]
xor r11, qword [rsi + 8]
or r10, r11
cmove rax, rdx
mov byte [rsp + 0x190], al
add rsp, 0x120
pop rbp
ret
movdqu xmm0, xmmword [0x006dc9c0]
movdqu xmm3, xmmword [r8 + 0x10]
movdqu xmm6, xmmword [r8 + 0x20]
movdqu xmm9, xmmword [r8 + 0x30]
movdqa xmm1, xmm0
movdqa xmm4, xmm3
movdqa xmm7, xmm6
movdqa xmm10, xmm9
paddd xmm10, xmmword [0x006db9a0]
movdqa xmm2, xmm1
movdqa xmm5, xmm4
movdqa xmm8, xmm7
movdqa xmm11, xmm10
paddd xmm11, xmmword [0x006db9a0]
movdqa xmm13, xmm3
movdqa xmm14, xmm6
movdqa xmm15, xmm10
mov r9, 0xa
paddd xmm0, xmm3
pxor xmm9, xmm0
pshufb xmm9, xmmword [0x006dc9e0]
paddd xmm6, xmm9
pxor xmm3, xmm6
movdqa xmm12, xmm3
pslld xmm12, 0xc
psrld xmm3, 0x14
pxor xmm3, xmm12
paddd xmm0, xmm3
pxor xmm9, xmm0
pshufb xmm9, xmmword [0x006dca00]
paddd xmm6, xmm9
pxor xmm3, xmm6
movdqa xmm12, xmm3
pslld xmm12, 7
psrld xmm3, 0x19
pxor xmm3, xmm12
paddd xmm1, xmm4
pxor xmm10, xmm1
pshufb xmm10, xmmword [0x006dc9e0]
paddd xmm7, xmm10
pxor xmm4, xmm7
movdqa xmm12, xmm4
pslld xmm12, 0xc
psrld xmm4, 0x14
pxor xmm4, xmm12
paddd xmm1, xmm4
pxor xmm10, xmm1
pshufb xmm10, xmmword [0x006dca00]
paddd xmm7, xmm10
pxor xmm4, xmm7
movdqa xmm12, xmm4
pslld xmm12, 7
psrld xmm4, 0x19
pxor xmm4, xmm12
paddd xmm2, xmm5
pxor xmm11, xmm2
pshufb xmm11, xmmword [0x006dc9e0]
paddd xmm8, xmm11
pxor xmm5, xmm8
movdqa xmm12, xmm5
pslld xmm12, 0xc
psrld xmm5, 0x14
pxor xmm5, xmm12
paddd xmm2, xmm5
pxor xmm11, xmm2
pshufb xmm11, xmmword [0x006dca00]
paddd xmm8, xmm11
pxor xmm5, xmm8
movdqa xmm12, xmm5
pslld xmm12, 7
psrld xmm5, 0x19
pxor xmm5, xmm12
palignr xmm3, xmm3, 4
palignr xmm4, xmm4, 4
palignr xmm5, xmm5, 4
palignr xmm6, xmm6, 8
palignr xmm7, xmm7, 8
palignr xmm8, xmm8, 8
palignr xmm9, xmm9, 0xc
palignr xmm10, xmm10, 0xc
palignr xmm11, xmm11, 0xc
paddd xmm0, xmm3
pxor xmm9, xmm0
pshufb xmm9, xmmword [0x006dc9e0]
paddd xmm6, xmm9
pxor xmm3, xmm6
movdqa xmm12, xmm3
pslld xmm12, 0xc
psrld xmm3, 0x14
pxor xmm3, xmm12
paddd xmm0, xmm3
pxor xmm9, xmm0
pshufb xmm9, xmmword [0x006dca00]
paddd xmm6, xmm9
pxor xmm3, xmm6
movdqa xmm12, xmm3
pslld xmm12, 7
psrld xmm3, 0x19
pxor xmm3, xmm12
paddd xmm1, xmm4
pxor xmm10, xmm1
pshufb xmm10, xmmword [0x006dc9e0]
paddd xmm7, xmm10
pxor xmm4, xmm7
movdqa xmm12, xmm4
pslld xmm12, 0xc
psrld xmm4, 0x14
pxor xmm4, xmm12
paddd xmm1, xmm4
pxor xmm10, xmm1
pshufb xmm10, xmmword [0x006dca00]
paddd xmm7, xmm10
pxor xmm4, xmm7
movdqa xmm12, xmm4
pslld xmm12, 7
psrld xmm4, 0x19
pxor xmm4, xmm12
paddd xmm2, xmm5
pxor xmm11, xmm2
pshufb xmm11, xmmword [0x006dc9e0]
paddd xmm8, xmm11
pxor xmm5, xmm8
movdqa xmm12, xmm5
pslld xmm12, 0xc
psrld xmm5, 0x14
pxor xmm5, xmm12
paddd xmm2, xmm5
pxor xmm11, xmm2
pshufb xmm11, xmmword [0x006dca00]
paddd xmm8, xmm11
pxor xmm5, xmm8
movdqa xmm12, xmm5
pslld xmm12, 7
psrld xmm5, 0x19
pxor xmm5, xmm12
palignr xmm3, xmm3, 0xc
palignr xmm4, xmm4, 0xc
palignr xmm5, xmm5, 0xc
palignr xmm6, xmm6, 8
palignr xmm7, xmm7, 8
palignr xmm8, xmm8, 8
palignr xmm9, xmm9, 4
palignr xmm10, xmm10, 4
palignr xmm11, xmm11, 4
dec r9
jne 0x596ec8
paddd xmm0, xmmword [0x006dc9c0]
paddd xmm1, xmmword [0x006dc9c0]
paddd xmm2, xmmword [0x006dc9c0]
paddd xmm3, xmm13
paddd xmm4, xmm13
paddd xmm5, xmm13
paddd xmm7, xmm14
paddd xmm8, xmm14
paddd xmm10, xmm15
paddd xmm15, xmmword [0x006db9a0]
paddd xmm11, xmm15
pand xmm0, xmmword [0x006dca60]
movdqu xmmword [rbp], xmm0
movdqu xmmword [rbp + 0x10], xmm3
mov r9, qword [rsp + 0x180]
call sym.polyHashADInternal
cmp rbx, 0x10
jb 0x5972cd
sub rbx, 0x10
add r10, qword [rsi]
adc r11, qword [rsi + 8]
adc r12, 1
movdqu xmm12, xmmword [rsi]
pxor xmm1, xmm12
movdqu xmmword [rdi], xmm1
lea rsi, [rsi + 0x10]
lea rdi, [rdi + 0x10]
mov rax, qword [rbp]
mov r15, rax
mul r10
mov r13, rax
mov r14, rdx
mov rax, qword [rbp]
mul r11
imul r15, r12
add r14, rax
adc r15, rdx
mov rax, qword [rbp + 8]
mov r8, rax
mul r10
add r14, rax
adc rdx, 0
mov r10, rdx
mov rax, qword [rbp + 8]
mul r11
add r15, rax
adc rdx, 0
imul r8, r12
add r15, r10
adc r8, rdx
mov r10, r13
mov r11, r14
mov r12, r15
and r12, 3
mov r13, r15
and r13, 0xfffffffffffffffc
mov r14, r8
shrd r15, r8, 2
shr r8, 2
add r10, r13
adc r11, r14
adc r12, 0
add r10, r15
adc r11, r8
adc r12, 0
movdqa xmm1, xmm4
movdqa xmm4, xmm7
movdqa xmm7, xmm10
movdqa xmm10, xmm2
movdqa xmm2, xmm5
movdqa xmm5, xmm8
movdqa xmm8, xmm11
jmp 0x5971f8
test rbx, rbx
je 0x596d7d
mov r9, rbx
shl r9, 4
lea r13, [0x006e09c0]
movdqu xmm12, xmmword [rsi]
add rsi, rbx
pand xmm12, xmmword [r13 + r9 - 0x10]
movdqa xmmword [rbp + 0x40], xmm12
movq r13, xmm12
mov r14, qword [rbp + 0x48]
pxor xmm12, xmm1
movq r8, xmm12
mov byte [rdi], r8b
psrldq xmm12, 1
inc rdi
dec rbx
jne 0x597307
add r10, r13
adc r11, r14
adc r12, 1
mov rax, qword [rbp]
mov r15, rax
mul r10
mov r13, rax
mov r14, rdx
mov rax, qword [rbp]
mul r11
imul r15, r12
add r14, rax
adc r15, rdx
mov rax, qword [rbp + 8]
mov r8, rax
mul r10
add r14, rax
adc rdx, 0
mov r10, rdx
mov rax, qword [rbp + 8]
mul r11
add r15, rax
adc rdx, 0
imul r8, r12
add r15, r10
adc r8, rdx
mov r10, r13
mov r11, r14
mov r12, r15
and r12, 3
mov r13, r15
and r13, 0xfffffffffffffffc
mov r14, r8
shrd r15, r8, 2
shr r8, 2
add r10, r13
adc r11, r14
adc r12, 0
add r10, r15
adc r11, r8
adc r12, 0
jmp 0x596d7d
movdqa xmm0, xmmword [0x006dc9c0]
movdqa xmm3, xmmword [rbp + 0x20]
movdqa xmm6, xmmword [rbp + 0x30]
movdqa xmm9, xmmword [rbp + 0x80]
paddd xmm9, xmmword [0x006db9a0]
movdqa xmmword [rbp + 0x50], xmm9
xor r9, r9
mov rcx, rbx
cmp rcx, 0x10
jb 0x597479
add r10, qword [rsi + r9]
adc r11, qword [rsi + r9 + 8]
adc r12, 1
mov rax, qword [rbp]
mov r15, rax
mul r10
mov r13, rax
mov r14, rdx
mov rax, qword [rbp]
mul r11
imul r15, r12
add r14, rax
adc r15, rdx
mov rax, qword [rbp + 8]
mov r8, rax
mul r10
add r14, rax
adc rdx, 0
mov r10, rdx
mov rax, qword [rbp + 8]
mul r11
add r15, rax
adc rdx, 0
imul r8, r12
add r15, r10
adc r8, rdx
mov r10, r13
mov r11, r14
mov r12, r15
and r12, 3
mov r13, r15
and r13, 0xfffffffffffffffc
mov r14, r8
shrd r15, r8, 2
shr r8, 2
add r10, r13
adc r11, r14
adc r12, 0
add r10, r15
adc r11, r8
adc r12, 0
sub rcx, 0x10
add r9, 0x10
paddd xmm0, xmm3
pxor xmm9, xmm0
pshufb xmm9, xmmword [0x006dc9e0]
paddd xmm6, xmm9
pxor xmm3, xmm6
movdqa xmm12, xmm3
pslld xmm12, 0xc
psrld xmm3, 0x14
pxor xmm3, xmm12
paddd xmm0, xmm3
pxor xmm9, xmm0
pshufb xmm9, xmmword [0x006dca00]
paddd xmm6, xmm9
pxor xmm3, xmm6
movdqa xmm12, xmm3
pslld xmm12, 7
psrld xmm3, 0x19
pxor xmm3, xmm12
palignr xmm3, xmm3, 4
palignr xmm6, xmm6, 8
palignr xmm9, xmm9, 0xc
paddd xmm0, xmm3
pxor xmm9, xmm0
pshufb xmm9, xmmword [0x006dc9e0]
paddd xmm6, xmm9
pxor xmm3, xmm6
movdqa xmm12, xmm3
pslld xmm12, 0xc
psrld xmm3, 0x14
pxor xmm3, xmm12
paddd xmm0, xmm3
pxor xmm9, xmm0
pshufb xmm9, xmmword [0x006dca00]
paddd xmm6, xmm9
pxor xmm3, xmm6
movdqa xmm12, xmm3
pslld xmm12, 7
psrld xmm3, 0x19
pxor xmm3, xmm12
palignr xmm3, xmm3, 0xc
palignr xmm6, xmm6, 8
palignr xmm9, xmm9, 4
cmp rcx, 0x10
jae 0x5973e7
cmp r9, 0xa0
jne 0x597479
paddd xmm0, xmmword [0x006dc9c0]
paddd xmm3, xmmword [rbp + 0x20]
paddd xmm6, xmmword [rbp + 0x30]
paddd xmm9, xmmword [rbp + 0x50]
cmp rbx, 0x10
jb 0x5975c5
sub rbx, 0x10
movdqu xmm12, xmmword [rsi]
pxor xmm0, xmm12
movdqu xmmword [rdi], xmm0
lea rsi, [rsi + 0x10]
lea rdi, [rdi + 0x10]
movdqa xmm0, xmm3
movdqa xmm3, xmm6
movdqa xmm6, xmm9
jmp 0x597596
movdqa xmm1, xmm0
jmp 0x5972cd
movdqa xmm1, xmmword [0x006dc9c0]
movdqa xmm4, xmmword [rbp + 0x20]
movdqa xmm7, xmmword [rbp + 0x30]
movdqa xmm10, xmmword [rbp + 0x80]
paddd xmm10, xmmword [0x006db9a0]
movdqa xmmword [rbp + 0x50], xmm10
movdqa xmm0, xmm1
movdqa xmm3, xmm4
movdqa xmm6, xmm7
movdqa xmm9, xmm10
paddd xmm9, xmmword [0x006db9a0]
movdqa xmmword [rbp + 0x60], xmm9
xor r9, r9
mov rcx, rbx
and rcx, 0xfffffffffffffff0
add r10, qword [rsi + r9]
adc r11, qword [rsi + r9 + 8]
adc r12, 1
mov rax, qword [rbp]
mov r15, rax
mul r10
mov r13, rax
mov r14, rdx
mov rax, qword [rbp]
mul r11
imul r15, r12
add r14, rax
adc r15, rdx
mov rax, qword [rbp + 8]
mov r8, rax
mul r10
add r14, rax
adc rdx, 0
mov r10, rdx
mov rax, qword [rbp + 8]
mul r11
add r15, rax
adc rdx, 0
imul r8, r12
add r15, r10
adc r8, rdx
mov r10, r13
mov r11, r14
mov r12, r15
and r12, 3
mov r13, r15
and r13, 0xfffffffffffffffc
mov r14, r8
shrd r15, r8, 2
shr r8, 2
add r10, r13
adc r11, r14
adc r12, 0
add r10, r15
adc r11, r8
adc r12, 0
add r9, 0x10
paddd xmm0, xmm3
pxor xmm9, xmm0
pshufb xmm9, xmmword [0x006dc9e0]
paddd xmm6, xmm9
pxor xmm3, xmm6
movdqa xmm12, xmm3
pslld xmm12, 0xc
psrld xmm3, 0x14
pxor xmm3, xmm12
paddd xmm0, xmm3
pxor xmm9, xmm0
pshufb xmm9, xmmword [0x006dca00]
paddd xmm6, xmm9
pxor xmm3, xmm6
movdqa xmm12, xmm3
pslld xmm12, 7
psrld xmm3, 0x19
pxor xmm3, xmm12
paddd xmm1, xmm4
pxor xmm10, xmm1
pshufb xmm10, xmmword [0x006dc9e0]
paddd xmm7, xmm10
pxor xmm4, xmm7
movdqa xmm12, xmm4
pslld xmm12, 0xc
psrld xmm4, 0x14
pxor xmm4, xmm12
paddd xmm1, xmm4
pxor xmm10, xmm1
pshufb xmm10, xmmword [0x006dca00]
paddd xmm7, xmm10
pxor xmm4, xmm7
movdqa xmm12, xmm4
pslld xmm12, 7
psrld xmm4, 0x19
pxor xmm4, xmm12
palignr xmm3, xmm3, 4
palignr xmm6, xmm6, 8
palignr xmm9, xmm9, 0xc
palignr xmm4, xmm4, 4
palignr xmm7, xmm7, 8
palignr xmm10, xmm10, 0xc
paddd xmm0, xmm3
pxor xmm9, xmm0
pshufb xmm9, xmmword [0x006dc9e0]
paddd xmm6, xmm9
pxor xmm3, xmm6
movdqa xmm12, xmm3
pslld xmm12, 0xc
psrld xmm3, 0x14
pxor xmm3, xmm12
paddd xmm0, xmm3
pxor xmm9, xmm0
pshufb xmm9, xmmword [0x006dca00]
paddd xmm6, xmm9
pxor xmm3, xmm6
movdqa xmm12, xmm3
pslld xmm12, 7
psrld xmm3, 0x19
pxor xmm3, xmm12
paddd xmm1, xmm4
pxor xmm10, xmm1
pshufb xmm10, xmmword [0x006dc9e0]
paddd xmm7, xmm10
pxor xmm4, xmm7
movdqa xmm12, xmm4
pslld xmm12, 0xc
psrld xmm4, 0x14
pxor xmm4, xmm12
paddd xmm1, xmm4
pxor xmm10, xmm1
pshufb xmm10, xmmword [0x006dca00]
paddd xmm7, xmm10
pxor xmm4, xmm7
movdqa xmm12, xmm4
pslld xmm12, 7
psrld xmm4, 0x19
pxor xmm4, xmm12
palignr xmm3, xmm3, 0xc
palignr xmm6, xmm6, 8
palignr xmm9, xmm9, 4
palignr xmm4, xmm4, 0xc
palignr xmm7, xmm7, 8
palignr xmm10, xmm10, 4
cmp r9, rcx
jb 0x597622
cmp r9, 0xa0
jne 0x5976b0
paddd xmm0, xmmword [0x006dc9c0]
paddd xmm1, xmmword [0x006dc9c0]
paddd xmm3, xmmword [rbp + 0x20]
paddd xmm4, xmmword [rbp + 0x20]
paddd xmm6, xmmword [rbp + 0x30]
paddd xmm7, xmmword [rbp + 0x30]
paddd xmm9, xmmword [rbp + 0x60]
paddd xmm10, xmmword [rbp + 0x50]
movdqu xmm12, xmmword [rsi]
movdqu xmm13, xmmword [rsi + 0x10]
movdqu xmm14, xmmword [rsi + 0x20]
movdqu xmm15, xmmword [rsi + 0x30]
pxor xmm1, xmm12
pxor xmm4, xmm13
pxor xmm7, xmm14
pxor xmm10, xmm15
movdqu xmmword [rdi], xmm1
movdqu xmmword [rdi + 0x10], xmm4
movdqu xmmword [rdi + 0x20], xmm7
movdqu xmmword [rdi + 0x30], xmm10
sub rbx, 0x40
lea rsi, [rsi + 0x40]
lea rdi, [rdi + 0x40]
jmp 0x597596
movdqa xmm2, xmmword [0x006dc9c0]
movdqa xmm5, xmmword [rbp + 0x20]
movdqa xmm8, xmmword [rbp + 0x30]
movdqa xmm11, xmmword [rbp + 0x80]
paddd xmm11, xmmword [0x006db9a0]
movdqa xmmword [rbp + 0x50], xmm11
movdqa xmm1, xmm2
movdqa xmm4, xmm5
movdqa xmm7, xmm8
movdqa xmm10, xmm11
paddd xmm10, xmmword [0x006db9a0]
movdqa xmmword [rbp + 0x60], xmm10
movdqa xmm0, xmm1
movdqa xmm3, xmm4
movdqa xmm6, xmm7
movdqa xmm9, xmm10
paddd xmm9, xmmword [0x006db9a0]
movdqa xmmword [rbp + 0x70], xmm9
mov rcx, rbx
mov r9, 0xa0
cmp rcx, 0xa0
cmovg rcx, r9
and rcx, 0xfffffffffffffff0
xor r9, r9
add r10, qword [rsi + r9]
adc r11, qword [rsi + r9 + 8]
adc r12, 1
mov rax, qword [rbp]
mov r15, rax
mul r10
mov r13, rax
mov r14, rdx
mov rax, qword [rbp]
mul r11
imul r15, r12
add r14, rax
adc r15, rdx
mov rax, qword [rbp + 8]
mov r8, rax
mul r10
add r14, rax
adc rdx, 0
mov r10, rdx
mov rax, qword [rbp + 8]
mul r11
add r15, rax
adc rdx, 0
imul r8, r12
add r15, r10
adc r8, rdx
mov r10, r13
mov r11, r14
mov r12, r15
and r12, 3
mov r13, r15
and r13, 0xfffffffffffffffc
mov r14, r8
shrd r15, r8, 2
shr r8, 2
add r10, r13
adc r11, r14
adc r12, 0
add r10, r15
adc r11, r8
adc r12, 0
add r9, 0x10
paddd xmm0, xmm3
pxor xmm9, xmm0
pshufb xmm9, xmmword [0x006dc9e0]
paddd xmm6, xmm9
pxor xmm3, xmm6
movdqa xmm12, xmm3
pslld xmm12, 0xc
psrld xmm3, 0x14
pxor xmm3, xmm12
paddd xmm0, xmm3
pxor xmm9, xmm0
pshufb xmm9, xmmword [0x006dca00]
paddd xmm6, xmm9
pxor xmm3, xmm6
movdqa xmm12, xmm3
pslld xmm12, 7
psrld xmm3, 0x19
pxor xmm3, xmm12
paddd xmm1, xmm4
pxor xmm10, xmm1
pshufb xmm10, xmmword [0x006dc9e0]
paddd xmm7, xmm10
pxor xmm4, xmm7
movdqa xmm12, xmm4
pslld xmm12, 0xc
psrld xmm4, 0x14
pxor xmm4, xmm12
paddd xmm1, xmm4
pxor xmm10, xmm1
pshufb xmm10, xmmword [0x006dca00]
paddd xmm7, xmm10
pxor xmm4, xmm7
movdqa xmm12, xmm4
pslld xmm12, 7
psrld xmm4, 0x19
pxor xmm4, xmm12
paddd xmm2, xmm5
pxor xmm11, xmm2
pshufb xmm11, xmmword [0x006dc9e0]
paddd xmm8, xmm11
pxor xmm5, xmm8
movdqa xmm12, xmm5
pslld xmm12, 0xc
psrld xmm5, 0x14
pxor xmm5, xmm12
paddd xmm2, xmm5
pxor xmm11, xmm2
pshufb xmm11, xmmword [0x006dca00]
paddd xmm8, xmm11
pxor xmm5, xmm8
movdqa xmm12, xmm5
pslld xmm12, 7
psrld xmm5, 0x19
pxor xmm5, xmm12
palignr xmm3, xmm3, 4
palignr xmm6, xmm6, 8
palignr xmm9, xmm9, 0xc
palignr xmm4, xmm4, 4
palignr xmm7, xmm7, 8
palignr xmm10, xmm10, 0xc
palignr xmm5, xmm5, 4
palignr xmm8, xmm8, 8
palignr xmm11, xmm11, 0xc
paddd xmm0, xmm3
pxor xmm9, xmm0
pshufb xmm9, xmmword [0x006dc9e0]
paddd xmm6, xmm9
pxor xmm3, xmm6
movdqa xmm12, xmm3
pslld xmm12, 0xc
psrld xmm3, 0x14
pxor xmm3, xmm12
paddd xmm0, xmm3
pxor xmm9, xmm0
pshufb xmm9, xmmword [0x006dca00]
paddd xmm6, xmm9
pxor xmm3, xmm6
movdqa xmm12, xmm3
pslld xmm12, 7
psrld xmm3, 0x19
pxor xmm3, xmm12
paddd xmm1, xmm4
pxor xmm10, xmm1
pshufb xmm10, xmmword [0x006dc9e0]
paddd xmm7, xmm10
pxor xmm4, xmm7
movdqa xmm12, xmm4
pslld xmm12, 0xc
psrld xmm4, 0x14
pxor xmm4, xmm12
paddd xmm1, xmm4
pxor xmm10, xmm1
pshufb xmm10, xmmword [0x006dca00]
paddd xmm7, xmm10
pxor xmm4, xmm7
movdqa xmm12, xmm4
pslld xmm12, 7
psrld xmm4, 0x19
pxor xmm4, xmm12
paddd xmm2, xmm5
pxor xmm11, xmm2
pshufb xmm11, xmmword [0x006dc9e0]
paddd xmm8, xmm11
pxor xmm5, xmm8
movdqa xmm12, xmm5
pslld xmm12, 0xc
psrld xmm5, 0x14
pxor xmm5, xmm12
paddd xmm2, xmm5
pxor xmm11, xmm2
pshufb xmm11, xmmword [0x006dca00]
paddd xmm8, xmm11
pxor xmm5, xmm8
movdqa xmm12, xmm5
pslld xmm12, 7
psrld xmm5, 0x19
pxor xmm5, xmm12
palignr xmm3, xmm3, 0xc
palignr xmm6, xmm6, 8
palignr xmm9, xmm9, 4
palignr xmm4, xmm4, 0xc
palignr xmm7, xmm7, 8
palignr xmm10, xmm10, 4
palignr xmm5, xmm5, 0xc
palignr xmm8, xmm8, 8
palignr xmm11, xmm11, 4
cmp r9, rcx
jb 0x5979a6
cmp r9, 0xa0
jne 0x597a34
cmp rbx, 0xb0
jb 0x597e52
add r10, qword [rsi + 0xa0]
adc r11, qword [rsi + 0xa8]
adc r12, 1
mov rax, qword [rbp]
mov r15, rax
mul r10
mov r13, rax
mov r14, rdx
mov rax, qword [rbp]
mul r11
imul r15, r12
add r14, rax
adc r15, rdx
mov rax, qword [rbp + 8]
mov r8, rax
mul r10
add r14, rax
adc rdx, 0
mov r10, rdx
mov rax, qword [rbp + 8]
mul r11
add r15, rax
adc rdx, 0
imul r8, r12
add r15, r10
adc r8, rdx
mov r10, r13
mov r11, r14
mov r12, r15
and r12, 3
mov r13, r15
and r13, 0xfffffffffffffffc
mov r14, r8
shrd r15, r8, 2
shr r8, 2
add r10, r13
adc r11, r14
adc r12, 0
add r10, r15
adc r11, r8
adc r12, 0
cmp rbx, 0xc0
jb 0x597e52
add r10, qword [rsi + 0xb0]
adc r11, qword [rsi + 0xb8]
adc r12, 1
mov rax, qword [rbp]
mov r15, rax
mul r10
mov r13, rax
mov r14, rdx
mov rax, qword [rbp]
mul r11
imul r15, r12
add r14, rax
adc r15, rdx
mov rax, qword [rbp + 8]
mov r8, rax
mul r10
add r14, rax
adc rdx, 0
mov r10, rdx
mov rax, qword [rbp + 8]
mul r11
add r15, rax
adc rdx, 0
imul r8, r12
add r15, r10
adc r8, rdx
mov r10, r13
mov r11, r14
mov r12, r15
and r12, 3
mov r13, r15
and r13, 0xfffffffffffffffc
mov r14, r8
shrd r15, r8, 2
shr r8, 2
add r10, r13
adc r11, r14
adc r12, 0
add r10, r15
adc r11, r8
adc r12, 0
paddd xmm0, xmmword [0x006dc9c0]
paddd xmm1, xmmword [0x006dc9c0]
paddd xmm2, xmmword [0x006dc9c0]
paddd xmm3, xmmword [rbp + 0x20]
paddd xmm4, xmmword [rbp + 0x20]
paddd xmm5, xmmword [rbp + 0x20]
paddd xmm6, xmmword [rbp + 0x30]
paddd xmm7, xmmword [rbp + 0x30]
paddd xmm8, xmmword [rbp + 0x30]
paddd xmm9, xmmword [rbp + 0x70]
paddd xmm10, xmmword [rbp + 0x60]
paddd xmm11, xmmword [rbp + 0x50]
movdqu xmm12, xmmword [rsi]
movdqu xmm13, xmmword [rsi + 0x10]
movdqu xmm14, xmmword [rsi + 0x20]
movdqu xmm15, xmmword [rsi + 0x30]
pxor xmm2, xmm12
pxor xmm5, xmm13
pxor xmm8, xmm14
pxor xmm11, xmm15
movdqu xmmword [rdi], xmm2
movdqu xmmword [rdi + 0x10], xmm5
movdqu xmmword [rdi + 0x20], xmm8
movdqu xmmword [rdi + 0x30], xmm11
movdqu xmm12, xmmword [rsi + 0x40]
movdqu xmm13, xmmword [rsi + 0x50]
movdqu xmm14, xmmword [rsi + 0x60]
movdqu xmm15, xmmword [rsi + 0x70]
pxor xmm1, xmm12
pxor xmm4, xmm13
pxor xmm7, xmm14
pxor xmm10, xmm15
movdqu xmmword [rdi + 0x40], xmm1
movdqu xmmword [rdi + 0x50], xmm4
movdqu xmmword [rdi + 0x60], xmm7
movdqu xmmword [rdi + 0x70], xmm10
sub rbx, 0x80
lea rsi, [rsi + 0x80]
lea rdi, [rdi + 0x80]
jmp 0x597596
movdqa xmm0, xmmword [0x006dc9c0]
movdqa xmm3, xmmword [rbp + 0x20]
movdqa xmm6, xmmword [rbp + 0x30]
movdqa xmm9, xmmword [rbp + 0x80]
paddd xmm9, xmmword [0x006db9a0]
movdqa xmm1, xmm0
movdqa xmm4, xmm3
movdqa xmm7, xmm6
movdqa xmm10, xmm9
paddd xmm10, xmmword [0x006db9a0]
movdqa xmm2, xmm1
movdqa xmm5, xmm4
movdqa xmm8, xmm7
movdqa xmm11, xmm10
paddd xmm11, xmmword [0x006db9a0]
movdqa xmm12, xmm2
movdqa xmm13, xmm5
movdqa xmm14, xmm8
movdqa xmm15, xmm11
paddd xmm15, xmmword [0x006db9a0]
movdqa xmmword [rbp + 0x50], xmm9
movdqa xmmword [rbp + 0x60], xmm10
movdqa xmmword [rbp + 0x70], xmm11
movdqa xmmword [rbp + 0x80], xmm15
xor r9, r9
add r10, qword [rsi + r9]
adc r11, qword [rsi + r9 + 8]
adc r12, 1
movdqa xmmword [rbp + 0x40], xmm14
paddd xmm0, xmm3
pxor xmm9, xmm0
pshufb xmm9, xmmword [0x006dc9e0]
paddd xmm6, xmm9
pxor xmm3, xmm6
movdqa xmm14, xmm3
pslld xmm14, 0xc
psrld xmm3, 0x14
pxor xmm3, xmm14
paddd xmm0, xmm3
pxor xmm9, xmm0
pshufb xmm9, xmmword [0x006dca00]
paddd xmm6, xmm9
pxor xmm3, xmm6
movdqa xmm14, xmm3
pslld xmm14, 7
psrld xmm3, 0x19
pxor xmm3, xmm14
paddd xmm1, xmm4
pxor xmm10, xmm1
pshufb xmm10, xmmword [0x006dc9e0]
paddd xmm7, xmm10
pxor xmm4, xmm7
movdqa xmm14, xmm4
pslld xmm14, 0xc
psrld xmm4, 0x14
pxor xmm4, xmm14
paddd xmm1, xmm4
pxor xmm10, xmm1
pshufb xmm10, xmmword [0x006dca00]
paddd xmm7, xmm10
pxor xmm4, xmm7
movdqa xmm14, xmm4
pslld xmm14, 7
psrld xmm4, 0x19
pxor xmm4, xmm14
paddd xmm2, xmm5
pxor xmm11, xmm2
pshufb xmm11, xmmword [0x006dc9e0]
paddd xmm8, xmm11
pxor xmm5, xmm8
movdqa xmm14, xmm5
pslld xmm14, 0xc
psrld xmm5, 0x14
pxor xmm5, xmm14
paddd xmm2, xmm5
pxor xmm11, xmm2
pshufb xmm11, xmmword [0x006dca00]
paddd xmm8, xmm11
pxor xmm5, xmm8
movdqa xmm14, xmm5
pslld xmm14, 7
psrld xmm5, 0x19
pxor xmm5, xmm14
movdqa xmm14, xmmword [rbp + 0x40]
movdqa xmmword [rbp + 0x40], xmm7
paddd xmm12, xmm13
pxor xmm15, xmm12
pshufb xmm15, xmmword [0x006dc9e0]
paddd xmm14, xmm15
pxor xmm13, xmm14
movdqa xmm7, xmm13
pslld xmm7, 0xc
psrld xmm13, 0x14
pxor xmm13, xmm7
paddd xmm12, xmm13
pxor xmm15, xmm12
pshufb xmm15, xmmword [0x006dca00]
paddd xmm14, xmm15
pxor xmm13, xmm14
movdqa xmm7, xmm13
pslld xmm7, 7
psrld xmm13, 0x19
pxor xmm13, xmm7
movdqa xmm7, xmmword [rbp + 0x40]
palignr xmm3, xmm3, 4
palignr xmm4, xmm4, 4
palignr xmm5, xmm5, 4
palignr xmm13, xmm13, 4
palignr xmm6, xmm6, 8
palignr xmm7, xmm7, 8
palignr xmm8, xmm8, 8
palignr xmm14, xmm14, 8
palignr xmm9, xmm9, 0xc
palignr xmm10, xmm10, 0xc
palignr xmm11, xmm11, 0xc
palignr xmm15, xmm15, 0xc
mov rax, qword [rbp]
mov r15, rax
mul r10
mov r13, rax
mov r14, rdx
mov rax, qword [rbp]
mul r11
imul r15, r12
add r14, rax
adc r15, rdx
mov rax, qword [rbp + 8]
mov r8, rax
mul r10
add r14, rax
adc rdx, 0
mov r10, rdx
mov rax, qword [rbp + 8]
mul r11
add r15, rax
adc rdx, 0
movdqa xmmword [rbp + 0x40], xmm14
paddd xmm0, xmm3
pxor xmm9, xmm0
pshufb xmm9, xmmword [0x006dc9e0]
paddd xmm6, xmm9
pxor xmm3, xmm6
movdqa xmm14, xmm3
pslld xmm14, 0xc
psrld xmm3, 0x14
pxor xmm3, xmm14
paddd xmm0, xmm3
pxor xmm9, xmm0
pshufb xmm9, xmmword [0x006dca00]
paddd xmm6, xmm9
pxor xmm3, xmm6
movdqa xmm14, xmm3
pslld xmm14, 7
psrld xmm3, 0x19
pxor xmm3, xmm14
paddd xmm1, xmm4
pxor xmm10, xmm1
pshufb xmm10, xmmword [0x006dc9e0]
paddd xmm7, xmm10
pxor xmm4, xmm7
movdqa xmm14, xmm4
pslld xmm14, 0xc
psrld xmm4, 0x14
pxor xmm4, xmm14
paddd xmm1, xmm4
pxor xmm10, xmm1
pshufb xmm10, xmmword [0x006dca00]
paddd xmm7, xmm10
pxor xmm4, xmm7
movdqa xmm14, xmm4
pslld xmm14, 7
psrld xmm4, 0x19
pxor xmm4, xmm14
paddd xmm2, xmm5
pxor xmm11, xmm2
pshufb xmm11, xmmword [0x006dc9e0]
paddd xmm8, xmm11
pxor xmm5, xmm8
movdqa xmm14, xmm5
pslld xmm14, 0xc
psrld xmm5, 0x14
pxor xmm5, xmm14
paddd xmm2, xmm5
pxor xmm11, xmm2
pshufb xmm11, xmmword [0x006dca00]
paddd xmm8, xmm11
pxor xmm5, xmm8
movdqa xmm14, xmm5
pslld xmm14, 7
psrld xmm5, 0x19
pxor xmm5, xmm14
movdqa xmm14, xmmword [rbp + 0x40]
movdqa xmmword [rbp + 0x40], xmm7
paddd xmm12, xmm13
pxor xmm15, xmm12
pshufb xmm15, xmmword [0x006dc9e0]
paddd xmm14, xmm15
pxor xmm13, xmm14
movdqa xmm7, xmm13
pslld xmm7, 0xc
psrld xmm13, 0x14
pxor xmm13, xmm7
paddd xmm12, xmm13
pxor xmm15, xmm12
pshufb xmm15, xmmword [0x006dca00]
paddd xmm14, xmm15
pxor xmm13, xmm14
movdqa xmm7, xmm13
pslld xmm7, 7
psrld xmm13, 0x19
pxor xmm13, xmm7
movdqa xmm7, xmmword [rbp + 0x40]
imul r8, r12
add r15, r10
adc r8, rdx
mov r10, r13
mov r11, r14
mov r12, r15
and r12, 3
mov r13, r15
and r13, 0xfffffffffffffffc
mov r14, r8
shrd r15, r8, 2
shr r8, 2
add r10, r13
adc r11, r14
adc r12, 0
add r10, r15
adc r11, r8
adc r12, 0
palignr xmm3, xmm3, 0xc
palignr xmm4, xmm4, 0xc
palignr xmm5, xmm5, 0xc
palignr xmm13, xmm13, 0xc
palignr xmm6, xmm6, 8
palignr xmm7, xmm7, 8
palignr xmm8, xmm8, 8
palignr xmm14, xmm14, 8
palignr xmm9, xmm9, 4
palignr xmm10, xmm10, 4
palignr xmm11, xmm11, 4
palignr xmm15, xmm15, 4
add r9, 0x10
cmp r9, 0xa0
jb 0x597fca
mov rcx, rbx
and rcx, 0xfffffffffffffff0
add r10, qword [rsi + r9]
adc r11, qword [rsi + r9 + 8]
adc r12, 1
mov rax, qword [rbp]
mov r15, rax
mul r10
mov r13, rax
mov r14, rdx
mov rax, qword [rbp]
mul r11
imul r15, r12
add r14, rax
adc r15, rdx
mov rax, qword [rbp + 8]
mov r8, rax
mul r10
add r14, rax
adc rdx, 0
mov r10, rdx
mov rax, qword [rbp + 8]
mul r11
add r15, rax
adc rdx, 0
imul r8, r12
add r15, r10
adc r8, rdx
mov r10, r13
mov r11, r14
mov r12, r15
and r12, 3
mov r13, r15
and r13, 0xfffffffffffffffc
mov r14, r8
shrd r15, r8, 2
shr r8, 2
add r10, r13
adc r11, r14
adc r12, 0
add r10, r15
adc r11, r8
adc r12, 0
add r9, 0x10
cmp r9, rcx
jb 0x598456
paddd xmm0, xmmword [0x006dc9c0]
paddd xmm1, xmmword [0x006dc9c0]
paddd xmm2, xmmword [0x006dc9c0]
paddd xmm12, xmmword [0x006dc9c0]
paddd xmm3, xmmword [rbp + 0x20]
paddd xmm4, xmmword [rbp + 0x20]
paddd xmm5, xmmword [rbp + 0x20]
paddd xmm13, xmmword [rbp + 0x20]
paddd xmm6, xmmword [rbp + 0x30]
paddd xmm7, xmmword [rbp + 0x30]
paddd xmm8, xmmword [rbp + 0x30]
paddd xmm14, xmmword [rbp + 0x30]
paddd xmm9, xmmword [rbp + 0x50]
paddd xmm10, xmmword [rbp + 0x60]
paddd xmm11, xmmword [rbp + 0x70]
paddd xmm15, xmmword [rbp + 0x80]
movdqa xmmword [rbp + 0x40], xmm15
movdqu xmm15, xmmword [rsi]
pxor xmm0, xmm15
movdqu xmm15, xmmword [rsi + 0x10]
pxor xmm3, xmm15
movdqu xmm15, xmmword [rsi + 0x20]
pxor xmm6, xmm15
movdqu xmm15, xmmword [rsi + 0x30]
pxor xmm9, xmm15
movdqu xmmword [rdi], xmm0
movdqu xmmword [rdi + 0x10], xmm3
movdqu xmmword [rdi + 0x20], xmm6
movdqu xmmword [rdi + 0x30], xmm9
movdqu xmm0, xmmword [rsi + 0x40]
movdqu xmm3, xmmword [rsi + 0x50]
movdqu xmm6, xmmword [rsi + 0x60]
movdqu xmm9, xmmword [rsi + 0x70]
pxor xmm1, xmm0
pxor xmm4, xmm3
pxor xmm7, xmm6
pxor xmm10, xmm9
movdqu xmmword [rdi + 0x40], xmm1
movdqu xmmword [rdi + 0x50], xmm4
movdqu xmmword [rdi + 0x60], xmm7
movdqu xmmword [rdi + 0x70], xmm10
movdqu xmm0, xmmword [rsi + 0x80]
movdqu xmm3, xmmword [rsi + 0x90]
movdqu xmm6, xmmword [rsi + 0xa0]
movdqu xmm9, xmmword [rsi + 0xb0]
pxor xmm2, xmm0
pxor xmm5, xmm3
pxor xmm8, xmm6
pxor xmm11, xmm9
movdqu xmmword [rdi + 0x80], xmm2
movdqu xmmword [rdi + 0x90], xmm5
movdqu xmmword [rdi + 0xa0], xmm8
movdqu xmmword [rdi + 0xb0], xmm11
lea rsi, [rsi + 0xc0]
lea rdi, [rdi + 0xc0]
sub rbx, 0xc0
movdqa xmm0, xmm12
movdqa xmm3, xmm13
movdqa xmm6, xmm14
movdqa xmm9, xmmword [rbp + 0x40]
jmp 0x597596
vzeroupper
vmovdqu ymm0, ymmword [0x006dc9c0]
vbroadcasti128 ymm14, xmmword [r8 + 0x10]
vbroadcasti128 ymm12, xmmword [r8 + 0x20]
vbroadcasti128 ymm4, xmmword [r8 + 0x30]
vpaddd ymm4, ymm4, ymmword [0x006dca40]
cmp rbx, 0xc0
jbe 0x59913e
cmp rbx, 0x140
jbe 0x599578
vmovdqa ymmword [rbp + 0x20], ymm14
vmovdqa ymmword [rbp + 0x40], ymm12
vmovdqa ymmword [rbp + 0xc0], ymm4
mov r9, 0xa
vpaddd ymm0, ymm0, ymm14
vpxor ymm4, ymm4, ymm0
vpshufb ymm4, ymm4, ymmword [0x006dc9e0]
vpaddd ymm12, ymm12, ymm4
vpxor ymm14, ymm14, ymm12
vpslld ymm3, ymm14, 0xc
vpsrld ymm14, ymm14, 0x14
vpxor ymm14, ymm14, ymm3
vpaddd ymm0, ymm0, ymm14
vpxor ymm4, ymm4, ymm0
vpshufb ymm4, ymm4, ymmword [0x006dca00]
vpaddd ymm12, ymm12, ymm4
vpxor ymm14, ymm14, ymm12
vpslld ymm3, ymm14, 7
vpsrld ymm14, ymm14, 0x19
vpxor ymm14, ymm14, ymm3
vpalignr ymm14, ymm14, ymm14, 4
vpalignr ymm12, ymm12, ymm12, 8
vpalignr ymm4, ymm4, ymm4, 0xc
vpaddd ymm0, ymm0, ymm14
vpxor ymm4, ymm4, ymm0
vpshufb ymm4, ymm4, ymmword [0x006dc9e0]
vpaddd ymm12, ymm12, ymm4
vpxor ymm14, ymm14, ymm12
vpslld ymm3, ymm14, 0xc
vpsrld ymm14, ymm14, 0x14
vpxor ymm14, ymm14, ymm3
vpaddd ymm0, ymm0, ymm14
vpxor ymm4, ymm4, ymm0
vpshufb ymm4, ymm4, ymmword [0x006dca00]
vpaddd ymm12, ymm12, ymm4
vpxor ymm14, ymm14, ymm12
vpslld ymm3, ymm14, 7
vpsrld ymm14, ymm14, 0x19
vpxor ymm14, ymm14, ymm3
vpalignr ymm14, ymm14, ymm14, 0xc
vpalignr ymm12, ymm12, ymm12, 8
vpalignr ymm4, ymm4, ymm4, 4
dec r9
jne 0x5986b4
vpaddd ymm0, ymm0, ymmword [0x006dc9c0]
vpaddd ymm14, ymm14, ymmword [rbp + 0x20]
vpaddd ymm12, ymm12, ymmword [rbp + 0x40]
vpaddd ymm4, ymm4, ymmword [rbp + 0xc0]
vperm2i128 ymm3, ymm14, ymm0, 2
vpand ymm3, ymm3, ymmword [0x006dca60]
vmovdqa ymmword [rbp], ymm3
vperm2i128 ymm0, ymm14, ymm0, 0x13
vperm2i128 ymm14, ymm4, ymm12, 0x13
mov r9, qword [rsp + 0x180]
call sym.polyHashADInternal
xor rcx, rcx
add r10, qword [rsi + rcx]
adc r11, qword [rsi + rcx + 8]
adc r12, 1
mov rdx, qword [rbp]
mov r15, rdx
mulx r14, r13, r10
imul r15, r12
mulx rdx, rax, r11
add r14, rax
adc r15, rdx
mov rdx, qword [rbp + 8]
mulx rax, r10, r10
add r14, r10
mulx r8, r11, r11
adc r15, r11
adc r8, 0
imul rdx, r12
add r15, rax
adc r8, rdx
mov r10, r13
mov r11, r14
mov r12, r15
and r12, 3
mov r13, r15
and r13, 0xfffffffffffffffc
mov r14, r8
shrd r15, r8, 2
shr r8, 2
add r10, r13
adc r11, r14
adc r12, 0
add r10, r15
adc r11, r8
adc r12, 0
add rcx, 0x10
cmp rcx, 0x40
jne 0x5987d6
vpxor ymm0, ymm0, ymmword [rsi]
vpxor ymm14, ymm14, ymmword [rsi + 0x20]
vmovdqu ymmword [rdi], ymm0
vmovdqu ymmword [rdi + 0x20], ymm14
lea rsi, [rsi + 0x40]
lea rdi, [rdi + 0x40]
sub rbx, 0x40
cmp rbx, 0x200
jb 0x599109
vmovdqu ymm0, ymmword [0x006dc9c0]
vmovdqa ymm5, ymm0
vmovdqa ymm6, ymm0
vmovdqa ymm7, ymm0
vmovdqa ymm14, ymmword [rbp + 0x20]
vmovdqa ymm9, ymm14
vmovdqa ymm10, ymm14
vmovdqa ymm11, ymm14
vmovdqa ymm12, ymmword [rbp + 0x40]
vmovdqa ymm13, ymm12
vmovdqa ymm8, ymm12
vmovdqa ymm15, ymm12
vmovdqa ymm4, ymmword [rbp + 0xc0]
vpaddd ymm4, ymm4, ymmword [0x006dca20]
vpaddd ymm1, ymm4, ymmword [0x006dca20]
vpaddd ymm2, ymm1, ymmword [0x006dca20]
vpaddd ymm3, ymm2, ymmword [0x006dca20]
vmovdqa ymmword [rbp + 0x60], ymm4
vmovdqa ymmword [rbp + 0x80], ymm1
vmovdqa ymmword [rbp + 0xa0], ymm2
vmovdqa ymmword [rbp + 0xc0], ymm3
xor rcx, rcx
add r10, qword [rsi + rcx]
adc r11, qword [rsi + rcx + 8]
adc r12, 1
vpaddd ymm0, ymm0, ymm14
vpaddd ymm5, ymm5, ymm9
vpaddd ymm6, ymm6, ymm10
vpaddd ymm7, ymm7, ymm11
mov rdx, qword [rbp]
mov r15, rdx
mulx r14, r13, r10
imul r15, r12
mulx rdx, rax, r11
add r14, rax
adc r15, rdx
vpxor ymm4, ymm4, ymm0
vpxor ymm1, ymm1, ymm5
vpxor ymm2, ymm2, ymm6
vpxor ymm3, ymm3, ymm7
vpshufb ymm4, ymm4, ymmword [0x006dc9e0]
vpshufb ymm1, ymm1, ymmword [0x006dc9e0]
vpshufb ymm2, ymm2, ymmword [0x006dc9e0]
vpshufb ymm3, ymm3, ymmword [0x006dc9e0]
mov rdx, qword [rbp + 8]
mulx rax, r10, r10
add r14, r10
mulx r8, r11, r11
adc r15, r11
adc r8, 0
vpaddd ymm12, ymm12, ymm4
vpaddd ymm13, ymm13, ymm1
vpaddd ymm8, ymm8, ymm2
vpaddd ymm15, ymm15, ymm3
vpxor ymm14, ymm14, ymm12
vpxor ymm9, ymm9, ymm13
vpxor ymm10, ymm10, ymm8
vpxor ymm11, ymm11, ymm15
imul rdx, r12
add r15, rax
adc r8, rdx
vmovdqa ymmword [rbp + 0xe0], ymm15
vpslld ymm15, ymm14, 0xc
vpsrld ymm14, ymm14, 0x14
vpxor ymm14, ymm14, ymm15
vpslld ymm15, ymm9, 0xc
vpsrld ymm9, ymm9, 0x14
vpxor ymm9, ymm9, ymm15
vpslld ymm15, ymm10, 0xc
vpsrld ymm10, ymm10, 0x14
vpxor ymm10, ymm10, ymm15
vpslld ymm15, ymm11, 0xc
vpsrld ymm11, ymm11, 0x14
vpxor ymm11, ymm11, ymm15
vmovdqa ymm15, ymmword [rbp + 0xe0]
mov r10, r13
mov r11, r14
mov r12, r15
and r12, 3
mov r13, r15
and r13, 0xfffffffffffffffc
mov r14, r8
shrd r15, r8, 2
shr r8, 2
add r10, r13
adc r11, r14
adc r12, 0
add r10, r15
adc r11, r8
adc r12, 0
vpaddd ymm0, ymm0, ymm14
vpaddd ymm5, ymm5, ymm9
vpaddd ymm6, ymm6, ymm10
vpaddd ymm7, ymm7, ymm11
vpxor ymm4, ymm4, ymm0
vpxor ymm1, ymm1, ymm5
vpxor ymm2, ymm2, ymm6
vpxor ymm3, ymm3, ymm7
vpshufb ymm4, ymm4, ymmword [0x006dca00]
vpshufb ymm1, ymm1, ymmword [0x006dca00]
vpshufb ymm2, ymm2, ymmword [0x006dca00]
vpshufb ymm3, ymm3, ymmword [0x006dca00]
add r10, qword [rsi + rcx + 0x10]
adc r11, qword [rsi + rcx + 0x18]
adc r12, 1
vpaddd ymm12, ymm12, ymm4
vpaddd ymm13, ymm13, ymm1
vpaddd ymm8, ymm8, ymm2
vpaddd ymm15, ymm15, ymm3
mov rdx, qword [rbp]
mov r15, rdx
mulx r14, r13, r10
imul r15, r12
mulx rdx, rax, r11
add r14, rax
adc r15, rdx
vpxor ymm14, ymm14, ymm12
vpxor ymm9, ymm9, ymm13
vpxor ymm10, ymm10, ymm8
vpxor ymm11, ymm11, ymm15
vmovdqa ymmword [rbp + 0xe0], ymm15
vpslld ymm15, ymm14, 7
vpsrld ymm14, ymm14, 0x19
vpxor ymm14, ymm14, ymm15
vpslld ymm15, ymm9, 7
vpsrld ymm9, ymm9, 0x19
vpxor ymm9, ymm9, ymm15
vpslld ymm15, ymm10, 7
vpsrld ymm10, ymm10, 0x19
vpxor ymm10, ymm10, ymm15
vpslld ymm15, ymm11, 7
vpsrld ymm11, ymm11, 0x19
vpxor ymm11, ymm11, ymm15
vmovdqa ymm15, ymmword [rbp + 0xe0]
mov rdx, qword [rbp + 8]
mulx rax, r10, r10
add r14, r10
mulx r8, r11, r11
adc r15, r11
adc r8, 0
vpalignr ymm14, ymm14, ymm14, 4
vpalignr ymm9, ymm9, ymm9, 4
vpalignr ymm10, ymm10, ymm10, 4
vpalignr ymm11, ymm11, ymm11, 4
vpalignr ymm12, ymm12, ymm12, 8
vpalignr ymm13, ymm13, ymm13, 8
vpalignr ymm8, ymm8, ymm8, 8
vpalignr ymm15, ymm15, ymm15, 8
vpalignr ymm4, ymm4, ymm4, 0xc
vpalignr ymm1, ymm1, ymm1, 0xc
vpalignr ymm2, ymm2, ymm2, 0xc
vpalignr ymm3, ymm3, ymm3, 0xc
vpaddd ymm0, ymm0, ymm14
vpaddd ymm5, ymm5, ymm9
vpaddd ymm6, ymm6, ymm10
vpaddd ymm7, ymm7, ymm11
imul rdx, r12
add r15, rax
adc r8, rdx
vpxor ymm4, ymm4, ymm0
vpxor ymm1, ymm1, ymm5
vpxor ymm2, ymm2, ymm6
vpxor ymm3, ymm3, ymm7
vpshufb ymm4, ymm4, ymmword [0x006dc9e0]
vpshufb ymm1, ymm1, ymmword [0x006dc9e0]
vpshufb ymm2, ymm2, ymmword [0x006dc9e0]
vpshufb ymm3, ymm3, ymmword [0x006dc9e0]
mov r10, r13
mov r11, r14
mov r12, r15
and r12, 3
mov r13, r15
and r13, 0xfffffffffffffffc
mov r14, r8
shrd r15, r8, 2
shr r8, 2
add r10, r13
adc r11, r14
adc r12, 0
add r10, r15
adc r11, r8
adc r12, 0
vpaddd ymm12, ymm12, ymm4
vpaddd ymm13, ymm13, ymm1
vpaddd ymm8, ymm8, ymm2
vpaddd ymm15, ymm15, ymm3
vpxor ymm14, ymm14, ymm12
vpxor ymm9, ymm9, ymm13
vpxor ymm10, ymm10, ymm8
vpxor ymm11, ymm11, ymm15
add r10, qword [rsi + rcx + 0x20]
adc r11, qword [rsi + rcx + 0x28]
adc r12, 1
lea rcx, [rcx + 0x30]
vmovdqa ymmword [rbp + 0xe0], ymm15
vpslld ymm15, ymm14, 0xc
vpsrld ymm14, ymm14, 0x14
vpxor ymm14, ymm14, ymm15
vpslld ymm15, ymm9, 0xc
vpsrld ymm9, ymm9, 0x14
vpxor ymm9, ymm9, ymm15
vpslld ymm15, ymm10, 0xc
vpsrld ymm10, ymm10, 0x14
vpxor ymm10, ymm10, ymm15
vpslld ymm15, ymm11, 0xc
vpsrld ymm11, ymm11, 0x14
vpxor ymm11, ymm11, ymm15
vmovdqa ymm15, ymmword [rbp + 0xe0]
mov rdx, qword [rbp]
mov r15, rdx
mulx r14, r13, r10
imul r15, r12
mulx rdx, rax, r11
add r14, rax
adc r15, rdx
vpaddd ymm0, ymm0, ymm14
vpaddd ymm5, ymm5, ymm9
vpaddd ymm6, ymm6, ymm10
vpaddd ymm7, ymm7, ymm11
vpxor ymm4, ymm4, ymm0
vpxor ymm1, ymm1, ymm5
vpxor ymm2, ymm2, ymm6
vpxor ymm3, ymm3, ymm7
mov rdx, qword [rbp + 8]
mulx rax, r10, r10
add r14, r10
mulx r8, r11, r11
adc r15, r11
adc r8, 0
vpshufb ymm4, ymm4, ymmword [0x006dca00]
vpshufb ymm1, ymm1, ymmword [0x006dca00]
vpshufb ymm2, ymm2, ymmword [0x006dca00]
vpshufb ymm3, ymm3, ymmword [0x006dca00]
vpaddd ymm12, ymm12, ymm4
vpaddd ymm13, ymm13, ymm1
vpaddd ymm8, ymm8, ymm2
vpaddd ymm15, ymm15, ymm3
imul rdx, r12
add r15, rax
adc r8, rdx
vpxor ymm14, ymm14, ymm12
vpxor ymm9, ymm9, ymm13
vpxor ymm10, ymm10, ymm8
vpxor ymm11, ymm11, ymm15
vmovdqa ymmword [rbp + 0xe0], ymm15
vpslld ymm15, ymm14, 7
vpsrld ymm14, ymm14, 0x19
vpxor ymm14, ymm14, ymm15
vpslld ymm15, ymm9, 7
vpsrld ymm9, ymm9, 0x19
vpxor ymm9, ymm9, ymm15
vpslld ymm15, ymm10, 7
vpsrld ymm10, ymm10, 0x19
vpxor ymm10, ymm10, ymm15
vpslld ymm15, ymm11, 7
vpsrld ymm11, ymm11, 0x19
vpxor ymm11, ymm11, ymm15
vmovdqa ymm15, ymmword [rbp + 0xe0]
mov r10, r13
mov r11, r14
mov r12, r15
and r12, 3
mov r13, r15
and r13, 0xfffffffffffffffc
mov r14, r8
shrd r15, r8, 2
shr r8, 2
add r10, r13
adc r11, r14
adc r12, 0
add r10, r15
adc r11, r8
adc r12, 0
vpalignr ymm14, ymm14, ymm14, 0xc
vpalignr ymm9, ymm9, ymm9, 0xc
vpalignr ymm10, ymm10, ymm10, 0xc
vpalignr ymm11, ymm11, ymm11, 0xc
vpalignr ymm12, ymm12, ymm12, 8
vpalignr ymm13, ymm13, ymm13, 8
vpalignr ymm8, ymm8, ymm8, 8
vpalignr ymm15, ymm15, ymm15, 8
vpalignr ymm4, ymm4, ymm4, 4
vpalignr ymm1, ymm1, ymm1, 4
vpalignr ymm2, ymm2, ymm2, 4
vpalignr ymm3, ymm3, ymm3, 4
cmp rcx, 0x1e0
jne 0x598911
vpaddd ymm0, ymm0, ymmword [0x006dc9c0]
vpaddd ymm5, ymm5, ymmword [0x006dc9c0]
vpaddd ymm6, ymm6, ymmword [0x006dc9c0]
vpaddd ymm7, ymm7, ymmword [0x006dc9c0]
vpaddd ymm14, ymm14, ymmword [rbp + 0x20]
vpaddd ymm9, ymm9, ymmword [rbp + 0x20]
vpaddd ymm10, ymm10, ymmword [rbp + 0x20]
vpaddd ymm11, ymm11, ymmword [rbp + 0x20]
vpaddd ymm12, ymm12, ymmword [rbp + 0x40]
vpaddd ymm13, ymm13, ymmword [rbp + 0x40]
vpaddd ymm8, ymm8, ymmword [rbp + 0x40]
vpaddd ymm15, ymm15, ymmword [rbp + 0x40]
vpaddd ymm4, ymm4, ymmword [rbp + 0x60]
vpaddd ymm1, ymm1, ymmword [rbp + 0x80]
vpaddd ymm2, ymm2, ymmword [rbp + 0xa0]
vpaddd ymm3, ymm3, ymmword [rbp + 0xc0]
vmovdqa ymmword [rbp + 0xe0], ymm15
add r10, qword [rsi + 0x1e0]
adc r11, qword [rsi + 0x1e8]
adc r12, 1
mov rdx, qword [rbp]
mov r15, rdx
mulx r14, r13, r10
imul r15, r12
mulx rdx, rax, r11
add r14, rax
adc r15, rdx
mov rdx, qword [rbp + 8]
mulx rax, r10, r10
add r14, r10
mulx r8, r11, r11
adc r15, r11
adc r8, 0
imul rdx, r12
add r15, rax
adc r8, rdx
mov r10, r13
mov r11, r14
mov r12, r15
and r12, 3
mov r13, r15
and r13, 0xfffffffffffffffc
mov r14, r8
shrd r15, r8, 2
shr r8, 2
add r10, r13
adc r11, r14
adc r12, 0
add r10, r15
adc r11, r8
adc r12, 0
vperm2i128 ymm15, ymm14, ymm0, 2
vperm2i128 ymm14, ymm14, ymm0, 0x13
vperm2i128 ymm0, ymm4, ymm12, 2
vperm2i128 ymm12, ymm4, ymm12, 0x13
vpxor ymm15, ymm15, ymmword [rsi]
vpxor ymm0, ymm0, ymmword [rsi + 0x20]
vpxor ymm14, ymm14, ymmword [rsi + 0x40]
vpxor ymm12, ymm12, ymmword [rsi + 0x60]
vmovdqu ymmword [rdi], ymm15
vmovdqu ymmword [rdi + 0x20], ymm0
vmovdqu ymmword [rdi + 0x40], ymm14
vmovdqu ymmword [rdi + 0x60], ymm12
vperm2i128 ymm0, ymm9, ymm5, 2
vperm2i128 ymm14, ymm1, ymm13, 2
vperm2i128 ymm12, ymm9, ymm5, 0x13
vperm2i128 ymm4, ymm1, ymm13, 0x13
vpxor ymm0, ymm0, ymmword [rsi + 0x80]
vpxor ymm14, ymm14, ymmword [rsi + 0xa0]
vpxor ymm12, ymm12, ymmword [rsi + 0xc0]
vpxor ymm4, ymm4, ymmword [rsi + 0xe0]
vmovdqu ymmword [rdi + 0x80], ymm0
vmovdqu ymmword [rdi + 0xa0], ymm14
vmovdqu ymmword [rdi + 0xc0], ymm12
vmovdqu ymmword [rdi + 0xe0], ymm4
add r10, qword [rsi + 0x1f0]
adc r11, qword [rsi + 0x1f8]
adc r12, 1
mov rdx, qword [rbp]
mov r15, rdx
mulx r14, r13, r10
imul r15, r12
mulx rdx, rax, r11
add r14, rax
adc r15, rdx
mov rdx, qword [rbp + 8]
mulx rax, r10, r10
add r14, r10
mulx r8, r11, r11
adc r15, r11
adc r8, 0
imul rdx, r12
add r15, rax
adc r8, rdx
mov r10, r13
mov r11, r14
mov r12, r15
and r12, 3
mov r13, r15
and r13, 0xfffffffffffffffc
mov r14, r8
shrd r15, r8, 2
shr r8, 2
add r10, r13
adc r11, r14
adc r12, 0
add r10, r15
adc r11, r8
adc r12, 0
vperm2i128 ymm0, ymm10, ymm6, 2
vperm2i128 ymm14, ymm2, ymm8, 2
vperm2i128 ymm12, ymm10, ymm6, 0x13
vperm2i128 ymm4, ymm2, ymm8, 0x13
vpxor ymm0, ymm0, ymmword [rsi + 0x100]
vpxor ymm14, ymm14, ymmword [rsi + 0x120]
vpxor ymm12, ymm12, ymmword [rsi + 0x140]
vpxor ymm4, ymm4, ymmword [rsi + 0x160]
vmovdqu ymmword [rdi + 0x100], ymm0
vmovdqu ymmword [rdi + 0x120], ymm14
vmovdqu ymmword [rdi + 0x140], ymm12
vmovdqu ymmword [rdi + 0x160], ymm4
vperm2i128 ymm0, ymm11, ymm7, 2
vperm2i128 ymm14, ymm3, ymmword [rbp + 0xe0], 2
vperm2i128 ymm12, ymm11, ymm7, 0x13
vperm2i128 ymm4, ymm3, ymmword [rbp + 0xe0], 0x13
vpxor ymm0, ymm0, ymmword [rsi + 0x180]
vpxor ymm14, ymm14, ymmword [rsi + 0x1a0]
vpxor ymm12, ymm12, ymmword [rsi + 0x1c0]
vpxor ymm4, ymm4, ymmword [rsi + 0x1e0]
vmovdqu ymmword [rdi + 0x180], ymm0
vmovdqu ymmword [rdi + 0x1a0], ymm14
vmovdqu ymmword [rdi + 0x1c0], ymm12
vmovdqu ymmword [rdi + 0x1e0], ymm4
lea rsi, [rsi + 0x200]
lea rdi, [rdi + 0x200]
sub rbx, 0x200
jmp 0x598880
test rbx, rbx
je 0x596d7d
cmp rbx, 0x80
jbe 0x5998d4
cmp rbx, 0x100
jbe 0x599af9
cmp rbx, 0x180
jbe 0x599ed9
jmp 0x59a4a5
vmovdqa ymm5, ymm0
vmovdqa ymm9, ymm14
vmovdqa ymm13, ymm12
vpaddd ymm1, ymm4, ymmword [0x006dca20]
vmovdqa ymm6, ymm0
vmovdqa ymm10, ymm14
vmovdqa ymm8, ymm12
vmovdqa ymm2, ymm4
vmovdqa ymm15, ymm1
mov r9, 0xa
vpaddd ymm0, ymm0, ymm14
vpxor ymm4, ymm4, ymm0
vpshufb ymm4, ymm4, ymmword [0x006dc9e0]
vpaddd ymm12, ymm12, ymm4
vpxor ymm14, ymm14, ymm12
vpslld ymm3, ymm14, 0xc
vpsrld ymm14, ymm14, 0x14
vpxor ymm14, ymm14, ymm3
vpaddd ymm0, ymm0, ymm14
vpxor ymm4, ymm4, ymm0
vpshufb ymm4, ymm4, ymmword [0x006dca00]
vpaddd ymm12, ymm12, ymm4
vpxor ymm14, ymm14, ymm12
vpslld ymm3, ymm14, 7
vpsrld ymm14, ymm14, 0x19
vpxor ymm14, ymm14, ymm3
vpaddd ymm5, ymm5, ymm9
vpxor ymm1, ymm1, ymm5
vpshufb ymm1, ymm1, ymmword [0x006dc9e0]
vpaddd ymm13, ymm13, ymm1
vpxor ymm9, ymm9, ymm13
vpslld ymm3, ymm9, 0xc
vpsrld ymm9, ymm9, 0x14
vpxor ymm9, ymm9, ymm3
vpaddd ymm5, ymm5, ymm9
vpxor ymm1, ymm1, ymm5
vpshufb ymm1, ymm1, ymmword [0x006dca00]
vpaddd ymm13, ymm13, ymm1
vpxor ymm9, ymm9, ymm13
vpslld ymm3, ymm9, 7
vpsrld ymm9, ymm9, 0x19
vpxor ymm9, ymm9, ymm3
vpalignr ymm14, ymm14, ymm14, 4
vpalignr ymm9, ymm9, ymm9, 4
vpalignr ymm12, ymm12, ymm12, 8
vpalignr ymm13, ymm13, ymm13, 8
vpalignr ymm4, ymm4, ymm4, 0xc
vpalignr ymm1, ymm1, ymm1, 0xc
vpaddd ymm0, ymm0, ymm14
vpxor ymm4, ymm4, ymm0
vpshufb ymm4, ymm4, ymmword [0x006dc9e0]
vpaddd ymm12, ymm12, ymm4
vpxor ymm14, ymm14, ymm12
vpslld ymm3, ymm14, 0xc
vpsrld ymm14, ymm14, 0x14
vpxor ymm14, ymm14, ymm3
vpaddd ymm0, ymm0, ymm14
vpxor ymm4, ymm4, ymm0
vpshufb ymm4, ymm4, ymmword [0x006dca00]
vpaddd ymm12, ymm12, ymm4
vpxor ymm14, ymm14, ymm12
vpslld ymm3, ymm14, 7
vpsrld ymm14, ymm14, 0x19
vpxor ymm14, ymm14, ymm3
vpaddd ymm5, ymm5, ymm9
vpxor ymm1, ymm1, ymm5
vpshufb ymm1, ymm1, ymmword [0x006dc9e0]
vpaddd ymm13, ymm13, ymm1
vpxor ymm9, ymm9, ymm13
vpslld ymm3, ymm9, 0xc
vpsrld ymm9, ymm9, 0x14
vpxor ymm9, ymm9, ymm3
vpaddd ymm5, ymm5, ymm9
vpxor ymm1, ymm1, ymm5
vpshufb ymm1, ymm1, ymmword [0x006dca00]
vpaddd ymm13, ymm13, ymm1
vpxor ymm9, ymm9, ymm13
vpslld ymm3, ymm9, 7
vpsrld ymm9, ymm9, 0x19
vpxor ymm9, ymm9, ymm3
vpalignr ymm14, ymm14, ymm14, 0xc
vpalignr ymm9, ymm9, ymm9, 0xc
vpalignr ymm12, ymm12, ymm12, 8
vpalignr ymm13, ymm13, ymm13, 8
vpalignr ymm4, ymm4, ymm4, 4
vpalignr ymm1, ymm1, ymm1, 4
dec r9
jne 0x599172
vpaddd ymm0, ymm0, ymm6
vpaddd ymm5, ymm5, ymm6
vpaddd ymm14, ymm14, ymm10
vpaddd ymm9, ymm9, ymm10
vpaddd ymm12, ymm12, ymm8
vpaddd ymm13, ymm13, ymm8
vpaddd ymm4, ymm4, ymm2
vpaddd ymm1, ymm1, ymm15
vperm2i128 ymm3, ymm14, ymm0, 2
vpand ymm3, ymm3, ymmword [0x006dca60]
vmovdqa ymmword [rbp], ymm3
vperm2i128 ymm0, ymm14, ymm0, 0x13
vperm2i128 ymm14, ymm4, ymm12, 0x13
vperm2i128 ymm12, ymm9, ymm5, 2
vperm2i128 ymm4, ymm1, ymm13, 2
vperm2i128 ymm5, ymm9, ymm5, 0x13
vperm2i128 ymm9, ymm1, ymm13, 0x13
mov r9, qword [rsp + 0x180]
call sym.polyHashADInternal
cmp rbx, 0x20
jb 0x5994c8
sub rbx, 0x20
add r10, qword [rsi]
adc r11, qword [rsi + 8]
adc r12, 1
mov rdx, qword [rbp]
mov r15, rdx
mulx r14, r13, r10
imul r15, r12
mulx rdx, rax, r11
add r14, rax
adc r15, rdx
mov rdx, qword [rbp + 8]
mulx rax, r10, r10
add r14, r10
mulx r8, r11, r11
adc r15, r11
adc r8, 0
imul rdx, r12
add r15, rax
adc r8, rdx
mov r10, r13
mov r11, r14
mov r12, r15
and r12, 3
mov r13, r15
and r13, 0xfffffffffffffffc
mov r14, r8
shrd r15, r8, 2
shr r8, 2
add r10, r13
adc r11, r14
adc r12, 0
add r10, r15
adc r11, r8
adc r12, 0
add r10, qword [rsi + 0x10]
adc r11, qword [rsi + 0x18]
adc r12, 1
mov rdx, qword [rbp]
mov r15, rdx
mulx r14, r13, r10
imul r15, r12
mulx rdx, rax, r11
add r14, rax
adc r15, rdx
mov rdx, qword [rbp + 8]
mulx rax, r10, r10
add r14, r10
mulx r8, r11, r11
adc r15, r11
adc r8, 0
imul rdx, r12
add r15, rax
adc r8, rdx
mov r10, r13
mov r11, r14
mov r12, r15
and r12, 3
mov r13, r15
and r13, 0xfffffffffffffffc
mov r14, r8
shrd r15, r8, 2
shr r8, 2
add r10, r13
adc r11, r14
adc r12, 0
add r10, r15
adc r11, r8
adc r12, 0
vpxor ymm0, ymm0, ymmword [rsi]
vmovdqu ymmword [rdi], ymm0
lea rsi, [rsi + 0x20]
lea rdi, [rdi + 0x20]
vmovdqa ymm0, ymm14
vmovdqa ymm14, ymm12
vmovdqa ymm12, ymm4
vmovdqa ymm4, ymm5
vmovdqa ymm5, ymm9
vmovdqa ymm9, ymm13
vmovdqa ymm13, ymm1
vmovdqa ymm1, ymm6
vmovdqa ymm6, ymm10
jmp 0x599384
cmp rbx, 0x10
vmovdqa xmm1, xmm0
jb 0x599570
sub rbx, 0x10
add r10, qword [rsi]
adc r11, qword [rsi + 8]
adc r12, 1
mov rdx, qword [rbp]
mov r15, rdx
mulx r14, r13, r10
imul r15, r12
mulx rdx, rax, r11
add r14, rax
adc r15, rdx
mov rdx, qword [rbp + 8]
mulx rax, r10, r10
add r14, r10
mulx r8, r11, r11
adc r15, r11
adc r8, 0
imul rdx, r12
add r15, rax
adc r8, rdx
mov r10, r13
mov r11, r14
mov r12, r15
and r12, 3
mov r13, r15
and r13, 0xfffffffffffffffc
mov r14, r8
shrd r15, r8, 2
shr r8, 2
add r10, r13
adc r11, r14
adc r12, 0
add r10, r15
adc r11, r8
adc r12, 0
vpxor xmm12, xmm0, xmmword [rsi]
vmovdqu xmmword [rdi], xmm12
lea rsi, [rsi + 0x10]
lea rdi, [rdi + 0x10]
vperm2i128 ymm0, ymm0, ymm0, 0x11
vmovdqa xmm1, xmm0
vzeroupper
jmp 0x5972cd
vmovdqa ymm5, ymm0
vmovdqa ymm9, ymm14
vmovdqa ymm13, ymm12
vpaddd ymm1, ymm4, ymmword [0x006dca20]
vmovdqa ymm6, ymm0
vmovdqa ymm10, ymm14
vmovdqa ymm8, ymm12
vpaddd ymm2, ymm1, ymmword [0x006dca20]
vmovdqa ymm7, ymm14
vmovdqa ymm11, ymm12
vmovdqa ymm15, ymm4
mov r9, 0xa
vpaddd ymm0, ymm0, ymm14
vpxor ymm4, ymm4, ymm0
vpshufb ymm4, ymm4, ymmword [0x006dc9e0]
vpaddd ymm12, ymm12, ymm4
vpxor ymm14, ymm14, ymm12
vpslld ymm3, ymm14, 0xc
vpsrld ymm14, ymm14, 0x14
vpxor ymm14, ymm14, ymm3
vpaddd ymm0, ymm0, ymm14
vpxor ymm4, ymm4, ymm0
vpshufb ymm4, ymm4, ymmword [0x006dca00]
vpaddd ymm12, ymm12, ymm4
vpxor ymm14, ymm14, ymm12
vpslld ymm3, ymm14, 7
vpsrld ymm14, ymm14, 0x19
vpxor ymm14, ymm14, ymm3
vpaddd ymm5, ymm5, ymm9
vpxor ymm1, ymm1, ymm5
vpshufb ymm1, ymm1, ymmword [0x006dc9e0]
vpaddd ymm13, ymm13, ymm1
vpxor ymm9, ymm9, ymm13
vpslld ymm3, ymm9, 0xc
vpsrld ymm9, ymm9, 0x14
vpxor ymm9, ymm9, ymm3
vpaddd ymm5, ymm5, ymm9
vpxor ymm1, ymm1, ymm5
vpshufb ymm1, ymm1, ymmword [0x006dca00]
vpaddd ymm13, ymm13, ymm1
vpxor ymm9, ymm9, ymm13
vpslld ymm3, ymm9, 7
vpsrld ymm9, ymm9, 0x19
vpxor ymm9, ymm9, ymm3
vpaddd ymm6, ymm6, ymm10
vpxor ymm2, ymm2, ymm6
vpshufb ymm2, ymm2, ymmword [0x006dc9e0]
vpaddd ymm8, ymm8, ymm2
vpxor ymm10, ymm10, ymm8
vpslld ymm3, ymm10, 0xc
vpsrld ymm10, ymm10, 0x14
vpxor ymm10, ymm10, ymm3
vpaddd ymm6, ymm6, ymm10
vpxor ymm2, ymm2, ymm6
vpshufb ymm2, ymm2, ymmword [0x006dca00]
vpaddd ymm8, ymm8, ymm2
vpxor ymm10, ymm10, ymm8
vpslld ymm3, ymm10, 7
vpsrld ymm10, ymm10, 0x19
vpxor ymm10, ymm10, ymm3
vpalignr ymm14, ymm14, ymm14, 4
vpalignr ymm9, ymm9, ymm9, 4
vpalignr ymm10, ymm10, ymm10, 4
vpalignr ymm12, ymm12, ymm12, 8
vpalignr ymm13, ymm13, ymm13, 8
vpalignr ymm8, ymm8, ymm8, 8
vpalignr ymm4, ymm4, ymm4, 0xc
vpalignr ymm1, ymm1, ymm1, 0xc
vpalignr ymm2, ymm2, ymm2, 0xc
vpaddd ymm0, ymm0, ymm14
vpxor ymm4, ymm4, ymm0
vpshufb ymm4, ymm4, ymmword [0x006dc9e0]
vpaddd ymm12, ymm12, ymm4
vpxor ymm14, ymm14, ymm12
vpslld ymm3, ymm14, 0xc
vpsrld ymm14, ymm14, 0x14
vpxor ymm14, ymm14, ymm3
vpaddd ymm0, ymm0, ymm14
vpxor ymm4, ymm4, ymm0
vpshufb ymm4, ymm4, ymmword [0x006dca00]
vpaddd ymm12, ymm12, ymm4
vpxor ymm14, ymm14, ymm12
vpslld ymm3, ymm14, 7
vpsrld ymm14, ymm14, 0x19
vpxor ymm14, ymm14, ymm3
vpaddd ymm5, ymm5, ymm9
vpxor ymm1, ymm1, ymm5
vpshufb ymm1, ymm1, ymmword [0x006dc9e0]
vpaddd ymm13, ymm13, ymm1
vpxor ymm9, ymm9, ymm13
vpslld ymm3, ymm9, 0xc
vpsrld ymm9, ymm9, 0x14
vpxor ymm9, ymm9, ymm3
vpaddd ymm5, ymm5, ymm9
vpxor ymm1, ymm1, ymm5
vpshufb ymm1, ymm1, ymmword [0x006dca00]
vpaddd ymm13, ymm13, ymm1
vpxor ymm9, ymm9, ymm13
vpslld ymm3, ymm9, 7
vpsrld ymm9, ymm9, 0x19
vpxor ymm9, ymm9, ymm3
vpaddd ymm6, ymm6, ymm10
vpxor ymm2, ymm2, ymm6
vpshufb ymm2, ymm2, ymmword [0x006dc9e0]
vpaddd ymm8, ymm8, ymm2
vpxor ymm10, ymm10, ymm8
vpslld ymm3, ymm10, 0xc
vpsrld ymm10, ymm10, 0x14
vpxor ymm10, ymm10, ymm3
vpaddd ymm6, ymm6, ymm10
vpxor ymm2, ymm2, ymm6
vpshufb ymm2, ymm2, ymmword [0x006dca00]
vpaddd ymm8, ymm8, ymm2
vpxor ymm10, ymm10, ymm8
vpslld ymm3, ymm10, 7
vpsrld ymm10, ymm10, 0x19
vpxor ymm10, ymm10, ymm3
vpalignr ymm14, ymm14, ymm14, 0xc
vpalignr ymm9, ymm9, ymm9, 0xc
vpalignr ymm10, ymm10, ymm10, 0xc
vpalignr ymm12, ymm12, ymm12, 8
vpalignr ymm13, ymm13, ymm13, 8
vpalignr ymm8, ymm8, ymm8, 8
vpalignr ymm4, ymm4, ymm4, 4
vpalignr ymm1, ymm1, ymm1, 4
vpalignr ymm2, ymm2, ymm2, 4
dec r9
jne 0x5995b9
vmovdqa ymm3, ymmword [0x006dc9c0]
vpaddd ymm0, ymm0, ymm3
vpaddd ymm5, ymm5, ymm3
vpaddd ymm6, ymm6, ymm3
vpaddd ymm14, ymm14, ymm7
vpaddd ymm9, ymm9, ymm7
vpaddd ymm10, ymm10, ymm7
vpaddd ymm12, ymm12, ymm11
vpaddd ymm13, ymm13, ymm11
vpaddd ymm8, ymm8, ymm11
vmovdqa ymm3, ymmword [0x006dca20]
vpaddd ymm4, ymm4, ymm15
vpaddd ymm15, ymm15, ymm3
vpaddd ymm1, ymm1, ymm15
vpaddd ymm15, ymm15, ymm3
vpaddd ymm2, ymm2, ymm15
vperm2i128 ymm3, ymm14, ymm0, 2
vpand ymm3, ymm3, ymmword [0x006dca60]
vmovdqa ymmword [rbp], ymm3
vperm2i128 ymm0, ymm14, ymm0, 0x13
vperm2i128 ymm14, ymm4, ymm12, 0x13
vperm2i128 ymm12, ymm9, ymm5, 2
vperm2i128 ymm4, ymm1, ymm13, 2
vperm2i128 ymm5, ymm9, ymm5, 0x13
vperm2i128 ymm9, ymm1, ymm13, 0x13
vperm2i128 ymm13, ymm10, ymm6, 2
vperm2i128 ymm1, ymm2, ymm8, 2
vperm2i128 ymm6, ymm10, ymm6, 0x13
vperm2i128 ymm10, ymm2, ymm8, 0x13
jmp 0x599377
vmovdqa ymm5, ymmword [0x006dc9c0]
vmovdqa ymm9, ymmword [rbp + 0x20]
vmovdqa ymm13, ymmword [rbp + 0x40]
vmovdqa ymm1, ymmword [rbp + 0xc0]
vpaddd ymm1, ymm1, ymmword [0x006dca20]
vmovdqa ymm4, ymm1
xor r9, r9
mov rcx, rbx
and rcx, 0xfffffffffffffff0
test rcx, rcx
je 0x599987
add r10, qword [rsi + r9]
adc r11, qword [rsi + r9 + 8]
adc r12, 1
mov rdx, qword [rbp]
mov r15, rdx
mulx r14, r13, r10
imul r15, r12
mulx rdx, rax, r11
add r14, rax
adc r15, rdx
mov rdx, qword [rbp + 8]
mulx rax, r10, r10
add r14, r10
mulx r8, r11, r11
adc r15, r11
adc r8, 0
imul rdx, r12
add r15, rax
adc r8, rdx
mov r10, r13
mov r11, r14
mov r12, r15
and r12, 3
mov r13, r15
and r13, 0xfffffffffffffffc
mov r14, r8
shrd r15, r8, 2
shr r8, 2
add r10, r13
adc r11, r14
adc r12, 0
add r10, r15
adc r11, r8
adc r12, 0
add r9, 0x10
vpaddd ymm5, ymm5, ymm9
vpxor ymm1, ymm1, ymm5
vpshufb ymm1, ymm1, ymmword [0x006dc9e0]
vpaddd ymm13, ymm13, ymm1
vpxor ymm9, ymm9, ymm13
vpslld ymm3, ymm9, 0xc
vpsrld ymm9, ymm9, 0x14
vpxor ymm9, ymm9, ymm3
vpaddd ymm5, ymm5, ymm9
vpxor ymm1, ymm1, ymm5
vpshufb ymm1, ymm1, ymmword [0x006dca00]
vpaddd ymm13, ymm13, ymm1
vpxor ymm9, ymm9, ymm13
vpslld ymm3, ymm9, 7
vpsrld ymm9, ymm9, 0x19
vpxor ymm9, ymm9, ymm3
vpalignr ymm9, ymm9, ymm9, 4
vpalignr ymm13, ymm13, ymm13, 8
vpalignr ymm1, ymm1, ymm1, 0xc
vpaddd ymm5, ymm5, ymm9
vpxor ymm1, ymm1, ymm5
vpshufb ymm1, ymm1, ymmword [0x006dc9e0]
vpaddd ymm13, ymm13, ymm1
vpxor ymm9, ymm9, ymm13
vpslld ymm3, ymm9, 0xc
vpsrld ymm9, ymm9, 0x14
vpxor ymm9, ymm9, ymm3
vpaddd ymm5, ymm5, ymm9
vpxor ymm1, ymm1, ymm5
vpshufb ymm1, ymm1, ymmword [0x006dca00]
vpaddd ymm13, ymm13, ymm1
vpxor ymm9, ymm9, ymm13
vpslld ymm3, ymm9, 7
vpsrld ymm9, ymm9, 0x19
vpxor ymm9, ymm9, ymm3
vpalignr ymm9, ymm9, ymm9, 0xc
vpalignr ymm13, ymm13, ymm13, 8
vpalignr ymm1, ymm1, ymm1, 4
cmp r9, rcx
jb 0x599909
cmp r9, 0xa0
jne 0x599987
vpaddd ymm5, ymm5, ymmword [0x006dc9c0]
vpaddd ymm9, ymm9, ymmword [rbp + 0x20]
vpaddd ymm13, ymm13, ymmword [rbp + 0x40]
vpaddd ymm1, ymm1, ymm4
vperm2i128 ymm0, ymm9, ymm5, 2
vperm2i128 ymm14, ymm1, ymm13, 2
vperm2i128 ymm12, ymm9, ymm5, 0x13
vperm2i128 ymm4, ymm1, ymm13, 0x13
cmp rbx, 0x20
jb 0x599ac9
sub rbx, 0x20
vpxor ymm0, ymm0, ymmword [rsi]
vmovdqu ymmword [rdi], ymm0
lea rsi, [rsi + 0x20]
lea rdi, [rdi + 0x20]
vmovdqa ymm0, ymm14
vmovdqa ymm14, ymm12
vmovdqa ymm12, ymm4
jmp 0x599a9f
cmp rbx, 0x10
vmovdqa xmm1, xmm0
jb 0x599af1
sub rbx, 0x10
vpxor xmm12, xmm0, xmmword [rsi]
vmovdqu xmmword [rdi], xmm12
lea rsi, [rsi + 0x10]
lea rdi, [rdi + 0x10]
vperm2i128 ymm0, ymm0, ymm0, 0x11
vmovdqa xmm1, xmm0
vzeroupper
jmp 0x5972cd
vmovdqa ymm0, ymmword [0x006dc9c0]
vmovdqa ymm5, ymm0
vmovdqa ymm14, ymmword [rbp + 0x20]
vmovdqa ymm9, ymm14
vmovdqa ymm12, ymmword [rbp + 0x40]
vmovdqa ymm13, ymm12
vmovdqa ymm4, ymmword [rbp + 0xc0]
vpaddd ymm4, ymm4, ymmword [0x006dca20]
vpaddd ymm1, ymm4, ymmword [0x006dca20]
vmovdqa ymm7, ymm4
vmovdqa ymm11, ymm1
mov qword [rbp + 0xe0], rbx
mov rcx, rbx
sub rcx, 0x80
shr rcx, 4
mov r9, 0xa
cmp rcx, 0xa
cmovg rcx, r9
mov rbx, rsi
xor r9, r9
add r10, qword [rbx]
adc r11, qword [rbx + 8]
adc r12, 1
mov rdx, qword [rbp]
mov r15, rdx
mulx r14, r13, r10
imul r15, r12
mulx rdx, rax, r11
add r14, rax
adc r15, rdx
mov rdx, qword [rbp + 8]
mulx rax, r10, r10
add r14, r10
mulx r8, r11, r11
adc r15, r11
adc r8, 0
imul rdx, r12
add r15, rax
adc r8, rdx
mov r10, r13
mov r11, r14
mov r12, r15
and r12, 3
mov r13, r15
and r13, 0xfffffffffffffffc
mov r14, r8
shrd r15, r8, 2
shr r8, 2
add r10, r13
adc r11, r14
adc r12, 0
add r10, r15
adc r11, r8
adc r12, 0
lea rbx, [rbx + 0x10]
vpaddd ymm0, ymm0, ymm14
vpxor ymm4, ymm4, ymm0
vpshufb ymm4, ymm4, ymmword [0x006dc9e0]
vpaddd ymm12, ymm12, ymm4
vpxor ymm14, ymm14, ymm12
vpslld ymm3, ymm14, 0xc
vpsrld ymm14, ymm14, 0x14
vpxor ymm14, ymm14, ymm3
vpaddd ymm0, ymm0, ymm14
vpxor ymm4, ymm4, ymm0
vpshufb ymm4, ymm4, ymmword [0x006dca00]
vpaddd ymm12, ymm12, ymm4
vpxor ymm14, ymm14, ymm12
vpslld ymm3, ymm14, 7
vpsrld ymm14, ymm14, 0x19
vpxor ymm14, ymm14, ymm3
vpaddd ymm5, ymm5, ymm9
vpxor ymm1, ymm1, ymm5
vpshufb ymm1, ymm1, ymmword [0x006dc9e0]
vpaddd ymm13, ymm13, ymm1
vpxor ymm9, ymm9, ymm13
vpslld ymm3, ymm9, 0xc
vpsrld ymm9, ymm9, 0x14
vpxor ymm9, ymm9, ymm3
vpaddd ymm5, ymm5, ymm9
vpxor ymm1, ymm1, ymm5
vpshufb ymm1, ymm1, ymmword [0x006dca00]
vpaddd ymm13, ymm13, ymm1
vpxor ymm9, ymm9, ymm13
vpslld ymm3, ymm9, 7
vpsrld ymm9, ymm9, 0x19
vpxor ymm9, ymm9, ymm3
vpalignr ymm14, ymm14, ymm14, 4
vpalignr ymm9, ymm9, ymm9, 4
vpalignr ymm12, ymm12, ymm12, 8
vpalignr ymm13, ymm13, ymm13, 8
vpalignr ymm4, ymm4, ymm4, 0xc
vpalignr ymm1, ymm1, ymm1, 0xc
inc r9
vpaddd ymm0, ymm0, ymm14
vpxor ymm4, ymm4, ymm0
vpshufb ymm4, ymm4, ymmword [0x006dc9e0]
vpaddd ymm12, ymm12, ymm4
vpxor ymm14, ymm14, ymm12
vpslld ymm3, ymm14, 0xc
vpsrld ymm14, ymm14, 0x14
vpxor ymm14, ymm14, ymm3
vpaddd ymm0, ymm0, ymm14
vpxor ymm4, ymm4, ymm0
vpshufb ymm4, ymm4, ymmword [0x006dca00]
vpaddd ymm12, ymm12, ymm4
vpxor ymm14, ymm14, ymm12
vpslld ymm3, ymm14, 7
vpsrld ymm14, ymm14, 0x19
vpxor ymm14, ymm14, ymm3
vpaddd ymm5, ymm5, ymm9
vpxor ymm1, ymm1, ymm5
vpshufb ymm1, ymm1, ymmword [0x006dc9e0]
vpaddd ymm13, ymm13, ymm1
vpxor ymm9, ymm9, ymm13
vpslld ymm3, ymm9, 0xc
vpsrld ymm9, ymm9, 0x14
vpxor ymm9, ymm9, ymm3
vpaddd ymm5, ymm5, ymm9
vpxor ymm1, ymm1, ymm5
vpshufb ymm1, ymm1, ymmword [0x006dca00]
vpaddd ymm13, ymm13, ymm1
vpxor ymm9, ymm9, ymm13
vpslld ymm3, ymm9, 7
vpsrld ymm9, ymm9, 0x19
vpxor ymm9, ymm9, ymm3
vpalignr ymm14, ymm14, ymm14, 0xc
vpalignr ymm9, ymm9, ymm9, 0xc
vpalignr ymm12, ymm12, ymm12, 8
vpalignr ymm13, ymm13, ymm13, 8
vpalignr ymm4, ymm4, ymm4, 4
vpalignr ymm1, ymm1, ymm1, 4
cmp r9, rcx
jb 0x599b64
cmp r9, 0xa
jne 0x599be4
mov r9, rbx
sub rbx, rsi
mov rcx, rbx
mov rbx, qword [rbp + 0xe0]
add rcx, 0x10
cmp rcx, rbx
jg 0x599e3c
add r10, qword [r9]
adc r11, qword [r9 + 8]
adc r12, 1
mov rdx, qword [rbp]
mov r15, rdx
mulx r14, r13, r10
imul r15, r12
mulx rdx, rax, r11
add r14, rax
adc r15, rdx
mov rdx, qword [rbp + 8]
mulx rax, r10, r10
add r14, r10
mulx r8, r11, r11
adc r15, r11
adc r8, 0
imul rdx, r12
add r15, rax
adc r8, rdx
mov r10, r13
mov r11, r14
mov r12, r15
and r12, 3
mov r13, r15
and r13, 0xfffffffffffffffc
mov r14, r8
shrd r15, r8, 2
shr r8, 2
add r10, r13
adc r11, r14
adc r12, 0
add r10, r15
adc r11, r8
adc r12, 0
lea r9, [r9 + 0x10]
jmp 0x599daa
vpaddd ymm0, ymm0, ymmword [0x006dc9c0]
vpaddd ymm5, ymm5, ymmword [0x006dc9c0]
vpaddd ymm14, ymm14, ymmword [rbp + 0x20]
vpaddd ymm9, ymm9, ymmword [rbp + 0x20]
vpaddd ymm12, ymm12, ymmword [rbp + 0x40]
vpaddd ymm13, ymm13, ymmword [rbp + 0x40]
vpaddd ymm4, ymm4, ymm7
vpaddd ymm1, ymm1, ymm11
vperm2i128 ymm6, ymm14, ymm0, 2
vperm2i128 ymm10, ymm4, ymm12, 2
vperm2i128 ymm8, ymm14, ymm0, 0x13
vperm2i128 ymm2, ymm4, ymm12, 0x13
vperm2i128 ymm0, ymm9, ymm5, 2
vperm2i128 ymm14, ymm1, ymm13, 2
vperm2i128 ymm12, ymm9, ymm5, 0x13
vperm2i128 ymm4, ymm1, ymm13, 0x13
vpxor ymm6, ymm6, ymmword [rsi]
vpxor ymm10, ymm10, ymmword [rsi + 0x20]
vpxor ymm8, ymm8, ymmword [rsi + 0x40]
vpxor ymm2, ymm2, ymmword [rsi + 0x60]
vmovdqu ymmword [rdi], ymm6
vmovdqu ymmword [rdi + 0x20], ymm10
vmovdqu ymmword [rdi + 0x40], ymm8
vmovdqu ymmword [rdi + 0x60], ymm2
lea rsi, [rsi + 0x80]
lea rdi, [rdi + 0x80]
sub rbx, 0x80
jmp 0x599a9f
vmovdqa ymm0, ymmword [0x006dc9c0]
vmovdqa ymm5, ymm0
vmovdqa ymm6, ymm0
vmovdqa ymm14, ymmword [rbp + 0x20]
vmovdqa ymm9, ymm14
vmovdqa ymm10, ymm14
vmovdqa ymm12, ymmword [rbp + 0x40]
vmovdqa ymm13, ymm12
vmovdqa ymm8, ymm12
vmovdqa ymm4, ymmword [rbp + 0xc0]
vpaddd ymm4, ymm4, ymmword [0x006dca20]
vpaddd ymm1, ymm4, ymmword [0x006dca20]
vpaddd ymm2, ymm1, ymmword [0x006dca20]
vmovdqa ymmword [rbp + 0x60], ymm4
vmovdqa ymmword [rbp + 0x80], ymm1
vmovdqa ymmword [rbp + 0xa0], ymm2
mov qword [rbp + 0xe0], rbx
mov rcx, rbx
sub rcx, 0x100
shr rcx, 4
add rcx, 6
mov r9, 0xa
cmp rcx, 0xa
cmovg rcx, r9
mov rbx, rsi
xor r9, r9
add r10, qword [rbx]
adc r11, qword [rbx + 8]
adc r12, 1
mov rdx, qword [rbp]
mov r15, rdx
mulx r14, r13, r10
imul r15, r12
mulx rdx, rax, r11
add r14, rax
adc r15, rdx
mov rdx, qword [rbp + 8]
mulx rax, r10, r10
add r14, r10
mulx r8, r11, r11
adc r15, r11
adc r8, 0
imul rdx, r12
add r15, rax
adc r8, rdx
mov r10, r13
mov r11, r14
mov r12, r15
and r12, 3
mov r13, r15
and r13, 0xfffffffffffffffc
mov r14, r8
shrd r15, r8, 2
shr r8, 2
add r10, r13
adc r11, r14
adc r12, 0
add r10, r15
adc r11, r8
adc r12, 0
lea rbx, [rbx + 0x10]
vpaddd ymm0, ymm0, ymm14
vpxor ymm4, ymm4, ymm0
vpshufb ymm4, ymm4, ymmword [0x006dc9e0]
vpaddd ymm12, ymm12, ymm4
vpxor ymm14, ymm14, ymm12
vpslld ymm3, ymm14, 0xc
vpsrld ymm14, ymm14, 0x14
vpxor ymm14, ymm14, ymm3
vpaddd ymm0, ymm0, ymm14
vpxor ymm4, ymm4, ymm0
vpshufb ymm4, ymm4, ymmword [0x006dca00]
vpaddd ymm12, ymm12, ymm4
vpxor ymm14, ymm14, ymm12
vpslld ymm3, ymm14, 7
vpsrld ymm14, ymm14, 0x19
vpxor ymm14, ymm14, ymm3
vpaddd ymm5, ymm5, ymm9
vpxor ymm1, ymm1, ymm5
vpshufb ymm1, ymm1, ymmword [0x006dc9e0]
vpaddd ymm13, ymm13, ymm1
vpxor ymm9, ymm9, ymm13
vpslld ymm3, ymm9, 0xc
vpsrld ymm9, ymm9, 0x14
vpxor ymm9, ymm9, ymm3
vpaddd ymm5, ymm5, ymm9
vpxor ymm1, ymm1, ymm5
vpshufb ymm1, ymm1, ymmword [0x006dca00]
vpaddd ymm13, ymm13, ymm1
vpxor ymm9, ymm9, ymm13
vpslld ymm3, ymm9, 7
vpsrld ymm9, ymm9, 0x19
vpxor ymm9, ymm9, ymm3
vpaddd ymm6, ymm6, ymm10
vpxor ymm2, ymm2, ymm6
vpshufb ymm2, ymm2, ymmword [0x006dc9e0]
vpaddd ymm8, ymm8, ymm2
vpxor ymm10, ymm10, ymm8
vpslld ymm3, ymm10, 0xc
vpsrld ymm10, ymm10, 0x14
vpxor ymm10, ymm10, ymm3
vpaddd ymm6, ymm6, ymm10
vpxor ymm2, ymm2, ymm6
vpshufb ymm2, ymm2, ymmword [0x006dca00]
vpaddd ymm8, ymm8, ymm2
vpxor ymm10, ymm10, ymm8
vpslld ymm3, ymm10, 7
vpsrld ymm10, ymm10, 0x19
vpxor ymm10, ymm10, ymm3
vpalignr ymm14, ymm14, ymm14, 4
vpalignr ymm9, ymm9, ymm9, 4
vpalignr ymm10, ymm10, ymm10, 4
vpalignr ymm12, ymm12, ymm12, 8
vpalignr ymm13, ymm13, ymm13, 8
vpalignr ymm8, ymm8, ymm8, 8
vpalignr ymm4, ymm4, ymm4, 0xc
vpalignr ymm1, ymm1, ymm1, 0xc
vpalignr ymm2, ymm2, ymm2, 0xc
add r10, qword [rbx]
adc r11, qword [rbx + 8]
adc r12, 1
mov rdx, qword [rbp]
mov r15, rdx
mulx r14, r13, r10
imul r15, r12
mulx rdx, rax, r11
add r14, rax
adc r15, rdx
mov rdx, qword [rbp + 8]
mulx rax, r10, r10
add r14, r10
mulx r8, r11, r11
adc r15, r11
adc r8, 0
imul rdx, r12
add r15, rax
adc r8, rdx
mov r10, r13
mov r11, r14
mov r12, r15
and r12, 3
mov r13, r15
and r13, 0xfffffffffffffffc
mov r14, r8
shrd r15, r8, 2
shr r8, 2
add r10, r13
adc r11, r14
adc r12, 0
add r10, r15
adc r11, r8
adc r12, 0
lea rbx, [rbx + 0x10]
inc r9
vpaddd ymm0, ymm0, ymm14
vpxor ymm4, ymm4, ymm0
vpshufb ymm4, ymm4, ymmword [0x006dc9e0]
vpaddd ymm12, ymm12, ymm4
vpxor ymm14, ymm14, ymm12
vpslld ymm3, ymm14, 0xc
vpsrld ymm14, ymm14, 0x14
vpxor ymm14, ymm14, ymm3
vpaddd ymm0, ymm0, ymm14
vpxor ymm4, ymm4, ymm0
vpshufb ymm4, ymm4, ymmword [0x006dca00]
vpaddd ymm12, ymm12, ymm4
vpxor ymm14, ymm14, ymm12
vpslld ymm3, ymm14, 7
vpsrld ymm14, ymm14, 0x19
vpxor ymm14, ymm14, ymm3
vpaddd ymm5, ymm5, ymm9
vpxor ymm1, ymm1, ymm5
vpshufb ymm1, ymm1, ymmword [0x006dc9e0]
vpaddd ymm13, ymm13, ymm1
vpxor ymm9, ymm9, ymm13
vpslld ymm3, ymm9, 0xc
vpsrld ymm9, ymm9, 0x14
vpxor ymm9, ymm9, ymm3
vpaddd ymm5, ymm5, ymm9
vpxor ymm1, ymm1, ymm5
vpshufb ymm1, ymm1, ymmword [0x006dca00]
vpaddd ymm13, ymm13, ymm1
vpxor ymm9, ymm9, ymm13
vpslld ymm3, ymm9, 7
vpsrld ymm9, ymm9, 0x19
vpxor ymm9, ymm9, ymm3
vpaddd ymm6, ymm6, ymm10
vpxor ymm2, ymm2, ymm6
vpshufb ymm2, ymm2, ymmword [0x006dc9e0]
vpaddd ymm8, ymm8, ymm2
vpxor ymm10, ymm10, ymm8
vpslld ymm3, ymm10, 0xc
vpsrld ymm10, ymm10, 0x14
vpxor ymm10, ymm10, ymm3
vpaddd ymm6, ymm6, ymm10
vpxor ymm2, ymm2, ymm6
vpshufb ymm2, ymm2, ymmword [0x006dca00]
vpaddd ymm8, ymm8, ymm2
vpxor ymm10, ymm10, ymm8
vpslld ymm3, ymm10, 7
vpsrld ymm10, ymm10, 0x19
vpxor ymm10, ymm10, ymm3
vpalignr ymm14, ymm14, ymm14, 0xc
vpalignr ymm9, ymm9, ymm9, 0xc
vpalignr ymm10, ymm10, ymm10, 0xc
vpalignr ymm12, ymm12, ymm12, 8
vpalignr ymm13, ymm13, ymm13, 8
vpalignr ymm8, ymm8, ymm8, 8
vpalignr ymm4, ymm4, ymm4, 4
vpalignr ymm1, ymm1, ymm1, 4
vpalignr ymm2, ymm2, ymm2, 4
cmp r9, rcx
jb 0x599f6a
cmp r9, 0xa
jne 0x599fea
mov r9, rbx
sub rbx, rsi
mov rcx, rbx
mov rbx, qword [rbp + 0xe0]
add rcx, 0x10
cmp rcx, rbx
jg 0x59a392
add r10, qword [r9]
adc r11, qword [r9 + 8]
adc r12, 1
mov rdx, qword [rbp]
mov r15, rdx
mulx r14, r13, r10
imul r15, r12
mulx rdx, rax, r11
add r14, rax
adc r15, rdx
mov rdx, qword [rbp + 8]
mulx rax, r10, r10
add r14, r10
mulx r8, r11, r11
adc r15, r11
adc r8, 0
imul rdx, r12
add r15, rax
adc r8, rdx
mov r10, r13
mov r11, r14
mov r12, r15
and r12, 3
mov r13, r15
and r13, 0xfffffffffffffffc
mov r14, r8
shrd r15, r8, 2
shr r8, 2
add r10, r13
adc r11, r14
adc r12, 0
add r10, r15
adc r11, r8
adc r12, 0
lea r9, [r9 + 0x10]
jmp 0x59a300
vpaddd ymm0, ymm0, ymmword [0x006dc9c0]
vpaddd ymm5, ymm5, ymmword [0x006dc9c0]
vpaddd ymm6, ymm6, ymmword [0x006dc9c0]
vpaddd ymm14, ymm14, ymmword [rbp + 0x20]
vpaddd ymm9, ymm9, ymmword [rbp + 0x20]
vpaddd ymm10, ymm10, ymmword [rbp + 0x20]
vpaddd ymm12, ymm12, ymmword [rbp + 0x40]
vpaddd ymm13, ymm13, ymmword [rbp + 0x40]
vpaddd ymm8, ymm8, ymmword [rbp + 0x40]
vpaddd ymm4, ymm4, ymmword [rbp + 0x60]
vpaddd ymm1, ymm1, ymmword [rbp + 0x80]
vpaddd ymm2, ymm2, ymmword [rbp + 0xa0]
vperm2i128 ymm3, ymm14, ymm0, 2
vperm2i128 ymm7, ymm4, ymm12, 2
vperm2i128 ymm11, ymm14, ymm0, 0x13
vperm2i128 ymm15, ymm4, ymm12, 0x13
vpxor ymm3, ymm3, ymmword [rsi]
vpxor ymm7, ymm7, ymmword [rsi + 0x20]
vpxor ymm11, ymm11, ymmword [rsi + 0x40]
vpxor ymm15, ymm15, ymmword [rsi + 0x60]
vmovdqu ymmword [rdi], ymm3
vmovdqu ymmword [rdi + 0x20], ymm7
vmovdqu ymmword [rdi + 0x40], ymm11
vmovdqu ymmword [rdi + 0x60], ymm15
vperm2i128 ymm3, ymm9, ymm5, 2
vperm2i128 ymm7, ymm1, ymm13, 2
vperm2i128 ymm11, ymm9, ymm5, 0x13
vperm2i128 ymm15, ymm1, ymm13, 0x13
vpxor ymm3, ymm3, ymmword [rsi + 0x80]
vpxor ymm7, ymm7, ymmword [rsi + 0xa0]
vpxor ymm11, ymm11, ymmword [rsi + 0xc0]
vpxor ymm15, ymm15, ymmword [rsi + 0xe0]
vmovdqu ymmword [rdi + 0x80], ymm3
vmovdqu ymmword [rdi + 0xa0], ymm7
vmovdqu ymmword [rdi + 0xc0], ymm11
vmovdqu ymmword [rdi + 0xe0], ymm15
vperm2i128 ymm0, ymm10, ymm6, 2
vperm2i128 ymm14, ymm2, ymm8, 2
vperm2i128 ymm12, ymm10, ymm6, 0x13
vperm2i128 ymm4, ymm2, ymm8, 0x13
lea rsi, [rsi + 0x100]
lea rdi, [rdi + 0x100]
sub rbx, 0x100
jmp 0x599a9f
vmovdqu ymm0, ymmword [0x006dc9c0]
vmovdqa ymm5, ymm0
vmovdqa ymm6, ymm0
vmovdqa ymm7, ymm0
vmovdqa ymm14, ymmword [rbp + 0x20]
vmovdqa ymm9, ymm14
vmovdqa ymm10, ymm14
vmovdqa ymm11, ymm14
vmovdqa ymm12, ymmword [rbp + 0x40]
vmovdqa ymm13, ymm12
vmovdqa ymm8, ymm12
vmovdqa ymm15, ymm12
vmovdqa ymm4, ymmword [rbp + 0xc0]
vpaddd ymm4, ymm4, ymmword [0x006dca20]
vpaddd ymm1, ymm4, ymmword [0x006dca20]
vpaddd ymm2, ymm1, ymmword [0x006dca20]
vpaddd ymm3, ymm2, ymmword [0x006dca20]
vmovdqa ymmword [rbp + 0x60], ymm4
vmovdqa ymmword [rbp + 0x80], ymm1
vmovdqa ymmword [rbp + 0xa0], ymm2
vmovdqa ymmword [rbp + 0xc0], ymm3
xor rcx, rcx
mov r9, rsi
add r10, qword [r9]
adc r11, qword [r9 + 8]
adc r12, 1
mov rdx, qword [rbp]
mov r15, rdx
mulx r14, r13, r10
imul r15, r12
mulx rdx, rax, r11
add r14, rax
adc r15, rdx
mov rdx, qword [rbp + 8]
mulx rax, r10, r10
add r14, r10
mulx r8, r11, r11
adc r15, r11
adc r8, 0
imul rdx, r12
add r15, rax
adc r8, rdx
mov r10, r13
mov r11, r14
mov r12, r15
and r12, 3
mov r13, r15
and r13, 0xfffffffffffffffc
mov r14, r8
shrd r15, r8, 2
shr r8, 2
add r10, r13
adc r11, r14
adc r12, 0
add r10, r15
adc r11, r8
adc r12, 0
lea r9, [r9 + 0x10]
vpaddd ymm0, ymm0, ymm14
vpaddd ymm5, ymm5, ymm9
vpaddd ymm6, ymm6, ymm10
vpaddd ymm7, ymm7, ymm11
vpxor ymm4, ymm4, ymm0
vpxor ymm1, ymm1, ymm5
vpxor ymm2, ymm2, ymm6
vpxor ymm3, ymm3, ymm7
vpshufb ymm4, ymm4, ymmword [0x006dc9e0]
vpshufb ymm1, ymm1, ymmword [0x006dc9e0]
vpshufb ymm2, ymm2, ymmword [0x006dc9e0]
vpshufb ymm3, ymm3, ymmword [0x006dc9e0]
vpaddd ymm12, ymm12, ymm4
vpaddd ymm13, ymm13, ymm1
vpaddd ymm8, ymm8, ymm2
vpaddd ymm15, ymm15, ymm3
vpxor ymm14, ymm14, ymm12
vpxor ymm9, ymm9, ymm13
vpxor ymm10, ymm10, ymm8
vpxor ymm11, ymm11, ymm15
vmovdqa ymmword [rbp + 0xe0], ymm15
vpslld ymm15, ymm14, 0xc
vpsrld ymm14, ymm14, 0x14
vpxor ymm14, ymm14, ymm15
vpslld ymm15, ymm9, 0xc
vpsrld ymm9, ymm9, 0x14
vpxor ymm9, ymm9, ymm15
vpslld ymm15, ymm10, 0xc
vpsrld ymm10, ymm10, 0x14
vpxor ymm10, ymm10, ymm15
vpslld ymm15, ymm11, 0xc
vpsrld ymm11, ymm11, 0x14
vpxor ymm11, ymm11, ymm15
vmovdqa ymm15, ymmword [rbp + 0xe0]
add r10, qword [r9]
adc r11, qword [r9 + 8]
adc r12, 1
mov rdx, qword [rbp]
mov r15, rdx
mulx r14, r13, r10
imul r15, r12
mulx rdx, rax, r11
add r14, rax
adc r15, rdx
mov rdx, qword [rbp + 8]
mulx rax, r10, r10
add r14, r10
mulx r8, r11, r11
adc r15, r11
adc r8, 0
imul rdx, r12
add r15, rax
adc r8, rdx
mov r10, r13
mov r11, r14
mov r12, r15
and r12, 3
mov r13, r15
and r13, 0xfffffffffffffffc
mov r14, r8
shrd r15, r8, 2
shr r8, 2
add r10, r13
adc r11, r14
adc r12, 0
add r10, r15
adc r11, r8
adc r12, 0
vpaddd ymm0, ymm0, ymm14
vpaddd ymm5, ymm5, ymm9
vpaddd ymm6, ymm6, ymm10
vpaddd ymm7, ymm7, ymm11
vpxor ymm4, ymm4, ymm0
vpxor ymm1, ymm1, ymm5
vpxor ymm2, ymm2, ymm6
vpxor ymm3, ymm3, ymm7
vpshufb ymm4, ymm4, ymmword [0x006dca00]
vpshufb ymm1, ymm1, ymmword [0x006dca00]
vpshufb ymm2, ymm2, ymmword [0x006dca00]
vpshufb ymm3, ymm3, ymmword [0x006dca00]
vpaddd ymm12, ymm12, ymm4
vpaddd ymm13, ymm13, ymm1
vpaddd ymm8, ymm8, ymm2
vpaddd ymm15, ymm15, ymm3
vpxor ymm14, ymm14, ymm12
vpxor ymm9, ymm9, ymm13
vpxor ymm10, ymm10, ymm8
vpxor ymm11, ymm11, ymm15
vmovdqa ymmword [rbp + 0xe0], ymm15
vpslld ymm15, ymm14, 7
vpsrld ymm14, ymm14, 0x19
vpxor ymm14, ymm14, ymm15
vpslld ymm15, ymm9, 7
vpsrld ymm9, ymm9, 0x19
vpxor ymm9, ymm9, ymm15
vpslld ymm15, ymm10, 7
vpsrld ymm10, ymm10, 0x19
vpxor ymm10, ymm10, ymm15
vpslld ymm15, ymm11, 7
vpsrld ymm11, ymm11, 0x19
vpxor ymm11, ymm11, ymm15
vmovdqa ymm15, ymmword [rbp + 0xe0]
vpalignr ymm14, ymm14, ymm14, 4
vpalignr ymm9, ymm9, ymm9, 4
vpalignr ymm10, ymm10, ymm10, 4
vpalignr ymm11, ymm11, ymm11, 4
vpalignr ymm12, ymm12, ymm12, 8
vpalignr ymm13, ymm13, ymm13, 8
vpalignr ymm8, ymm8, ymm8, 8
vpalignr ymm15, ymm15, ymm15, 8
vpalignr ymm4, ymm4, ymm4, 0xc
vpalignr ymm1, ymm1, ymm1, 0xc
vpalignr ymm2, ymm2, ymm2, 0xc
vpalignr ymm3, ymm3, ymm3, 0xc
vpaddd ymm0, ymm0, ymm14
vpaddd ymm5, ymm5, ymm9
vpaddd ymm6, ymm6, ymm10
vpaddd ymm7, ymm7, ymm11
vpxor ymm4, ymm4, ymm0
vpxor ymm1, ymm1, ymm5
vpxor ymm2, ymm2, ymm6
vpxor ymm3, ymm3, ymm7
vpshufb ymm4, ymm4, ymmword [0x006dc9e0]
vpshufb ymm1, ymm1, ymmword [0x006dc9e0]
vpshufb ymm2, ymm2, ymmword [0x006dc9e0]
vpshufb ymm3, ymm3, ymmword [0x006dc9e0]
vpaddd ymm12, ymm12, ymm4
vpaddd ymm13, ymm13, ymm1
vpaddd ymm8, ymm8, ymm2
vpaddd ymm15, ymm15, ymm3
vpxor ymm14, ymm14, ymm12
vpxor ymm9, ymm9, ymm13
vpxor ymm10, ymm10, ymm8
vpxor ymm11, ymm11, ymm15
add r10, qword [r9 + 0x10]
adc r11, qword [r9 + 0x18]
adc r12, 1
mov rdx, qword [rbp]
mov r15, rdx
mulx r14, r13, r10
imul r15, r12
mulx rdx, rax, r11
add r14, rax
adc r15, rdx
mov rdx, qword [rbp + 8]
mulx rax, r10, r10
add r14, r10
mulx r8, r11, r11
adc r15, r11
adc r8, 0
imul rdx, r12
add r15, rax
adc r8, rdx
mov r10, r13
mov r11, r14
mov r12, r15
and r12, 3
mov r13, r15
and r13, 0xfffffffffffffffc
mov r14, r8
shrd r15, r8, 2
shr r8, 2
add r10, r13
adc r11, r14
adc r12, 0
add r10, r15
adc r11, r8
adc r12, 0
lea r9, [r9 + 0x20]
vmovdqa ymmword [rbp + 0xe0], ymm15
vpslld ymm15, ymm14, 0xc
vpsrld ymm14, ymm14, 0x14
vpxor ymm14, ymm14, ymm15
vpslld ymm15, ymm9, 0xc
vpsrld ymm9, ymm9, 0x14
vpxor ymm9, ymm9, ymm15
vpslld ymm15, ymm10, 0xc
vpsrld ymm10, ymm10, 0x14
vpxor ymm10, ymm10, ymm15
vpslld ymm15, ymm11, 0xc
vpsrld ymm11, ymm11, 0x14
vpxor ymm11, ymm11, ymm15
vmovdqa ymm15, ymmword [rbp + 0xe0]
vpaddd ymm0, ymm0, ymm14
vpaddd ymm5, ymm5, ymm9
vpaddd ymm6, ymm6, ymm10
vpaddd ymm7, ymm7, ymm11
vpxor ymm4, ymm4, ymm0
vpxor ymm1, ymm1, ymm5
vpxor ymm2, ymm2, ymm6
vpxor ymm3, ymm3, ymm7
vpshufb ymm4, ymm4, ymmword [0x006dca00]
vpshufb ymm1, ymm1, ymmword [0x006dca00]
vpshufb ymm2, ymm2, ymmword [0x006dca00]
vpshufb ymm3, ymm3, ymmword [0x006dca00]
vpaddd ymm12, ymm12, ymm4
vpaddd ymm13, ymm13, ymm1
vpaddd ymm8, ymm8, ymm2
vpaddd ymm15, ymm15, ymm3
vpxor ymm14, ymm14, ymm12
vpxor ymm9, ymm9, ymm13
vpxor ymm10, ymm10, ymm8
vpxor ymm11, ymm11, ymm15
vmovdqa ymmword [rbp + 0xe0], ymm15
vpslld ymm15, ymm14, 7
vpsrld ymm14, ymm14, 0x19
vpxor ymm14, ymm14, ymm15
vpslld ymm15, ymm9, 7
vpsrld ymm9, ymm9, 0x19
vpxor ymm9, ymm9, ymm15
vpslld ymm15, ymm10, 7
vpsrld ymm10, ymm10, 0x19
vpxor ymm10, ymm10, ymm15
vpslld ymm15, ymm11, 7
vpsrld ymm11, ymm11, 0x19
vpxor ymm11, ymm11, ymm15
vmovdqa ymm15, ymmword [rbp + 0xe0]
vpalignr ymm14, ymm14, ymm14, 0xc
vpalignr ymm9, ymm9, ymm9, 0xc
vpalignr ymm10, ymm10, ymm10, 0xc
vpalignr ymm11, ymm11, ymm11, 0xc
vpalignr ymm12, ymm12, ymm12, 8
vpalignr ymm13, ymm13, ymm13, 8
vpalignr ymm8, ymm8, ymm8, 8
vpalignr ymm15, ymm15, ymm15, 8
vpalignr ymm4, ymm4, ymm4, 4
vpalignr ymm1, ymm1, ymm1, 4
vpalignr ymm2, ymm2, ymm2, 4
vpalignr ymm3, ymm3, ymm3, 4
inc rcx
cmp rcx, 4
jl 0x59a52c
cmp rcx, 0xa
jne 0x59a5ac
mov rcx, rbx
sub rcx, 0x180
and rcx, 0xfffffffffffffff0
test rcx, rcx
je 0x59aaf0
add r10, qword [r9]
adc r11, qword [r9 + 8]
adc r12, 1
mov rdx, qword [rbp]
mov r15, rdx
mulx r14, r13, r10
imul r15, r12
mulx rdx, rax, r11
add r14, rax
adc r15, rdx
mov rdx, qword [rbp + 8]
mulx rax, r10, r10
add r14, r10
mulx r8, r11, r11
adc r15, r11
adc r8, 0
imul rdx, r12
add r15, rax
adc r8, rdx
mov r10, r13
mov r11, r14
mov r12, r15
and r12, 3
mov r13, r15
and r13, 0xfffffffffffffffc
mov r14, r8
shrd r15, r8, 2
shr r8, 2
add r10, r13
adc r11, r14
adc r12, 0
add r10, r15
adc r11, r8
adc r12, 0
lea r9, [r9 + 0x10]
sub rcx, 0x10
jmp 0x59aa5e
vpaddd ymm0, ymm0, ymmword [0x006dc9c0]
vpaddd ymm5, ymm5, ymmword [0x006dc9c0]
vpaddd ymm6, ymm6, ymmword [0x006dc9c0]
vpaddd ymm7, ymm7, ymmword [0x006dc9c0]
vpaddd ymm14, ymm14, ymmword [rbp + 0x20]
vpaddd ymm9, ymm9, ymmword [rbp + 0x20]
vpaddd ymm10, ymm10, ymmword [rbp + 0x20]
vpaddd ymm11, ymm11, ymmword [rbp + 0x20]
vpaddd ymm12, ymm12, ymmword [rbp + 0x40]
vpaddd ymm13, ymm13, ymmword [rbp + 0x40]
vpaddd ymm8, ymm8, ymmword [rbp + 0x40]
vpaddd ymm15, ymm15, ymmword [rbp + 0x40]
vpaddd ymm4, ymm4, ymmword [rbp + 0x60]
vpaddd ymm1, ymm1, ymmword [rbp + 0x80]
vpaddd ymm2, ymm2, ymmword [rbp + 0xa0]
vpaddd ymm3, ymm3, ymmword [rbp + 0xc0]
vmovdqa ymmword [rbp + 0xe0], ymm15
vperm2i128 ymm15, ymm14, ymm0, 2
vperm2i128 ymm14, ymm14, ymm0, 0x13
vperm2i128 ymm0, ymm4, ymm12, 2
vperm2i128 ymm12, ymm4, ymm12, 0x13
vpxor ymm15, ymm15, ymmword [rsi]
vpxor ymm0, ymm0, ymmword [rsi + 0x20]
vpxor ymm14, ymm14, ymmword [rsi + 0x40]
vpxor ymm12, ymm12, ymmword [rsi + 0x60]
vmovdqu ymmword [rdi], ymm15
vmovdqu ymmword [rdi + 0x20], ymm0
vmovdqu ymmword [rdi + 0x40], ymm14
vmovdqu ymmword [rdi + 0x60], ymm12
vperm2i128 ymm0, ymm9, ymm5, 2
vperm2i128 ymm14, ymm1, ymm13, 2
vperm2i128 ymm12, ymm9, ymm5, 0x13
vperm2i128 ymm4, ymm1, ymm13, 0x13
vpxor ymm0, ymm0, ymmword [rsi + 0x80]
vpxor ymm14, ymm14, ymmword [rsi + 0xa0]
vpxor ymm12, ymm12, ymmword [rsi + 0xc0]
vpxor ymm4, ymm4, ymmword [rsi + 0xe0]
vmovdqu ymmword [rdi + 0x80], ymm0
vmovdqu ymmword [rdi + 0xa0], ymm14
vmovdqu ymmword [rdi + 0xc0], ymm12
vmovdqu ymmword [rdi + 0xe0], ymm4
vperm2i128 ymm0, ymm10, ymm6, 2
vperm2i128 ymm14, ymm2, ymm8, 2
vperm2i128 ymm12, ymm10, ymm6, 0x13
vperm2i128 ymm4, ymm2, ymm8, 0x13
vpxor ymm0, ymm0, ymmword [rsi + 0x100]
vpxor ymm14, ymm14, ymmword [rsi + 0x120]
vpxor ymm12, ymm12, ymmword [rsi + 0x140]
vpxor ymm4, ymm4, ymmword [rsi + 0x160]
vmovdqu ymmword [rdi + 0x100], ymm0
vmovdqu ymmword [rdi + 0x120], ymm14
vmovdqu ymmword [rdi + 0x140], ymm12
vmovdqu ymmword [rdi + 0x160], ymm4
vperm2i128 ymm0, ymm11, ymm7, 2
vperm2i128 ymm14, ymm3, ymmword [rbp + 0xe0], 2
vperm2i128 ymm12, ymm11, ymm7, 0x13
vperm2i128 ymm4, ymm3, ymmword [rbp + 0xe0], 0x13
lea rsi, [rsi + 0x180]
lea rdi, [rdi + 0x180]
sub rbx, 0x180
jmp 0x599a9f
call sym.runtime.morestack_noctxt.abi0
jmp sym.vendor_golang.org_x_crypto_chacha20poly1305.chacha20Poly1305Open.abi0