Function at 0x1402cde80
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x258
vmovups xmmword [rsp + 0x1c0], xmm6
vmovups xmmword [rsp + 0x1d0], xmm7
vmovups xmmword [rsp + 0x1e0], xmm8
vmovups xmmword [rsp + 0x1f0], xmm9
vmovups xmmword [rsp + 0x200], xmm10
vmovups xmmword [rsp + 0x210], xmm11
vmovups xmmword [rsp + 0x220], xmm12
vmovups xmmword [rsp + 0x230], xmm13
vmovups xmmword [rsp + 0x240], xmm14
vmovd xmm12, dword [r9 + 4]
mov r13d, dword [r9 + 8]
mov r15, qword [r9 + 0x10]
mov r10, qword [r9 + 0x18]
lea rax, [rsp + 0xef]
mov rbx, rcx
vmovq xmm10, rdx
vmovq xmm7, r8
and rax, 0xffffffffffffffc0
vmovq xmm9, rax
vmovd eax, xmm12
sub eax, 0x400
cmp eax, 0x7fc00
ja 0x1402cdf60
lea eax, [r13 - 8]
cmp eax, 0x18
ja 0x1402cdf60
vmovd eax, xmm12
dec eax
mov edi, eax
vmovd xmm6, eax
vmovd eax, xmm12
and edi, eax
mov dword [rsp + 0x5c], edi
jne 0x1402cdf60
test r15, r15
jne 0x1402cdff0
test r10, r10
je 0x1402cdff0
nop word [rax + rax]
call qword [sym.imp.msvcrt.dll__errno]
mov dword [rax], 0x16
mov rax, qword [rsp + 0x2c0]
vpcmpeqd ymm0, ymm0, ymm0
vmovdqu8 ymmword [rax], ymm0
vzeroupper
xor eax, eax
vmovups xmm6, xmmword [rsp + 0x1c0]
vmovups xmm7, xmmword [rsp + 0x1d0]
vmovups xmm8, xmmword [rsp + 0x1e0]
vmovups xmm9, xmmword [rsp + 0x1f0]
vmovups xmm10, xmmword [rsp + 0x200]
vmovups xmm11, xmmword [rsp + 0x210]
vmovups xmm12, xmmword [rsp + 0x220]
vmovups xmm13, xmmword [rsp + 0x230]
vmovups xmm14, xmmword [rsp + 0x240]
add rsp, 0x258
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r12, r13
vmovd ebp, xmm12
mov dword [rsp + 0xa0], 0x18000
shl r12, 7
imul rbp, r12
lea rax, [r12 + 0x40]
vmovq xmm8, rax
lea rsi, [rbp + r12*2 + 0x40]
lea r14, [rsi + 0x18000]
cmp qword [rbx + 0x18], r14
jae 0x1402ce600
mov rcx, qword [rbx]
test rcx, rcx
je 0x1402ce041
mov qword [rsp + 0x40], r10
call sym.free
mov r10, qword [rsp + 0x40]
vpxor xmm0, xmm0, xmm0
mov qword [rbx + 8], 0
lea rcx, [rsi + 0x1803f]
mov qword [rsp + 0x40], r10
vmovdqu xmmword [rbx + 0x10], xmm0
call sym.malloc
test rax, rax
mov r10, qword [rsp + 0x40]
je 0x1402cf058
lea rsi, [rax + 0x3f]
vmovq xmm3, rax
and rsi, 0xffffffffffffffc0
vpinsrq xmm0, xmm3, rsi, 1
vmovdqu xmmword [rbx], xmm0
vpbroadcastq xmm0, r14
vmovdqu xmmword [rbx + 0x10], xmm0
je 0x1402cdf6c
lea r14, [rsi + r12]
vmovq rbx, xmm8
xor r9d, r9d
vmovq rcx, xmm9
lea rax, [r14 + rbp]
xor r8d, r8d
mov edx, 0x20
mov qword [rsp + 0x40], r10
add rbx, rax
vmovq xmm13, rax
lea rax, [rbx + 0x8000]
mov qword [rsp + 0x80], rbx
add rbx, 0x10000
mov qword [rsp + 0x88], rax
call sym.sph_blake2b_init
vmovq r8, xmm7
vmovq rdx, xmm10
vmovq rcx, xmm9
call sym.sph_blake2b_update
lea rax, [rsp + 0x60]
mov rdx, rax
vmovq rcx, xmm9
vmovq xmm8, rax
call sym.sph_blake2b_final
mov r10, qword [rsp + 0x40]
test r15, r15
mov eax, 0
mov rdi, qword [0x1403873f0]
vmovq r8, xmm10
mov qword [rsp + 0x90], rbx
mov qword [rsp + 0x98], 0
cmovne r8, r15
cmove r10, rax
movsxd rax, dword [rsp + 0x2c8]
shl rax, 7
vmovq xmm11, rax
add rax, qword [rdi]
movzx eax, byte [rax]
test al, al
jne 0x1402cdf81
mov qword [rsp + 0x30], pe_nt_image_headers64
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], 1
mov r9, r10
mov edx, 0x20
vmovq rcx, xmm8
call sym.pbkdf2_blake2b
mov rdi, qword [0x1403873f0]
vmovq rax, xmm11
add rax, qword [rdi]
movzx eax, byte [rax]
test al, al
jne 0x1402cdf81
vmovdqu ymm4, ymmword [rsi]
mov rbx, qword [rsp + 0x80]
vmovd xmm7, dword [rsp + 0xa0]
lea rdi, [rbx + 0x80]
vmovq xmm24, rdi
vmovdqu ymmword [rsp + 0x60], ymm4
vmovd xmm20, dword [rsi]
vmovd eax, xmm7
shr eax, 7
mov dword [rsp + 0x40], eax
vmovd dword [rbx + 0x80], xmm20
mov edx, dword [rsi + 4]
vpmovzxdq zmm20, ymm20
mov dword [rbx + 0x84], edx
mov r15d, dword [rsi + 8]
shl rdx, 0x20
mov dword [rbx + 0x88], r15d
mov r9d, dword [rsi + 0xc]
mov dword [rbx + 0x8c], r9d
vmovd xmm18, dword [rsi + 0x10]
shl r9, 0x20
vmovd dword [rbx + 0x90], xmm18
vmovd xmm2, dword [rsi + 0x14]
vpmovzxdq zmm18, ymm18
vmovd dword [rbx + 0x94], xmm2
mov r10d, dword [rsi + 0x18]
vmovq rdi, xmm2
shl rdi, 0x20
vmovq xmm2, rdi
vmovq rdi, xmm20
vmovq rbp, xmm2
mov dword [rbx + 0x98], r10d
mov ecx, dword [rsi + 0x1c]
or rdi, rbp
mov dword [rbx + 0x9c], ecx
vmovd xmm16, dword [rsi + 0x20]
shl rcx, 0x20
vmovd dword [rbx + 0xa0], xmm16
vmovd xmm0, dword [rsi + 0x24]
vmovd dword [rbx + 0xa4], xmm0
vmovd xmm19, dword [rsi + 0x28]
vmovd dword [rbx + 0xa8], xmm19
mov eax, dword [rsi + 0x2c]
vpmovzxdq zmm19, ymm19
mov dword [rbx + 0xac], eax
mov r11d, dword [rsi + 0x30]
shl rax, 0x20
mov dword [rbx + 0xb0], r11d
mov r8d, dword [rsi + 0x34]
mov dword [rbx + 0xb4], r8d
vmovd xmm17, dword [rsi + 0x38]
shl r8, 0x20
vmovd dword [rbx + 0xb8], xmm17
vmovd xmm1, dword [rsi + 0x3c]
mov qword [rbx], rdi
vpmovzxdq zmm17, ymm17
vmovq rdi, xmm1
vmovd dword [rbx + 0xbc], xmm1
shl rdi, 0x20
vmovq xmm1, rdi
vmovq rdi, xmm19
vmovq rbp, xmm1
or rdi, rbp
mov qword [rbx + 8], rdi
vmovq rdi, xmm0
shl rdi, 0x20
vmovq xmm0, rdi
vmovq rdi, xmm18
vmovq rbp, xmm0
or rdi, rbp
mov qword [rbx + 0x10], rdi
vmovq rdi, xmm17
or r9, rdi
mov qword [rbx + 0x18], r9
vmovd r9d, xmm16
or r8, r9
mov qword [rbx + 0x20], r8
mov r8d, r15d
or rcx, r8
mov qword [rbx + 0x28], rcx
mov ecx, r11d
or rdx, rcx
mov qword [rbx + 0x30], rdx
mov edx, r10d
or rax, rdx
mov qword [rbx + 0x38], rax
vmovd xmm20, dword [rsi + 0x40]
vmovd dword [rbx + 0x80], xmm20
mov edx, dword [rsi + 0x44]
vpmovzxdq zmm20, ymm20
mov dword [rbx + 0x84], edx
mov r10d, dword [rsi + 0x48]
shl rdx, 0x20
mov dword [rbx + 0x88], r10d
mov r9d, dword [rsi + 0x4c]
mov dword [rbx + 0x8c], r9d
vmovd xmm18, dword [rsi + 0x50]
shl r9, 0x20
vmovd dword [rbx + 0x90], xmm18
vmovd xmm2, dword [rsi + 0x54]
vpmovzxdq zmm18, ymm18
vmovd dword [rbx + 0x94], xmm2
mov r15d, dword [rsi + 0x58]
vmovq rdi, xmm2
shl rdi, 0x20
vmovq xmm2, rdi
vmovq rdi, xmm20
vmovq rbp, xmm2
mov dword [rbx + 0x98], r15d
mov ecx, dword [rsi + 0x5c]
or rdi, rbp
mov dword [rbx + 0x9c], ecx
vmovd xmm16, dword [rsi + 0x60]
shl rcx, 0x20
vmovd dword [rbx + 0xa0], xmm16
vmovd xmm0, dword [rsi + 0x64]
vmovd dword [rbx + 0xa4], xmm0
vmovd xmm19, dword [rsi + 0x68]
vmovd dword [rbx + 0xa8], xmm19
mov eax, dword [rsi + 0x6c]
vpmovzxdq zmm19, ymm19
mov dword [rbx + 0xac], eax
mov r11d, dword [rsi + 0x70]
shl rax, 0x20
mov dword [rbx + 0xb0], r11d
mov r8d, dword [rsi + 0x74]
mov dword [rbx + 0xb4], r8d
vmovd xmm17, dword [rsi + 0x78]
shl r8, 0x20
vmovd dword [rbx + 0xb8], xmm17
vmovd xmm1, dword [rsi + 0x7c]
mov qword [rbx + 0x40], rdi
vpmovzxdq zmm17, ymm17
vmovq rdi, xmm1
vmovd dword [rbx + 0xbc], xmm1
shl rdi, 0x20
vmovq xmm1, rdi
vmovq rdi, xmm19
vmovq rbp, xmm1
or rdi, rbp
mov qword [rbx + 0x48], rdi
vmovq rdi, xmm0
shl rdi, 0x20
vmovq xmm0, rdi
vmovq rdi, xmm18
vmovq rbp, xmm0
or rdi, rbp
mov qword [rbx + 0x50], rdi
vmovq rdi, xmm17
or r9, rdi
mov qword [rbx + 0x58], r9
vmovd r9d, xmm16
or r8, r9
mov qword [rbx + 0x60], r8
mov r8d, r10d
or rcx, r8
mov r8d, 1
mov qword [rbx + 0x68], rcx
mov ecx, r11d
or rdx, rcx
mov rcx, rbx
mov qword [rbx + 0x70], rdx
mov edx, r15d
lea r15, [rbx + 0x100]
or rax, rdx
xor r9d, r9d
vmovq rdx, xmm24
mov qword [rbx + 0x78], rax
call sym.blockmix_1_0
mov rdx, r15
mov r8d, 1
vmovq rcx, xmm24
call sym.blockmix_1_0
cmp dword [rsp + 0x40], 2
mov edx, dword [rbx + 0x140]
jbe 0x1402ce609
vmovd ebp, xmm7
mov ecx, 2
vmovq xmm7, rsi
mov rsi, rbx
shr ebp, 8
mov edi, ecx
vmovd xmm9, ebp
vmovd eax, xmm9
cmp edi, eax
jb 0x1402ce5f2
mov eax, dword [rsp + 0x40]
lea ebx, [rax - 1]
sub ebx, edi
cmp ebx, 1
jbe 0x1402ce5d5
lea ebp, [rdi - 1]
mov r11, r15
mov r9d, 1
mov eax, edx
nop word cs:[rax + rax]
nop
and eax, ebp
lea r10, [r11 + 0x80]
mov rcx, r11
add r11, 0x100
lea edx, [rax + r9 - 1]
mov r8, r10
shl rdx, 7
add rdx, rsi
call sym.blockmix_xor_1_0.constprop.0
mov r8, r11
mov rcx, r10
and eax, ebp
lea edx, [rax + r9]
add r9d, 2
shl rdx, 7
add rdx, rsi
call sym.blockmix_xor_1_0.constprop.0
cmp r9d, ebx
jb 0x1402ce570
mov edx, eax
lea eax, [rbx - 2]
mov r8d, 0x100
shr eax, 1
inc eax
shl rax, 8
cmp ebx, 1
cmovbe rax, r8
add r15, rax
mov ecx, dword [rsp + 0x40]
lea eax, [rdi + rdi]
cmp eax, ecx
jae 0x1402cf042
mov edi, eax
vmovd eax, xmm9
cmp edi, eax
jae 0x1402ce548
mov ebx, edi
jmp 0x1402ce556
mov rsi, qword [rbx + 8]
jmp 0x1402ce099
xor edx, edx
xor r9d, r9d
mov ecx, 1
mov r10d, dword [rsp + 0x40]
lea r11, [r15 + 0x80]
mov ebp, 1
mov r8, r11
sub r10d, ecx
mov rcx, r15
lea r15, [rsp + 0x80]
lea edx, [r10 + rdx - 2]
shl rdx, 7
add rdx, rbx
call sym.blockmix_xor_1_0.constprop.0
vmovq r8, xmm13
mov rcx, r11
lea r11, [r14 + r12]
and eax, r9d
vmovq xmm14, r11
mov r9, r15
lea eax, [r10 + rax - 1]
lea r10, [r13 + r13]
shl rax, 7
vmovq xmm7, r10
lea rdx, [rbx + rax]
mov ebx, 2
call sym.blockmix_xor_1_0.constprop.0
vmovdqu32 zmm5, zmmword [r8]
vmovdqu ymm0, ymmword [r8]
vmovdqu32 zmmword [r8 + 0x80], zmm5
vmovd dword [rsi], xmm0
mov eax, dword [r8 + 0xb4]
mov dword [rsi + 4], eax
mov rax, qword [r8 + 0xa8]
mov dword [rsi + 8], eax
mov eax, dword [r8 + 0x9c]
mov dword [rsi + 0xc], eax
mov rax, qword [r8 + 0x90]
mov dword [rsi + 0x10], eax
mov eax, dword [r8 + 0x84]
mov dword [rsi + 0x14], eax
mov rax, qword [r8 + 0xb8]
mov dword [rsi + 0x18], eax
mov eax, dword [r8 + 0xac]
mov dword [rsi + 0x1c], eax
mov rax, qword [r8 + 0xa0]
mov dword [rsi + 0x20], eax
mov eax, dword [r8 + 0x94]
mov dword [rsi + 0x24], eax
mov rax, qword [r8 + 0x88]
mov dword [rsi + 0x28], eax
mov eax, dword [r8 + 0xbc]
mov dword [rsi + 0x2c], eax
mov rax, qword [r8 + 0xb0]
mov dword [rsi + 0x30], eax
mov eax, dword [r8 + 0xa4]
mov dword [rsi + 0x34], eax
mov rax, qword [r8 + 0x98]
mov dword [rsi + 0x38], eax
mov eax, dword [r8 + 0x8c]
mov dword [rsi + 0x3c], eax
mov rdx, qword [r8 + 0x48]
mov rax, qword [r8 + 0x40]
mov qword [r8 + 0x88], rdx
mov rdx, qword [r8 + 0x50]
mov qword [r8 + 0x80], rax
mov qword [r8 + 0x90], rdx
mov rdx, qword [r8 + 0x58]
mov qword [r8 + 0x98], rdx
mov rdx, qword [r8 + 0x60]
mov qword [r8 + 0xa0], rdx
mov rdx, qword [r8 + 0x68]
mov qword [r8 + 0xa8], rdx
mov rdx, qword [r8 + 0x70]
mov qword [r8 + 0xb0], rdx
mov rdx, qword [r8 + 0x78]
mov qword [r8 + 0xb8], rdx
mov dword [rsi + 0x40], eax
mov eax, dword [r8 + 0xb4]
mov dword [rsi + 0x44], eax
mov rax, qword [r8 + 0xa8]
mov dword [rsi + 0x48], eax
mov eax, dword [r8 + 0x9c]
mov dword [rsi + 0x4c], eax
mov rax, qword [r8 + 0x90]
mov dword [rsi + 0x50], eax
mov eax, dword [r8 + 0x84]
mov dword [rsi + 0x54], eax
mov rax, qword [r8 + 0xb8]
mov dword [rsi + 0x58], eax
mov eax, dword [r8 + 0xac]
mov dword [rsi + 0x5c], eax
mov rax, qword [r8 + 0xa0]
mov edx, dword [rsi]
mov dword [rsi + 0x60], eax
mov eax, dword [r8 + 0x94]
mov dword [rsi + 0x64], eax
mov rax, qword [r8 + 0x88]
mov dword [rsi + 0x68], eax
mov eax, dword [r8 + 0xbc]
mov dword [rsi + 0x6c], eax
mov rax, qword [r8 + 0xb0]
mov dword [rsi + 0x70], eax
mov eax, dword [r8 + 0xa4]
mov dword [rsi + 0x74], eax
mov rax, qword [r8 + 0x98]
mov dword [rsi + 0x78], eax
mov eax, dword [r8 + 0x8c]
mov dword [rsi + 0x7c], eax
mov dword [r11], edx
mov eax, dword [rsi + 4]
mov dword [r11 + 4], eax
mov eax, dword [rsi + 8]
mov dword [r11 + 8], eax
mov eax, dword [rsi + 0xc]
mov dword [r11 + 0xc], eax
mov eax, dword [rsi + 0x10]
mov dword [r11 + 0x10], eax
mov eax, dword [rsi + 0x14]
mov dword [r11 + 0x14], eax
mov ecx, dword [rsi + 0x18]
shl rax, 0x20
or rax, rdx
mov dword [r11 + 0x18], ecx
mov ecx, dword [rsi + 0x1c]
mov dword [r11 + 0x1c], ecx
mov ecx, dword [rsi + 0x20]
mov dword [r11 + 0x20], ecx
mov ecx, dword [rsi + 0x24]
mov dword [r11 + 0x24], ecx
mov ecx, dword [rsi + 0x28]
mov dword [r11 + 0x28], ecx
mov ecx, dword [rsi + 0x2c]
mov dword [r11 + 0x2c], ecx
mov ecx, dword [rsi + 0x30]
mov dword [r11 + 0x30], ecx
mov ecx, dword [rsi + 0x34]
mov dword [r11 + 0x34], ecx
mov ecx, dword [rsi + 0x38]
mov dword [r11 + 0x38], ecx
mov ecx, dword [rsi + 0x3c]
mov dword [r11 + 0x3c], ecx
mov qword [r14], rax
mov eax, dword [r11 + 0x3c]
mov edx, dword [r11 + 0x28]
shl rax, 0x20
or rax, rdx
mov qword [r14 + 8], rax
mov eax, dword [r11 + 0x24]
mov edx, dword [r11 + 0x10]
shl rax, 0x20
or rax, rdx
mov qword [r14 + 0x10], rax
mov eax, dword [r11 + 0xc]
mov edx, dword [r11 + 0x38]
shl rax, 0x20
or rax, rdx
mov qword [r14 + 0x18], rax
mov eax, dword [r11 + 0x34]
mov edx, dword [r11 + 0x20]
shl rax, 0x20
or rax, rdx
mov qword [r14 + 0x20], rax
mov eax, dword [r11 + 0x1c]
mov edx, dword [r11 + 8]
shl rax, 0x20
or rax, rdx
mov qword [r14 + 0x28], rax
mov eax, dword [r11 + 4]
mov edx, dword [r11 + 0x30]
shl rax, 0x20
or rax, rdx
mov qword [r14 + 0x30], rax
mov eax, dword [r11 + 0x2c]
mov edx, dword [r11 + 0x18]
shl rax, 0x20
or rax, rdx
mov qword [r14 + 0x38], rax
mov edx, dword [rsi + 0x40]
mov dword [r11], edx
mov eax, dword [rsi + 0x44]
mov dword [r11 + 4], eax
mov eax, dword [rsi + 0x48]
mov dword [r11 + 8], eax
mov eax, dword [rsi + 0x4c]
mov dword [r11 + 0xc], eax
mov eax, dword [rsi + 0x50]
mov dword [r11 + 0x10], eax
mov eax, dword [rsi + 0x54]
mov dword [r11 + 0x14], eax
mov ecx, dword [rsi + 0x58]
shl rax, 0x20
or rax, rdx
mov dword [r11 + 0x18], ecx
mov ecx, dword [rsi + 0x5c]
mov dword [r11 + 0x1c], ecx
mov ecx, dword [rsi + 0x60]
mov dword [r11 + 0x20], ecx
mov ecx, dword [rsi + 0x64]
mov dword [r11 + 0x24], ecx
mov ecx, dword [rsi + 0x68]
mov dword [r11 + 0x28], ecx
mov ecx, dword [rsi + 0x6c]
mov dword [r11 + 0x2c], ecx
mov ecx, dword [rsi + 0x70]
mov dword [r11 + 0x30], ecx
mov ecx, dword [rsi + 0x74]
mov edi, dword [rsp + 0x5c]
mov dword [r11 + 0x34], ecx
mov ecx, dword [rsi + 0x78]
mov dword [r11 + 0x38], ecx
mov ecx, dword [rsi + 0x7c]
mov dword [r11 + 0x3c], ecx
mov qword [r14 + 0x40], rax
mov eax, dword [r11 + 0x3c]
mov edx, dword [r11 + 0x28]
shl rax, 0x20
or rax, rdx
mov qword [r14 + 0x48], rax
mov eax, dword [r11 + 0x24]
mov edx, dword [r11 + 0x10]
shl rax, 0x20
or rax, rdx
mov qword [r14 + 0x50], rax
mov eax, dword [r11 + 0xc]
mov edx, dword [r11 + 0x38]
shl rax, 0x20
or rax, rdx
mov qword [r14 + 0x58], rax
mov eax, dword [r11 + 0x34]
mov edx, dword [r11 + 0x20]
shl rax, 0x20
or rax, rdx
mov qword [r14 + 0x60], rax
mov eax, dword [r11 + 0x1c]
mov edx, dword [r11 + 8]
shl rax, 0x20
or rax, rdx
mov qword [r14 + 0x68], rax
mov eax, dword [r11 + 4]
mov edx, dword [r11 + 0x30]
shl rax, 0x20
or rax, rdx
mov qword [r14 + 0x70], rax
mov eax, dword [r11 + 0x2c]
mov edx, dword [r11 + 0x18]
shl rax, 0x20
or rax, rdx
mov qword [r14 + 0x78], rax
nop dword [rax + rax]
mov edx, ebx
lea ecx, [rbx - 2]
mov r8d, 1
add ebx, 2
shl rdx, 6
shl rcx, 6
add rdx, r14
add rcx, r14
call sym.blockmix_1_0
lea eax, [rbp + 1]
mov rbp, rax
cmp rax, r13
jb 0x1402cea20
vmovq r11, xmm14
mov r8, r13
mov rcx, r14
mov dword [rsp + 0x5c], edi
mov rdx, r11
vmovq qword [rsp + 0x48], xmm7
vmovq qword [rsp + 0x40], xmm14
vmovq xmm9, rsi
call sym.blockmix_1_0
mov r8, r13
mov r15, r9
vmovq xmm14, r13
mov r11, qword [rsp + 0x40]
lea rax, [r11 + r12]
mov rcx, r11
mov rdx, rax
mov qword [rsp + 0x40], rax
call sym.blockmix_1_0
lea rax, [r12 - 0x40]
mov r8d, 2
mov rdi, rax
vmovq xmm10, rax
mov rax, qword [rsp + 0x40]
mov r10, qword [rsp + 0x48]
mov edx, dword [rax + rdi]
vmovd edi, xmm12
vmovq xmm29, r10
shr edi, 1
vmovd xmm7, edi
mov rdi, r13
shl rdi, 8
vmovd esi, xmm7
vmovq xmm30, rdi
vmovdqu64 xmm31, xmm30
cmp r8d, esi
jb 0x1402cebd5
nop dword [rax + rax]
vmovd edi, xmm6
sub edi, r8d
cmp edi, 1
jbe 0x1402cebb9
mov rbp, rax
mov qword [rsp + 0x50], rax
lea esi, [r8 - 1]
mov ebx, 1
vmovq r9, xmm14
mov dword [rsp + 0x48], edi
mov dword [rsp + 0x58], r8d
mov eax, edx
vmovq r13, xmm31
nop word [rax + rax]
and eax, esi
lea rdi, [r12 + rbp]
mov rcx, rbp
mov qword [rsp + 0x20], r15
lea edx, [rax + rbx - 1]
mov r8, rdi
mov qword [rsp + 0x40], r9
add rbp, r13
imul rdx, r12
add rdx, r14
call sym.blockmix_xor_1_0
mov r9, qword [rsp + 0x40]
mov rcx, rdi
mov qword [rsp + 0x20], r15
and eax, esi
mov r8, rbp
lea edx, [rax + rbx]
add ebx, 2
imul rdx, r12
add rdx, r14
call sym.blockmix_xor_1_0
mov edi, dword [rsp + 0x48]
mov r9, qword [rsp + 0x40]
cmp ebx, edi
jb 0x1402ceb30
lea r9d, [rdi - 2]
mov esi, 1
mov edx, eax
mov rax, qword [rsp + 0x50]
shr r9d, 1
mov r8d, dword [rsp + 0x58]
inc r9d
cmp edi, 1
cmovbe r9, rsi
vmovq rsi, xmm31
imul r9, rsi
add rax, r9
lea ecx, [r8 + r8]
vmovd esi, xmm12
cmp ecx, esi
jae 0x1402cebdd
mov r8d, ecx
vmovd esi, xmm7
cmp r8d, esi
jae 0x1402ceaf0
mov edi, r8d
jmp 0x1402ceb00
lea ebx, [r8 - 1]
vmovd ebp, xmm12
lea rdi, [rax + r12]
vmovq r13, xmm14
sub ebp, r8d
and edx, ebx
mov r8, rdi
mov r9, r13
lea edx, [rdx + rbp - 2]
mov rcx, rax
mov qword [rsp + 0x20], r15
vmovq qword [rsp + 0x80], xmm29
imul rdx, r12
vmovq rsi, xmm9
add rdx, r14
call sym.blockmix_xor_1_0
mov rcx, rdi
mov r9, r13
mov qword [rsp + 0x20], r15
and ebx, eax
vmovq r8, xmm13
lea edx, [rbp + rbx - 1]
imul rdx, r12
add rdx, r14
call sym.blockmix_xor_1_0
mov edi, dword [rsp + 0x5c]
vmovq rax, xmm13
xor ecx, ecx
mov r10, qword [rsp + 0x40]
lea rbx, [rax + r12]
vmovq r9, xmm13
xor eax, eax
nop dword [rax + rax]
shl rax, 6
lea rdx, [r9 + rax]
add rax, rsi
mov r8d, dword [rdx]
mov dword [rbx], r8d
mov r8d, dword [rdx + 4]
mov dword [rbx + 4], r8d
mov r8d, dword [rdx + 8]
mov dword [rbx + 8], r8d
mov r8d, dword [rdx + 0xc]
mov dword [rbx + 0xc], r8d
mov r8d, dword [rdx + 0x10]
mov dword [rbx + 0x10], r8d
mov r8d, dword [rdx + 0x14]
mov dword [rbx + 0x14], r8d
mov r8d, dword [rdx + 0x18]
mov dword [rbx + 0x18], r8d
mov r8d, dword [rdx + 0x1c]
mov dword [rbx + 0x1c], r8d
mov r8d, dword [rdx + 0x20]
mov dword [rbx + 0x20], r8d
mov r8d, dword [rdx + 0x24]
mov dword [rbx + 0x24], r8d
mov r8d, dword [rdx + 0x28]
mov dword [rbx + 0x28], r8d
mov r8d, dword [rdx + 0x2c]
mov dword [rbx + 0x2c], r8d
mov r8d, dword [rdx + 0x30]
mov dword [rbx + 0x30], r8d
mov r8d, dword [rdx + 0x34]
mov dword [rbx + 0x34], r8d
mov r8d, dword [rdx + 0x38]
mov dword [rbx + 0x38], r8d
mov edx, dword [rdx + 0x3c]
mov dword [rbx + 0x3c], edx
mov rdx, qword [rbx]
mov dword [rax], edx
mov edx, dword [rbx + 0x34]
mov dword [rax + 4], edx
mov rdx, qword [rbx + 0x28]
mov dword [rax + 8], edx
mov edx, dword [rbx + 0x1c]
mov dword [rax + 0xc], edx
mov rdx, qword [rbx + 0x10]
mov dword [rax + 0x10], edx
mov edx, 0x20
shrx rdx, qword [rbx], rdx
mov dword [rax + 0x14], edx
mov rdx, qword [rbx + 0x38]
mov dword [rax + 0x18], edx
mov edx, dword [rbx + 0x2c]
mov dword [rax + 0x1c], edx
mov rdx, qword [rbx + 0x20]
mov dword [rax + 0x20], edx
mov edx, dword [rbx + 0x14]
mov dword [rax + 0x24], edx
mov rdx, qword [rbx + 8]
mov dword [rax + 0x28], edx
mov edx, dword [rbx + 0x3c]
mov dword [rax + 0x2c], edx
mov rdx, qword [rbx + 0x30]
mov dword [rax + 0x30], edx
mov edx, dword [rbx + 0x24]
mov dword [rax + 0x34], edx
mov rdx, qword [rbx + 0x18]
mov dword [rax + 0x38], edx
mov edx, dword [rbx + 0xc]
mov dword [rax + 0x3c], edx
lea eax, [rcx + 1]
mov rcx, rax
cmp rax, r10
jb 0x1402cec60
xor ecx, ecx
nop word cs:[rax + rax]
mov eax, edi
shl rcx, 6
shl eax, 6
add rcx, r9
add rax, rsi
mov r11d, dword [rax]
mov dword [rbx], r11d
mov edx, dword [rax + 4]
mov dword [rbx + 4], edx
mov edx, dword [rax + 8]
mov dword [rbx + 8], edx
mov edx, dword [rax + 0xc]
mov dword [rbx + 0xc], edx
mov edx, dword [rax + 0x10]
mov dword [rbx + 0x10], edx
mov edx, dword [rax + 0x14]
mov dword [rbx + 0x14], edx
mov r8d, dword [rax + 0x18]
shl rdx, 0x20
or rdx, r11
mov dword [rbx + 0x18], r8d
mov r8d, dword [rax + 0x1c]
mov dword [rbx + 0x1c], r8d
mov r8d, dword [rax + 0x20]
mov dword [rbx + 0x20], r8d
mov r8d, dword [rax + 0x24]
mov dword [rbx + 0x24], r8d
mov r8d, dword [rax + 0x28]
mov dword [rbx + 0x28], r8d
mov r8d, dword [rax + 0x2c]
mov dword [rbx + 0x2c], r8d
mov r8d, dword [rax + 0x30]
mov dword [rbx + 0x30], r8d
mov r8d, dword [rax + 0x34]
mov dword [rbx + 0x34], r8d
mov r8d, dword [rax + 0x38]
mov dword [rbx + 0x38], r8d
mov eax, dword [rax + 0x3c]
mov dword [rbx + 0x3c], eax
mov qword [rcx], rdx
mov eax, dword [rbx + 0x3c]
mov edx, dword [rbx + 0x28]
shl rax, 0x20
or rax, rdx
mov qword [rcx + 8], rax
mov eax, dword [rbx + 0x24]
mov edx, dword [rbx + 0x10]
shl rax, 0x20
or rax, rdx
mov qword [rcx + 0x10], rax
mov eax, dword [rbx + 0xc]
mov edx, dword [rbx + 0x38]
shl rax, 0x20
or rax, rdx
mov qword [rcx + 0x18], rax
mov eax, dword [rbx + 0x34]
mov edx, dword [rbx + 0x20]
shl rax, 0x20
or rax, rdx
mov qword [rcx + 0x20], rax
mov eax, dword [rbx + 0x1c]
mov edx, dword [rbx + 8]
shl rax, 0x20
or rax, rdx
mov qword [rcx + 0x28], rax
mov eax, dword [rbx + 4]
mov edx, dword [rbx + 0x30]
shl rax, 0x20
or rax, rdx
mov qword [rcx + 0x30], rax
mov eax, dword [rbx + 0x2c]
mov edx, dword [rbx + 0x18]
shl rax, 0x20
or rax, rdx
mov qword [rcx + 0x38], rax
lea ecx, [rdi + 1]
mov rdi, rcx
cmp rcx, r10
jb 0x1402ced70
vmovd eax, xmm12
vmovq rdx, xmm10
vmovd ebp, xmm6
mov r8, r13
lea edi, [rax + 2]
mov eax, 0xaaaaaaab
mov r13, r9
imul rdi, rax
vmovd eax, xmm6
vmovq xmm6, r10
and eax, dword [r9 + rdx]
mov r9, r15
shr rdi, 0x21
inc edi
and edi, 0xfffffffe
nop dword [rax]
mov edx, eax
mov rcx, r13
mov qword [rsp + 0x40], r8
imul rdx, r12
add rdx, r14
call sym.blockmix_xor_save_1_0
mov r8, qword [rsp + 0x40]
mov rcx, r13
mov edx, eax
and edx, ebp
imul rdx, r12
add rdx, r14
call sym.blockmix_xor_save_1_0
mov r8, qword [rsp + 0x40]
and eax, ebp
sub edi, 2
jne 0x1402ceec0
vmovq r10, xmm6
xor eax, eax
mov r8, r13
nop word cs:[rax + rax]
nop
shl rax, 6
lea rdx, [r8 + rax]
add rax, rsi
mov ecx, dword [rdx]
mov dword [rbx], ecx
mov ecx, dword [rdx + 4]
mov dword [rbx + 4], ecx
mov ecx, dword [rdx + 8]
mov dword [rbx + 8], ecx
mov ecx, dword [rdx + 0xc]
mov dword [rbx + 0xc], ecx
mov ecx, dword [rdx + 0x10]
mov dword [rbx + 0x10], ecx
mov ecx, dword [rdx + 0x14]
mov dword [rbx + 0x14], ecx
mov ecx, dword [rdx + 0x18]
mov dword [rbx + 0x18], ecx
mov ecx, dword [rdx + 0x1c]
mov dword [rbx + 0x1c], ecx
mov ecx, dword [rdx + 0x20]
mov dword [rbx + 0x20], ecx
mov ecx, dword [rdx + 0x24]
mov dword [rbx + 0x24], ecx
mov ecx, dword [rdx + 0x28]
mov dword [rbx + 0x28], ecx
mov ecx, dword [rdx + 0x2c]
mov dword [rbx + 0x2c], ecx
mov ecx, dword [rdx + 0x30]
mov dword [rbx + 0x30], ecx
mov ecx, dword [rdx + 0x34]
mov dword [rbx + 0x34], ecx
mov ecx, dword [rdx + 0x38]
mov dword [rbx + 0x38], ecx
mov edx, dword [rdx + 0x3c]
mov ecx, 0x20
mov dword [rbx + 0x3c], edx
mov rdx, qword [rbx]
mov dword [rax], edx
mov edx, dword [rbx + 0x34]
mov dword [rax + 4], edx
mov rdx, qword [rbx + 0x28]
mov dword [rax + 8], edx
mov edx, dword [rbx + 0x1c]
mov dword [rax + 0xc], edx
mov rdx, qword [rbx + 0x10]
mov dword [rax + 0x10], edx
shrx rdx, qword [rbx], rcx
mov dword [rax + 0x14], edx
mov rdx, qword [rbx + 0x38]
mov dword [rax + 0x18], edx
mov edx, dword [rbx + 0x2c]
mov dword [rax + 0x1c], edx
mov rdx, qword [rbx + 0x20]
mov dword [rax + 0x20], edx
mov edx, dword [rbx + 0x14]
mov dword [rax + 0x24], edx
mov rdx, qword [rbx + 8]
mov dword [rax + 0x28], edx
mov edx, dword [rbx + 0x3c]
mov dword [rax + 0x2c], edx
mov rdx, qword [rbx + 0x30]
mov dword [rax + 0x30], edx
mov edx, dword [rbx + 0x24]
mov dword [rax + 0x34], edx
mov rdx, qword [rbx + 0x18]
mov dword [rax + 0x38], edx
mov edx, dword [rbx + 0xc]
mov dword [rax + 0x3c], edx
lea eax, [rdi + 1]
mov rdi, rax
cmp rax, r10
jb 0x1402cef10
mov rdi, qword [0x1403873f0]
vmovq rax, xmm11
add rax, qword [rdi]
movzx eax, byte [rax]
test al, al
jne 0x1402cdf81
mov rcx, qword [rsp + 0x2c0]
vmovq rdx, xmm10
mov qword [rsp + 0x20], 0x20
vmovq r9, xmm8
add rdx, rsi
mov r8d, 0x40
call sym.hmac_blake2b_hash
mov eax, 1
jmp 0x1402cdf83
lea r9d, [rdi - 1]
mov rbx, rsi
mov ecx, edi
vmovq rsi, xmm7
and edx, r9d
jmp 0x1402ce613
xor eax, eax
mov qword [rbx], rax
jmp 0x1402cdf6c