Function at 0x14025e510
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
mov esi, dword [r9 + 4]
mov eax, dword [r9 + 8]
mov r13, qword [r9 + 0x10]
mov r14, qword [r9 + 0x18]
mov rdi, rdx
lea edx, [rsi - 0x400]
mov r12, rcx
mov rbp, r8
lea rbx, [rsp + 0x17f]
mov dword [rsp + 0x94], esi
and rbx, 0xffffffffffffffc0
cmp edx, 0x7fc00
ja 0x14025e588
lea edx, [rax - 8]
cmp edx, 0x18
ja 0x14025e588
lea ecx, [rsi - 1]
mov dword [rsp + 0xc0], ecx
and ecx, esi
mov dword [rsp + 0xc4], ecx
jne 0x14025e588
test r13, r13
jne 0x14025e5c0
test r14, r14
je 0x14025e5c0
nop dword [rax]
call qword [sym.imp.msvcrt.dll__errno]
mov dword [rax], 0x16
mov rax, qword [rsp + 0x2c0]
vpcmpeqd xmm0, xmm0, xmm0
vmovdqu xmmword [rax], xmm0
vmovdqu xmmword [rax + 0x10], xmm0
xor eax, eax
add rsp, 0x258
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r15, rax
mov qword [rsp + 0x48], rax
mov edx, dword [rsp + 0x94]
mov dword [rsp + 0x130], 0x18000
shl r15, 7
imul rdx, r15
lea r8, [r15 + 0x40]
mov qword [rsp + 0xb8], r15
lea rsi, [rdx + r8]
add rsi, r15
lea rax, [rsi + 0x18000]
mov r15, rax
cmp qword [r12 + 0x18], rax
jae 0x14025eb40
mov rcx, qword [r12]
test rcx, rcx
je 0x14025e62c
mov qword [rsp + 0x70], r8
mov qword [rsp + 0x50], rdx
call sym.free
mov r8, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x50]
vpxor xmm0, xmm0, xmm0
lea rcx, [rsi + 0x1803f]
mov qword [rsp + 0x70], r8
mov qword [r12 + 8], 0
vmovdqu xmmword [r12 + 0x10], xmm0
mov qword [rsp + 0x50], rdx
call sym.malloc
mov rdx, qword [rsp + 0x50]
mov r8, qword [rsp + 0x70]
test rax, rax
je 0x14025f5ca
lea rsi, [rax + 0x3f]
vmovq xmm3, r15
mov qword [r12], rax
and rsi, 0xffffffffffffffc0
vpunpcklqdq xmm0, xmm3, xmm3
mov qword [r12 + 8], rsi
vmovdqu xmmword [r12 + 0x10], xmm0
je 0x14025e594
mov rax, qword [rsp + 0xb8]
xor r9d, r9d
mov rcx, rbx
add rax, rsi
mov qword [rsp + 0xd0], rax
add rax, rdx
mov edx, 0x20
lea r12, [rax + r8]
mov qword [rsp + 0xc8], rax
xor r8d, r8d
lea rax, [r12 + 0x8000]
mov qword [rsp + 0x110], r12
add r12, 0x10000
mov qword [rsp + 0x118], rax
call sym.sph_blake2b_init
mov r8, rbp
mov rdx, rdi
mov rcx, rbx
call sym.sph_blake2b_update
lea rax, [rsp + 0xf0]
mov rcx, rbx
mov rdx, rax
mov qword [rsp + 0xd8], rax
call sym.sph_blake2b_final
mov qword [rsp + 0x120], r12
mov qword [rsp + 0x128], 0
test r13, r13
je 0x14025eb4a
movsxd rax, dword [rsp + 0x2c8]
mov rcx, qword [0x1403123d0]
shl rax, 7
mov qword [rsp + 0xe0], rax
mov rdi, rax
add rax, qword [rcx]
movzx eax, byte [rax]
test al, al
jne 0x14025e5a9
mov qword [rsp + 0x28], rsi
mov r9, r14
mov r8, r13
mov edx, 0x20
mov qword [rsp + 0x30], pe_nt_image_headers64
mov rcx, qword [rsp + 0xd8]
mov qword [rsp + 0x20], 1
call sym.pbkdf2_blake2b
mov rcx, qword [0x1403123d0]
mov rax, qword [rcx]
add rax, rdi
movzx eax, byte [rax]
test al, al
jne 0x14025e5a9
vmovdqu xmm1, xmmword [rsi]
mov rbx, qword [rsp + 0x110]
mov edi, dword [rsp + 0x130]
vmovdqu xmmword [rsp + 0xf0], xmm1
vmovdqu xmm2, xmmword [rsi + 0x10]
lea rcx, [rbx + 0x80]
mov eax, edi
mov dword [rsp + 0xb0], edi
vmovdqu xmmword [rsp + 0x100], xmm2
mov edx, dword [rsi]
shr eax, 7
mov dword [rsp + 0x50], eax
mov dword [rbx + 0x80], edx
mov r11d, dword [rsi + 4]
mov r15d, edx
mov qword [rsp + 0x70], rcx
mov dword [rbx + 0x84], r11d
mov r10d, dword [rsi + 8]
mov dword [rsp + 0xa0], r11d
mov dword [rbx + 0x88], r10d
mov r8d, dword [rsi + 0xc]
mov dword [rsp + 0xa8], r10d
mov dword [rbx + 0x8c], r8d
mov r13d, dword [rsi + 0x10]
shl r8, 0x20
mov dword [rbx + 0x90], r13d
mov r11d, dword [rsi + 0x14]
mov dword [rbx + 0x94], r11d
mov r9d, dword [rsi + 0x18]
shl r11, 0x20
or r11, r15
mov dword [rbx + 0x98], r9d
mov edx, dword [rsi + 0x1c]
mov dword [rsp + 0x98], r9d
mov dword [rbx + 0x9c], edx
mov ebp, dword [rsi + 0x20]
shl rdx, 0x20
mov dword [rbx + 0xa0], ebp
mov r9d, dword [rsi + 0x24]
mov dword [rbx + 0xa4], r9d
mov r14d, dword [rsi + 0x28]
shl r9, 0x20
or r9, r13
mov dword [rbx + 0xa8], r14d
mov eax, dword [rsi + 0x2c]
mov dword [rbx + 0xac], eax
mov edi, dword [rsi + 0x30]
shl rax, 0x20
mov dword [rbx + 0xb0], edi
mov ecx, dword [rsi + 0x34]
mov dword [rbx + 0xb4], ecx
shl rcx, 0x20
mov r12d, dword [rsi + 0x38]
or rcx, rbp
mov dword [rbx + 0xb8], r12d
mov r10d, dword [rsi + 0x3c]
or r8, r12
mov qword [rbx + 0x20], rcx
mov ecx, dword [rsp + 0xa8]
mov dword [rbx + 0xbc], r10d
shl r10, 0x20
or rdx, rcx
or r10, r14
mov qword [rbx + 0x10], r9
mov qword [rbx + 0x28], rdx
mov rdx, qword [rsp + 0xa0]
mov qword [rbx], r11
shl rdx, 0x20
mov qword [rbx + 8], r10
or rdx, rdi
mov qword [rbx + 0x18], r8
mov qword [rbx + 0x30], rdx
mov edx, dword [rsp + 0x98]
or rax, rdx
mov qword [rbx + 0x38], rax
mov edx, dword [rsi + 0x40]
mov dword [rbx + 0x80], edx
mov r11d, dword [rsi + 0x44]
mov r15d, edx
mov dword [rbx + 0x84], r11d
mov r10d, dword [rsi + 0x48]
mov dword [rsp + 0x98], r11d
mov dword [rbx + 0x88], r10d
mov r8d, dword [rsi + 0x4c]
mov dword [rsp + 0xa0], r10d
mov dword [rbx + 0x8c], r8d
mov r13d, dword [rsi + 0x50]
shl r8, 0x20
mov dword [rbx + 0x90], r13d
mov r11d, dword [rsi + 0x54]
mov dword [rbx + 0x94], r11d
mov r9d, dword [rsi + 0x58]
shl r11, 0x20
or r11, r15
mov dword [rbx + 0x98], r9d
mov edx, dword [rsi + 0x5c]
mov dword [rsp + 0xa8], r9d
mov dword [rbx + 0x9c], edx
mov ebp, dword [rsi + 0x60]
shl rdx, 0x20
mov dword [rbx + 0xa0], ebp
mov r9d, dword [rsi + 0x64]
mov dword [rbx + 0xa4], r9d
mov r14d, dword [rsi + 0x68]
shl r9, 0x20
or r9, r13
mov dword [rbx + 0xa8], r14d
mov eax, dword [rsi + 0x6c]
mov dword [rbx + 0xac], eax
mov edi, dword [rsi + 0x70]
shl rax, 0x20
mov dword [rbx + 0xb0], edi
mov ecx, dword [rsi + 0x74]
mov dword [rbx + 0xb4], ecx
mov r12d, dword [rsi + 0x78]
shl rcx, 0x20
or rcx, rbp
lea rbp, [rbx + 0x100]
mov dword [rbx + 0xb8], r12d
mov r10d, dword [rsi + 0x7c]
or r8, r12
mov qword [rbx + 0x60], rcx
mov ecx, dword [rsp + 0xa0]
mov dword [rbx + 0xbc], r10d
shl r10, 0x20
or r10, r14
or rdx, rcx
mov qword [rbx + 0x40], r11
mov rcx, rbx
mov qword [rbx + 0x48], r10
mov qword [rbx + 0x50], r9
mov qword [rbx + 0x58], r8
mov r8d, 1
mov qword [rbx + 0x68], rdx
mov rdx, qword [rsp + 0x98]
mov r14, qword [rsp + 0x70]
shl rdx, 0x20
or rdx, rdi
mov qword [rbx + 0x70], rdx
mov edx, dword [rsp + 0xa8]
or rax, rdx
xor r9d, r9d
mov rdx, r14
mov qword [rbx + 0x78], rax
call sym.blockmix_1_0
mov r8d, 1
mov rdx, rbp
mov rcx, r14
call sym.blockmix_1_0
mov edi, dword [rsp + 0x50]
mov eax, dword [rbx + 0x140]
cmp edi, 2
jbe 0x14025eb55
mov r13d, dword [rsp + 0xb0]
mov r11d, 2
shr r13d, 8
cmp r11d, r13d
jb 0x14025eb37
lea r14d, [rdi - 1]
sub r14d, r11d
cmp r14d, 1
jbe 0x14025eb1f
lea r12d, [r11 - 1]
mov r10, rbp
mov r9d, 1
nop dword [rax]
and eax, r12d
lea r15, [r10 + 0x80]
mov rcx, r10
add r10, 0x100
lea edx, [rax + r9 - 1]
mov r8, r15
shl rdx, 7
add rdx, rbx
call sym.blockmix_xor_1_0.constprop.0
mov r8, r10
mov rcx, r15
and eax, r12d
lea edx, [rax + r9]
add r9d, 2
shl rdx, 7
add rdx, rbx
call sym.blockmix_xor_1_0.constprop.0
cmp r9d, r14d
jb 0x14025eab8
lea edx, [r14 - 2]
mov ecx, 0x100
shr edx, 1
add edx, 1
shl rdx, 8
cmp r14d, 1
cmovbe rdx, rcx
add rbp, rdx
lea edx, [r11 + r11]
cmp edx, edi
jae 0x14025f5be
mov r11d, edx
cmp r11d, r13d
jae 0x14025ea9a
mov r14d, r11d
jmp 0x14025eaa7
mov rsi, qword [r12 + 8]
jmp 0x14025e690
mov r13, rdi
xor r14d, r14d
jmp 0x14025e72a
xor eax, eax
xor r9d, r9d
mov r11d, 1
mov r10d, dword [rsp + 0x50]
mov rcx, rbp
mov r12d, 1
sub r10d, r11d
lea r11, [rbp + 0x80]
mov ebp, 2
lea edx, [r10 + rax - 2]
mov r8, r11
shl rdx, 7
add rdx, rbx
call sym.blockmix_xor_1_0.constprop.0
mov rdi, qword [rsp + 0xc8]
mov rcx, r11
and eax, r9d
lea eax, [r10 + rax - 1]
mov r8, rdi
shl rax, 7
lea rdx, [rbx + rax]
call sym.blockmix_xor_1_0.constprop.0
vmovdqu ymm4, ymmword [rdi]
vmovdqu ymm5, ymmword [rdi + 0x20]
vmovdqu ymmword [rsp + 0x50], ymm4
vmovdqu xmm0, xmmword [rsp + 0x50]
vmovdqu ymmword [rdi + 0xa0], ymm5
vmovdqu ymmword [rdi + 0x80], ymm4
vmovd dword [rsi], xmm0
mov eax, dword [rdi + 0xb4]
vmovdqu ymmword [rsp + 0x70], ymm5
mov dword [rsi + 4], eax
mov rax, qword [rdi + 0xa8]
mov dword [rsi + 8], eax
mov eax, dword [rdi + 0x9c]
mov dword [rsi + 0xc], eax
mov rax, qword [rdi + 0x90]
mov dword [rsi + 0x10], eax
mov eax, dword [rdi + 0x84]
mov dword [rsi + 0x14], eax
mov rax, qword [rdi + 0xb8]
mov dword [rsi + 0x18], eax
mov eax, dword [rdi + 0xac]
mov dword [rsi + 0x1c], eax
mov rax, qword [rdi + 0xa0]
mov dword [rsi + 0x20], eax
mov eax, dword [rdi + 0x94]
mov dword [rsi + 0x24], eax
mov rax, qword [rdi + 0x88]
mov dword [rsi + 0x28], eax
mov eax, dword [rdi + 0xbc]
mov dword [rsi + 0x2c], eax
mov rax, qword [rdi + 0xb0]
mov dword [rsi + 0x30], eax
mov eax, dword [rdi + 0xa4]
mov dword [rsi + 0x34], eax
mov rax, qword [rdi + 0x98]
mov dword [rsi + 0x38], eax
mov eax, dword [rdi + 0x8c]
mov dword [rsi + 0x3c], eax
mov rdx, qword [rdi + 0x48]
mov rax, qword [rdi + 0x40]
mov qword [rdi + 0x88], rdx
mov rdx, qword [rdi + 0x50]
mov qword [rdi + 0x80], rax
mov qword [rdi + 0x90], rdx
mov rdx, qword [rdi + 0x58]
mov qword [rdi + 0x98], rdx
mov rdx, qword [rdi + 0x60]
mov qword [rdi + 0xa0], rdx
mov rdx, qword [rdi + 0x68]
mov qword [rdi + 0xa8], rdx
mov rdx, qword [rdi + 0x70]
mov qword [rdi + 0xb0], rdx
mov rdx, qword [rdi + 0x78]
mov qword [rdi + 0xb8], rdx
mov dword [rsi + 0x40], eax
mov eax, dword [rdi + 0xb4]
mov dword [rsi + 0x44], eax
mov rax, qword [rdi + 0xa8]
mov dword [rsi + 0x48], eax
mov eax, dword [rdi + 0x9c]
mov dword [rsi + 0x4c], eax
mov rax, qword [rdi + 0x90]
mov dword [rsi + 0x50], eax
mov eax, dword [rdi + 0x84]
mov dword [rsi + 0x54], eax
mov rax, qword [rdi + 0xb8]
mov r14, qword [rsp + 0xd0]
mov r15, qword [rsp + 0xb8]
mov edx, dword [rsi]
mov r11, qword [rsp + 0x48]
mov dword [rsi + 0x58], eax
mov eax, dword [rdi + 0xac]
lea rbx, [r14 + r15]
lea r13, [r11 + r11]
mov dword [rsi + 0x5c], eax
mov rax, qword [rdi + 0xa0]
mov dword [rsi + 0x60], eax
mov eax, dword [rdi + 0x94]
mov dword [rsi + 0x64], eax
mov rax, qword [rdi + 0x88]
mov dword [rsi + 0x68], eax
mov eax, dword [rdi + 0xbc]
mov dword [rsi + 0x6c], eax
mov rax, qword [rdi + 0xb0]
mov dword [rsi + 0x70], eax
mov eax, dword [rdi + 0xa4]
mov dword [rsi + 0x74], eax
mov rax, qword [rdi + 0x98]
mov dword [rsi + 0x78], eax
mov eax, dword [rdi + 0x8c]
lea rdi, [rsp + 0x110]
mov r9, rdi
mov edi, ebp
mov rbp, r11
mov dword [rsi + 0x7c], eax
mov dword [rbx], edx
mov eax, dword [rsi + 4]
mov dword [rbx + 4], eax
mov eax, dword [rsi + 8]
mov dword [rbx + 8], eax
mov eax, dword [rsi + 0xc]
mov dword [rbx + 0xc], eax
mov eax, dword [rsi + 0x10]
mov dword [rbx + 0x10], eax
mov eax, dword [rsi + 0x14]
mov dword [rbx + 0x14], eax
mov ecx, dword [rsi + 0x18]
shl rax, 0x20
or rax, rdx
mov dword [rbx + 0x18], ecx
mov ecx, dword [rsi + 0x1c]
mov dword [rbx + 0x1c], ecx
mov ecx, dword [rsi + 0x20]
mov dword [rbx + 0x20], ecx
mov ecx, dword [rsi + 0x24]
mov dword [rbx + 0x24], ecx
mov ecx, dword [rsi + 0x28]
mov dword [rbx + 0x28], ecx
mov ecx, dword [rsi + 0x2c]
mov dword [rbx + 0x2c], ecx
mov ecx, dword [rsi + 0x30]
mov dword [rbx + 0x30], ecx
mov ecx, dword [rsi + 0x34]
mov dword [rbx + 0x34], ecx
mov ecx, dword [rsi + 0x38]
mov dword [rbx + 0x38], ecx
mov ecx, dword [rsi + 0x3c]
mov dword [rbx + 0x3c], ecx
mov qword [r14], rax
mov eax, dword [rbx + 0x3c]
mov edx, dword [rbx + 0x28]
shl rax, 0x20
or rax, rdx
mov qword [r14 + 8], rax
mov eax, dword [rbx + 0x24]
mov edx, dword [rbx + 0x10]
shl rax, 0x20
or rax, rdx
mov qword [r14 + 0x10], rax
mov eax, dword [rbx + 0xc]
mov edx, dword [rbx + 0x38]
shl rax, 0x20
or rax, rdx
mov qword [r14 + 0x18], rax
mov eax, dword [rbx + 0x34]
mov edx, dword [rbx + 0x20]
shl rax, 0x20
or rax, rdx
mov qword [r14 + 0x20], rax
mov eax, dword [rbx + 0x1c]
mov edx, dword [rbx + 8]
shl rax, 0x20
or rax, rdx
mov qword [r14 + 0x28], rax
mov eax, dword [rbx + 4]
mov edx, dword [rbx + 0x30]
shl rax, 0x20
or rax, rdx
mov qword [r14 + 0x30], rax
mov eax, dword [rbx + 0x2c]
mov edx, dword [rbx + 0x18]
shl rax, 0x20
or rax, rdx
mov qword [r14 + 0x38], rax
mov edx, dword [rsi + 0x40]
mov dword [rbx], edx
mov eax, dword [rsi + 0x44]
mov dword [rbx + 4], eax
mov eax, dword [rsi + 0x48]
mov dword [rbx + 8], eax
mov eax, dword [rsi + 0x4c]
mov dword [rbx + 0xc], eax
mov eax, dword [rsi + 0x50]
mov dword [rbx + 0x10], eax
mov eax, dword [rsi + 0x54]
mov dword [rbx + 0x14], eax
mov ecx, dword [rsi + 0x58]
shl rax, 0x20
or rax, rdx
mov dword [rbx + 0x18], ecx
mov ecx, dword [rsi + 0x5c]
mov dword [rbx + 0x1c], ecx
mov ecx, dword [rsi + 0x60]
mov dword [rbx + 0x20], ecx
mov ecx, dword [rsi + 0x64]
mov dword [rbx + 0x24], ecx
mov ecx, dword [rsi + 0x68]
mov dword [rbx + 0x28], ecx
mov ecx, dword [rsi + 0x6c]
mov dword [rbx + 0x2c], ecx
mov ecx, dword [rsi + 0x70]
mov dword [rbx + 0x30], ecx
mov ecx, dword [rsi + 0x74]
mov dword [rbx + 0x34], ecx
mov ecx, dword [rsi + 0x78]
mov dword [rbx + 0x38], ecx
mov ecx, dword [rsi + 0x7c]
mov dword [rbx + 0x3c], ecx
mov qword [r14 + 0x40], rax
mov eax, dword [rbx + 0x3c]
mov edx, dword [rbx + 0x28]
shl rax, 0x20
or rax, rdx
mov qword [r14 + 0x48], rax
mov eax, dword [rbx + 0x24]
mov edx, dword [rbx + 0x10]
shl rax, 0x20
or rax, rdx
mov qword [r14 + 0x50], rax
mov eax, dword [rbx + 0xc]
mov edx, dword [rbx + 0x38]
shl rax, 0x20
or rax, rdx
mov qword [r14 + 0x58], rax
mov eax, dword [rbx + 0x34]
mov edx, dword [rbx + 0x20]
shl rax, 0x20
or rax, rdx
mov qword [r14 + 0x60], rax
mov eax, dword [rbx + 0x1c]
mov edx, dword [rbx + 8]
shl rax, 0x20
or rax, rdx
mov qword [r14 + 0x68], rax
mov eax, dword [rbx + 4]
mov edx, dword [rbx + 0x30]
shl rax, 0x20
or rax, rdx
mov qword [r14 + 0x70], rax
mov eax, dword [rbx + 0x2c]
mov edx, dword [rbx + 0x18]
shl rax, 0x20
or rax, rdx
mov qword [r14 + 0x78], rax
nop word [rax + rax]
mov edx, edi
lea ecx, [rdi - 2]
mov r8d, 1
add edi, 2
shl rdx, 6
shl rcx, 6
add rdx, r14
add rcx, r14
call sym.blockmix_1_0
lea eax, [r12 + 1]
mov r12, rax
cmp rax, rbp
jb 0x14025ef50
mov r12, r15
mov r15, qword [rsp + 0x48]
mov rdx, rbx
mov rdi, r9
mov rbp, qword [rsp + 0xd0]
lea r14, [rbx + r12]
mov r8, r15
mov rcx, rbp
call sym.blockmix_1_0
mov r8, r15
mov rdx, r14
mov rcx, rbx
call sym.blockmix_1_0
lea rax, [r12 - 0x40]
mov rcx, r12
mov r8, r14
mov qword [rsp + 0xe8], rax
mov eax, dword [rsp + 0x94]
shl r15, 8
mov edx, dword [r14 + r12 - 0x40]
mov r12, r15
mov qword [rsp + 0xb0], r13
mov r15, rcx
shr eax, 1
mov qword [rsp + 0xa8], rsi
mov r13, rbp
mov dword [rsp + 0xa0], eax
mov eax, 2
mov r10d, eax
mov eax, dword [rsp + 0xa0]
mov qword [rsp + 0x50], r12
cmp r10d, eax
jb 0x14025f0fc
nop dword [rax + rax]
mov r14d, dword [rsp + 0xc0]
sub r14d, r10d
cmp r14d, 1
jbe 0x14025f0da
mov dword [rsp + 0x70], r10d
lea esi, [r10 - 1]
mov r12, r8
mov eax, edx
mov qword [rsp + 0x98], r8
mov ebx, 1
nop dword [rax + rax]
and eax, esi
mov qword [rsp + 0x20], rdi
lea rbp, [r15 + r12]
mov r9, qword [rsp + 0x48]
lea edx, [rax + rbx - 1]
mov rcx, r12
mov r8, rbp
imul rdx, r15
add rdx, r13
call sym.blockmix_xor_1_0
mov qword [rsp + 0x20], rdi
mov r9, qword [rsp + 0x48]
mov rcx, rbp
and eax, esi
lea edx, [rax + rbx]
mov rax, qword [rsp + 0x50]
add ebx, 2
imul rdx, r15
add r12, rax
mov r8, r12
add rdx, r13
call sym.blockmix_xor_1_0
cmp ebx, r14d
jb 0x14025f050
lea r9d, [r14 - 2]
mov edx, eax
mov eax, 1
mov r8, qword [rsp + 0x98]
shr r9d, 1
mov r10d, dword [rsp + 0x70]
add r9d, 1
cmp r14d, 1
cmovbe r9, rax
mov rax, qword [rsp + 0x50]
imul r9, rax
add r8, r9
mov eax, dword [rsp + 0x94]
lea ecx, [r10 + r10]
cmp ecx, eax
jae 0x14025f104
mov eax, dword [rsp + 0xa0]
mov r10d, ecx
cmp r10d, eax
jae 0x14025f018
mov r14d, r10d
jmp 0x14025f02d
lea ebx, [r10 - 1]
mov r12d, eax
mov qword [rsp + 0x20], rdi
mov rax, r15
sub r12d, r10d
and edx, ebx
mov r14, r8
mov r9, qword [rsp + 0x48]
lea edx, [rdx + r12 - 2]
lea rbp, [r8 + rax]
mov rcx, r14
mov qword [rsp + 0xb8], rax
imul rdx, r15
mov r15, qword [rsp + 0xd0]
mov r8, rbp
mov rsi, qword [rsp + 0xa8]
mov r13, qword [rsp + 0xb0]
add rdx, r15
call sym.blockmix_xor_1_0
mov r14, qword [rsp + 0xb8]
mov qword [rsp + 0x20], rdi
mov rcx, rbp
and ebx, eax
mov r9, qword [rsp + 0x48]
lea edx, [r12 + rbx - 1]
mov rbx, qword [rsp + 0xc8]
imul rdx, r14
mov r8, rbx
add rdx, r15
mov r15, r14
call sym.blockmix_xor_1_0
mov r8, rbx
xor ecx, ecx
lea rbx, [rbx + r14]
xor eax, eax
nop dword [rax]
shl rax, 6
lea rdx, [r8 + rax]
add rax, rsi
mov r9d, dword [rdx]
mov dword [rbx], r9d
mov r9d, dword [rdx + 4]
mov dword [rbx + 4], r9d
mov r9d, dword [rdx + 8]
mov dword [rbx + 8], r9d
mov r9d, dword [rdx + 0xc]
mov dword [rbx + 0xc], r9d
mov r9d, dword [rdx + 0x10]
mov dword [rbx + 0x10], r9d
mov r9d, dword [rdx + 0x14]
mov dword [rbx + 0x14], r9d
mov r9d, dword [rdx + 0x18]
mov dword [rbx + 0x18], r9d
mov r9d, dword [rdx + 0x1c]
mov dword [rbx + 0x1c], r9d
mov r9d, dword [rdx + 0x20]
mov dword [rbx + 0x20], r9d
mov r9d, dword [rdx + 0x24]
mov dword [rbx + 0x24], r9d
mov r9d, dword [rdx + 0x28]
mov dword [rbx + 0x28], r9d
mov r9d, dword [rdx + 0x2c]
mov dword [rbx + 0x2c], r9d
mov r9d, dword [rdx + 0x30]
mov dword [rbx + 0x30], r9d
mov r9d, dword [rdx + 0x34]
mov dword [rbx + 0x34], r9d
mov r9d, dword [rdx + 0x38]
mov dword [rbx + 0x38], r9d
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 rdx, qword [rbx]
shr rdx, 0x20
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, r13
jb 0x14025f1a0
mov r9, qword [rsp + 0xc8]
mov r8d, dword [rsp + 0xc4]
xor edx, edx
nop word [rax + rax]
mov eax, r8d
shl rdx, 6
shl eax, 6
add rdx, r9
add rax, rsi
mov r10d, dword [rax]
mov dword [rbx], r10d
mov ecx, dword [rax + 4]
mov dword [rbx + 4], ecx
mov ecx, dword [rax + 8]
mov dword [rbx + 8], ecx
mov ecx, dword [rax + 0xc]
mov dword [rbx + 0xc], ecx
mov ecx, dword [rax + 0x10]
mov dword [rbx + 0x10], ecx
mov ecx, dword [rax + 0x14]
mov dword [rbx + 0x14], ecx
mov r11d, dword [rax + 0x18]
shl rcx, 0x20
or rcx, r10
mov dword [rbx + 0x18], r11d
mov r11d, dword [rax + 0x1c]
mov dword [rbx + 0x1c], r11d
mov r11d, dword [rax + 0x20]
mov dword [rbx + 0x20], r11d
mov r11d, dword [rax + 0x24]
mov dword [rbx + 0x24], r11d
mov r11d, dword [rax + 0x28]
mov dword [rbx + 0x28], r11d
mov r11d, dword [rax + 0x2c]
mov dword [rbx + 0x2c], r11d
mov r11d, dword [rax + 0x30]
mov dword [rbx + 0x30], r11d
mov r11d, dword [rax + 0x34]
mov dword [rbx + 0x34], r11d
mov r11d, dword [rax + 0x38]
mov dword [rbx + 0x38], r11d
mov eax, dword [rax + 0x3c]
mov dword [rbx + 0x3c], eax
mov qword [rdx], rcx
mov eax, dword [rbx + 0x3c]
mov ecx, dword [rbx + 0x28]
shl rax, 0x20
or rax, rcx
mov qword [rdx + 8], rax
mov eax, dword [rbx + 0x24]
mov ecx, dword [rbx + 0x10]
shl rax, 0x20
or rax, rcx
mov qword [rdx + 0x10], rax
mov eax, dword [rbx + 0xc]
mov ecx, dword [rbx + 0x38]
shl rax, 0x20
or rax, rcx
mov qword [rdx + 0x18], rax
mov eax, dword [rbx + 0x34]
mov ecx, dword [rbx + 0x20]
shl rax, 0x20
or rax, rcx
mov qword [rdx + 0x20], rax
mov eax, dword [rbx + 0x1c]
mov ecx, dword [rbx + 8]
shl rax, 0x20
or rax, rcx
mov qword [rdx + 0x28], rax
mov eax, dword [rbx + 4]
mov ecx, dword [rbx + 0x30]
shl rax, 0x20
or rax, rcx
mov qword [rdx + 0x30], rax
mov eax, dword [rbx + 0x2c]
mov ecx, dword [rbx + 0x18]
shl rax, 0x20
or rax, rcx
mov qword [rdx + 0x38], rax
lea edx, [r8 + 1]
mov r8, rdx
cmp rdx, r13
jb 0x14025f2b8
mov eax, dword [rsp + 0x94]
mov r12, qword [rsp + 0x48]
mov r9, rdi
mov qword [rsp + 0x48], rsi
mov rdx, qword [rsp + 0xc8]
mov ecx, dword [rsp + 0xc0]
lea ebp, [rax + 2]
mov eax, 0xaaaaaaab
mov r14, qword [rsp + 0xd0]
imul rbp, rax
mov eax, dword [rdx + r15 - 0x40]
mov esi, ecx
mov rdi, rdx
and eax, ecx
shr rbp, 0x21
add ebp, 1
and ebp, 0xfffffffe
nop dword [rax + rax]
mov edx, eax
mov r8, r12
mov rcx, rdi
mov rax, rdx
imul rax, r15
lea rdx, [r14 + rax]
call sym.blockmix_xor_save_1_0
mov r8, r12
mov rcx, rdi
mov edx, eax
and edx, esi
imul rdx, r15
add rdx, r14
call sym.blockmix_xor_save_1_0
and eax, esi
sub ebp, 2
jne 0x14025f420
mov rsi, qword [rsp + 0x48]
mov rcx, qword [rsp + 0xc8]
xor eax, eax
nop dword [rax]
shl rax, 6
lea rdx, [rcx + 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 rdx, qword [rbx]
shr rdx, 0x20
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, [rbp + 1]
mov rbp, rax
cmp rax, r13
jb 0x14025f468
mov rdi, qword [0x1403123d0]
mov rax, qword [rsp + 0xe0]
add rax, qword [rdi]
movzx eax, byte [rax]
test al, al
jne 0x14025e5a9
mov rdx, qword [rsp + 0xe8]
mov r9, qword [rsp + 0xd8]
mov qword [rsp + 0x20], 0x20
mov r8d, 0x40
mov rcx, qword [rsp + 0x2c0]
add rdx, rsi
call sym.hmac_blake2b_hash
mov eax, 1
jmp 0x14025e5ab
lea r9d, [r11 - 1]
and eax, r9d
jmp 0x14025eb60
xor eax, eax
mov qword [r12], rax
jmp 0x14025e594