Function at 0x14029c0b0
Capabilities:
Encode data using xor

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x320
vmovdqu xmm3, xmmword [rdx]
vmovdqu xmm2, xmmword [rdx + 0x10]
vmovdqu xmm1, xmmword [rdx + 0x20]
vmovdqu xmm0, xmmword [rdx + 0x30]
vmovdqu xmm4, xmmword [rdx + 0x40]
mov rbx, rcx
movzx ecx, byte [r8]
lea rsi, [rsp + 0x5f]
and rsi, 0xffffffffffffffc0
lea r8d, [rcx - 0x37]
cmp cl, 0x41
lea eax, [rcx - 0x30]
cmovge eax, r8d
sub eax, 3
cmp al, 0xb
ja case.0x14029c108.5
lea rdx, [0x140380ac0]
movzx eax, al
movsxd rax, dword [rdx + rax*4]
add rax, rdx
jmp rax
vmovdqu8 zmm5, zmmword [0x140380b80]
vpermb zmm16, zmm5, zmm3
vmovdqu8 zmmword [rbx], zmm16
vmovdqu8 zmm16, zmmword [0x140380bc0]
vpermb zmm3, zmm16, zmm3
vmovdqu8 zmmword [rbx + 0x40], zmm3
vpermb zmm3, zmm5, zmm2
vpermb zmm2, zmm16, zmm2
vmovdqu8 zmmword [rbx + 0xc0], zmm2
vpermb zmm2, zmm5, zmm1
vpermb zmm1, zmm16, zmm1
vmovdqu8 zmmword [rbx + 0x80], zmm3
vmovdqu8 zmmword [rbx + 0x140], zmm1
vpermb zmm1, zmm5, zmm0
vpermb zmm0, zmm16, zmm0
vmovdqu8 zmmword [rbx + 0x100], zmm2
vmovdqu8 zmmword [rbx + 0x1c0], zmm0
vmovdqu xmm0, xmm4
vmovdqu8 zmmword [rbx + 0x180], zmm1
vpermb zmm5, zmm5, zmm0
vpermb zmm0, zmm16, zmm0
vmovdqu8 zmmword [rbx + 0x200], zmm5
vmovdqu8 zmmword [rbx + 0x240], zmm0
vzeroupper
add rsp, 0x320
pop rbx
pop rsi
pop rdi
ret
vmovdqu8 zmm5, zmmword [0x140380b80]
mov rcx, qword [0x1403867f0]
vpermb zmm16, zmm5, zmm3
vmovdqu8 zmmword [rbx], zmm16
vmovdqu8 zmm16, zmmword [0x140380bc0]
vpermb zmm3, zmm16, zmm3
vmovdqu8 zmmword [rbx + 0x40], zmm3
vpermb zmm3, zmm5, zmm2
vpermb zmm2, zmm16, zmm2
vmovdqu8 zmmword [rbx + 0xc0], zmm2
vpermb zmm2, zmm5, zmm1
vpermb zmm1, zmm16, zmm1
vmovdqu8 zmmword [rbx + 0x80], zmm3
vmovdqu8 zmmword [rbx + 0x140], zmm1
vpermb zmm1, zmm5, zmm0
vpermb zmm0, zmm16, zmm0
vmovdqu8 zmmword [rbx + 0x100], zmm2
vmovdqu8 zmmword [rbx + 0x1c0], zmm0
vmovdqu xmm0, xmm4
vmovdqu8 zmmword [rbx + 0x180], zmm1
vpermb zmm5, zmm5, zmm0
vpermb zmm0, zmm16, zmm0
vmovdqu8 zmmword [rbx + 0x200], zmm5
vmovdqu8 zmmword [rbx + 0x240], zmm0
vzeroupper
call sym.__emutls_get_address
mov rsi, rax
mov rcx, rax
call sym.jh512_8x64_init
mov r8d, 0x40
mov rdx, rbx
mov rcx, rsi
add rsp, 0x320
pop rbx
pop rsi
pop rdi
jmp sym.jh512_8x64_update
vmovdqu8 zmm5, zmmword [0x140380b80]
mov rcx, qword [0x1403867f0]
vpermb zmm16, zmm5, zmm3
vmovdqu8 zmmword [rbx], zmm16
vmovdqu8 zmm16, zmmword [0x140380bc0]
vpermb zmm3, zmm16, zmm3
vmovdqu8 zmmword [rbx + 0x40], zmm3
vpermb zmm3, zmm5, zmm2
vpermb zmm2, zmm16, zmm2
vmovdqu8 zmmword [rbx + 0xc0], zmm2
vpermb zmm2, zmm5, zmm1
vpermb zmm1, zmm16, zmm1
vmovdqu8 zmmword [rbx + 0x80], zmm3
vmovdqu8 zmmword [rbx + 0x140], zmm1
vpermb zmm1, zmm5, zmm0
vpermb zmm0, zmm16, zmm0
vmovdqu8 zmmword [rbx + 0x100], zmm2
vmovdqu8 zmmword [rbx + 0x1c0], zmm0
vmovdqu xmm0, xmm4
vmovdqu8 zmmword [rbx + 0x180], zmm1
vpermb zmm5, zmm5, zmm0
vpermb zmm0, zmm16, zmm0
vmovdqu8 zmmword [rbx + 0x200], zmm5
vmovdqu8 zmmword [rbx + 0x240], zmm0
vzeroupper
call sym.__emutls_get_address
mov rsi, rax
mov rcx, rax
call sym.keccak512_8x64_init
mov r8d, 0x48
mov rdx, rbx
mov rcx, rsi
add rsp, 0x320
pop rbx
pop rsi
pop rdi
jmp sym.keccak512_8x64_update
vmovdqu8 zmm5, zmmword [0x140380b80]
mov rcx, qword [0x1403867f0]
vpermb zmm16, zmm5, zmm3
vmovdqu8 zmmword [rbx], zmm16
vmovdqu8 zmm16, zmmword [0x140380bc0]
vpermb zmm3, zmm16, zmm3
vmovdqu8 zmmword [rbx + 0x40], zmm3
vpermb zmm3, zmm5, zmm2
vpermb zmm2, zmm16, zmm2
vmovdqu8 zmmword [rbx + 0xc0], zmm2
vpermb zmm2, zmm5, zmm1
vpermb zmm1, zmm16, zmm1
vmovdqu8 zmmword [rbx + 0x80], zmm3
vmovdqu8 zmmword [rbx + 0x140], zmm1
vpermb zmm1, zmm5, zmm0
vpermb zmm0, zmm16, zmm0
vmovdqu8 zmmword [rbx + 0x100], zmm2
vmovdqu8 zmmword [rbx + 0x1c0], zmm0
vmovdqu xmm0, xmm4
vmovdqu8 zmmword [rbx + 0x180], zmm1
vpermb zmm5, zmm5, zmm0
vpermb zmm0, zmm16, zmm0
vmovdqu8 zmmword [rbx + 0x200], zmm5
vmovdqu8 zmmword [rbx + 0x240], zmm0
vzeroupper
call sym.__emutls_get_address
mov rsi, rax
mov rcx, rax
call sym.skein512_8way_init
mov r8d, 0x40
mov rdx, rbx
mov rcx, rsi
add rsp, 0x320
pop rbx
pop rsi
pop rdi
jmp sym.skein512_8way_update
vmovdqu8 xmm5, xmmword [0x140380c00]
mov rcx, rsi
mov edx, 0x200
vpshufb xmm3, xmm3, xmm5
vpshufb xmm2, xmm2, xmm5
vpshufb xmm1, xmm1, xmm5
vpshufb xmm0, xmm0, xmm5
vmovdqu xmmword [rsi + 0x280], xmm3
vmovdqu xmmword [rsi + 0x290], xmm2
vpshufb xmm4, xmm4, xmm5
vpunpcklqdq xmm5, xmm3, xmm3
vpunpckhqdq xmm3, xmm3, xmm3
vmovdqu xmmword [rsi + 0x2a0], xmm1
vmovdqu xmmword [rbx + 0x40], xmm3
vmovdqu xmmword [rbx + 0x50], xmm3
vmovdqu xmmword [rbx + 0x60], xmm3
vmovdqu xmmword [rbx + 0x70], xmm3
vpunpcklqdq xmm3, xmm2, xmm2
vpunpckhqdq xmm2, xmm2, xmm2
vmovdqu xmmword [rsi + 0x2b0], xmm0
vmovdqu xmmword [rbx + 0xc0], xmm2
vmovdqu xmmword [rbx + 0xd0], xmm2
vmovdqu xmmword [rbx + 0xe0], xmm2
vmovdqu xmmword [rbx + 0xf0], xmm2
vpunpcklqdq xmm2, xmm1, xmm1
vpunpckhqdq xmm1, xmm1, xmm1
vmovdqu xmmword [rbx], xmm5
vmovdqu xmmword [rbx + 0x140], xmm1
vmovdqu xmmword [rbx + 0x150], xmm1
vmovdqu xmmword [rbx + 0x160], xmm1
vmovdqu xmmword [rbx + 0x170], xmm1
vpunpcklqdq xmm1, xmm0, xmm0
vpunpckhqdq xmm0, xmm0, xmm0
vmovdqu xmmword [rbx + 0x10], xmm5
vmovdqu xmmword [rbx + 0x20], xmm5
vmovdqu xmmword [rbx + 0x30], xmm5
vmovdqu xmmword [rbx + 0x80], xmm3
vmovdqu xmmword [rbx + 0x90], xmm3
vmovdqu xmmword [rbx + 0xa0], xmm3
vmovdqu xmmword [rbx + 0xb0], xmm3
vmovdqu xmmword [rbx + 0x100], xmm2
vmovdqu xmmword [rbx + 0x110], xmm2
vmovdqu xmmword [rbx + 0x120], xmm2
vmovdqu xmmword [rbx + 0x130], xmm2
vmovdqu xmmword [rbx + 0x180], xmm1
vmovdqu xmmword [rbx + 0x190], xmm1
vmovdqu xmmword [rsi + 0x2c0], xmm4
vmovdqu xmmword [rbx + 0x1a0], xmm1
vmovdqu xmmword [rbx + 0x1c0], xmm0
vmovdqu xmmword [rbx + 0x1d0], xmm0
vmovdqu xmmword [rbx + 0x1e0], xmm0
vmovdqu xmmword [rbx + 0x1f0], xmm0
vpunpcklqdq xmm0, xmm4, xmm4
vpunpckhqdq xmm4, xmm4, xmm4
vmovdqu xmmword [rbx + 0x200], xmm0
vmovdqu xmmword [rbx + 0x210], xmm0
vmovdqu xmmword [rbx + 0x220], xmm0
vmovdqu xmmword [rbx + 0x230], xmm0
vmovdqu xmmword [rbx + 0x1b0], xmm1
vmovdqu xmmword [rbx + 0x240], xmm4
vmovdqu xmmword [rbx + 0x250], xmm4
vmovdqu xmmword [rbx + 0x260], xmm4
vmovdqu xmmword [rbx + 0x270], xmm4
call sym.init_luffa
lea rdx, [rsi + 0x280]
mov r8d, 0x40
mov rcx, rsi
call sym.update_luffa
mov rcx, qword [0x1403867f0]
call sym.__emutls_get_address
vmovdqu xmm0, xmmword [rsi]
vmovdqu xmmword [rax], xmm0
vmovdqu xmmword [rax + 0x10], xmm0
vmovdqu xmmword [rax + 0x20], xmm0
vmovdqu xmmword [rax + 0x30], xmm0
vmovdqu xmm0, xmmword [rsi + 0x10]
vmovdqu xmmword [rax + 0x40], xmm0
vmovdqu xmmword [rax + 0x50], xmm0
vmovdqu xmmword [rax + 0x60], xmm0
vmovdqu xmmword [rax + 0x70], xmm0
vmovdqu xmm0, xmmword [rsi + 0x20]
vmovdqu xmmword [rax + 0x80], xmm0
vmovdqu xmmword [rax + 0x90], xmm0
vmovdqu xmmword [rax + 0xa0], xmm0
vmovdqu xmmword [rax + 0xb0], xmm0
vmovdqu xmm0, xmmword [rsi + 0x30]
vmovdqu xmmword [rax + 0xc0], xmm0
vmovdqu xmmword [rax + 0xd0], xmm0
vmovdqu xmmword [rax + 0xe0], xmm0
vmovdqu xmmword [rax + 0xf0], xmm0
vmovdqu xmm0, xmmword [rsi + 0x40]
vmovdqu xmmword [rax + 0x100], xmm0
vmovdqu xmmword [rax + 0x110], xmm0
vmovdqu xmmword [rax + 0x120], xmm0
vmovdqu xmmword [rax + 0x130], xmm0
vmovdqu xmm0, xmmword [rsi + 0x50]
vmovdqu xmmword [rax + 0x140], xmm0
vmovdqu xmmword [rax + 0x150], xmm0
vmovdqu xmmword [rax + 0x160], xmm0
vmovdqu xmmword [rax + 0x170], xmm0
vmovdqu xmm0, xmmword [rsi + 0x60]
vmovdqu xmmword [rax + 0x180], xmm0
vmovdqu xmmword [rax + 0x190], xmm0
vmovdqu xmmword [rax + 0x1a0], xmm0
vmovdqu xmmword [rax + 0x1b0], xmm0
vmovdqu xmm0, xmmword [rsi + 0x70]
vmovdqu xmmword [rax + 0x1c0], xmm0
vmovdqu xmmword [rax + 0x1d0], xmm0
vmovdqu xmmword [rax + 0x1e0], xmm0
vmovdqu xmmword [rax + 0x1f0], xmm0
vmovdqu xmm0, xmmword [rsi + 0x80]
vmovdqu xmmword [rax + 0x200], xmm0
vmovdqu xmmword [rax + 0x210], xmm0
vmovdqu xmmword [rax + 0x220], xmm0
vmovdqu xmmword [rax + 0x230], xmm0
vmovdqu xmm0, xmmword [rsi + 0x90]
vmovdqu xmmword [rax + 0x240], xmm0
vmovdqu xmmword [rax + 0x250], xmm0
vmovdqu xmmword [rax + 0x260], xmm0
vmovdqu xmmword [rax + 0x270], xmm0
vmovdqu xmm0, xmmword [rsi + 0xa0]
vmovdqu xmmword [rax + 0x280], xmm0
vmovdqu xmmword [rax + 0x290], xmm0
vmovdqu xmmword [rax + 0x2a0], xmm0
vmovdqu xmmword [rax + 0x2b0], xmm0
vmovdqu xmm0, xmmword [rsi + 0xb0]
vmovdqu xmmword [rax + 0x2c0], xmm0
vmovdqu xmmword [rax + 0x2d0], xmm0
vmovdqu xmmword [rax + 0x2e0], xmm0
vmovdqu xmmword [rax + 0x2f0], xmm0
mov rdx, qword [rsi + 0xc0]
mov qword [rax + 0x300], rdx
add rsp, 0x320
pop rbx
pop rsi
pop rdi
ret
vmovdqu8 xmm5, xmmword [0x140380c00]
mov r9d, 0x20
mov rcx, rsi
mov r8d, 0x10
mov edx, 0x200
vpshufb xmm3, xmm3, xmm5
vpshufb xmm2, xmm2, xmm5
vpshufb xmm1, xmm1, xmm5
vpshufb xmm0, xmm0, xmm5
vmovdqu xmmword [rsi + 0x280], xmm3
vmovdqu xmmword [rsi + 0x290], xmm2
vpshufb xmm4, xmm4, xmm5
vpunpcklqdq xmm5, xmm3, xmm3
vpunpckhqdq xmm3, xmm3, xmm3
vmovdqu xmmword [rsi + 0x2a0], xmm1
vmovdqu xmmword [rbx + 0x40], xmm3
vmovdqu xmmword [rbx + 0x50], xmm3
vmovdqu xmmword [rbx + 0x60], xmm3
vmovdqu xmmword [rbx + 0x70], xmm3
vpunpcklqdq xmm3, xmm2, xmm2
vpunpckhqdq xmm2, xmm2, xmm2
vmovdqu xmmword [rsi + 0x2b0], xmm0
vmovdqu xmmword [rbx + 0xc0], xmm2
vmovdqu xmmword [rbx + 0xd0], xmm2
vmovdqu xmmword [rbx + 0xe0], xmm2
vmovdqu xmmword [rbx + 0xf0], xmm2
vpunpcklqdq xmm2, xmm1, xmm1
vpunpckhqdq xmm1, xmm1, xmm1
vmovdqu xmmword [rbx], xmm5
vmovdqu xmmword [rbx + 0x140], xmm1
vmovdqu xmmword [rbx + 0x150], xmm1
vmovdqu xmmword [rbx + 0x160], xmm1
vmovdqu xmmword [rbx + 0x170], xmm1
vpunpcklqdq xmm1, xmm0, xmm0
vpunpckhqdq xmm0, xmm0, xmm0
vmovdqu xmmword [rbx + 0x10], xmm5
vmovdqu xmmword [rbx + 0x20], xmm5
vmovdqu xmmword [rbx + 0x30], xmm5
vmovdqu xmmword [rbx + 0x80], xmm3
vmovdqu xmmword [rbx + 0x90], xmm3
vmovdqu xmmword [rbx + 0xa0], xmm3
vmovdqu xmmword [rbx + 0xb0], xmm3
vmovdqu xmmword [rbx + 0x100], xmm2
vmovdqu xmmword [rbx + 0x110], xmm2
vmovdqu xmmword [rbx + 0x120], xmm2
vmovdqu xmmword [rbx + 0x130], xmm2
vmovdqu xmmword [rbx + 0x180], xmm1
vmovdqu xmmword [rbx + 0x190], xmm1
vmovdqu xmmword [rsi + 0x2c0], xmm4
vmovdqu xmmword [rbx + 0x1a0], xmm1
vmovdqu xmmword [rbx + 0x1c0], xmm0
vmovdqu xmmword [rbx + 0x1d0], xmm0
vmovdqu xmmword [rbx + 0x1e0], xmm0
vmovdqu xmmword [rbx + 0x1f0], xmm0
vpunpcklqdq xmm0, xmm4, xmm4
vpunpckhqdq xmm4, xmm4, xmm4
vmovdqu xmmword [rbx + 0x200], xmm0
vmovdqu xmmword [rbx + 0x210], xmm0
vmovdqu xmmword [rbx + 0x220], xmm0
vmovdqu xmmword [rbx + 0x230], xmm0
vmovdqu xmmword [rbx + 0x240], xmm4
vmovdqu xmmword [rbx + 0x250], xmm4
vmovdqu xmmword [rbx + 0x260], xmm4
vmovdqu xmmword [rbx + 0x270], xmm4
vmovdqu xmmword [rbx + 0x1b0], xmm1
call sym.cubehashInit
lea rdx, [rsi + 0x280]
mov r8d, 0x40
mov rcx, rsi
call sym.cubehashUpdate
mov rcx, qword [0x1403867f0]
call sym.__emutls_get_address
vmovdqu xmm4, xmmword [rsi + 0x80]
vmovdqu xmmword [rax + 0x200], xmm4
vmovdqu xmm0, xmmword [rsi]
vmovdqu xmmword [rax], xmm0
vmovdqu xmmword [rax + 0x10], xmm0
vmovdqu xmmword [rax + 0x20], xmm0
vmovdqu xmmword [rax + 0x30], xmm0
vmovdqu xmm0, xmmword [rsi + 0x10]
vmovdqu xmmword [rax + 0x40], xmm0
vmovdqu xmmword [rax + 0x50], xmm0
vmovdqu xmmword [rax + 0x60], xmm0
vmovdqu xmmword [rax + 0x70], xmm0
vmovdqu xmm0, xmmword [rsi + 0x20]
vmovdqu xmmword [rax + 0x80], xmm0
vmovdqu xmmword [rax + 0x90], xmm0
vmovdqu xmmword [rax + 0xa0], xmm0
vmovdqu xmmword [rax + 0xb0], xmm0
vmovdqu xmm0, xmmword [rsi + 0x30]
vmovdqu xmmword [rax + 0xc0], xmm0
vmovdqu xmmword [rax + 0xd0], xmm0
vmovdqu xmmword [rax + 0xe0], xmm0
vmovdqu xmmword [rax + 0xf0], xmm0
vmovdqu xmm0, xmmword [rsi + 0x40]
vmovdqu xmmword [rax + 0x100], xmm0
vmovdqu xmmword [rax + 0x110], xmm0
vmovdqu xmmword [rax + 0x120], xmm0
vmovdqu xmmword [rax + 0x130], xmm0
vmovdqu xmm0, xmmword [rsi + 0x50]
vmovdqu xmmword [rax + 0x140], xmm0
vmovdqu xmmword [rax + 0x150], xmm0
vmovdqu xmmword [rax + 0x160], xmm0
vmovdqu xmmword [rax + 0x170], xmm0
vmovdqu xmm0, xmmword [rsi + 0x60]
vmovdqu xmmword [rax + 0x180], xmm0
vmovdqu xmmword [rax + 0x190], xmm0
vmovdqu xmmword [rax + 0x1a0], xmm0
vmovdqu xmmword [rax + 0x1b0], xmm0
vmovdqu xmm0, xmmword [rsi + 0x70]
vmovdqu xmmword [rax + 0x1c0], xmm0
vmovdqu xmmword [rax + 0x1d0], xmm0
vmovdqu xmmword [rax + 0x1e0], xmm0
vmovdqu xmmword [rax + 0x1f0], xmm0
add rsp, 0x320
pop rbx
pop rsi
pop rdi
ret
vmovdqu8 zmm5, zmmword [0x140380b80]
mov rcx, qword [0x1403867f0]
vpermb zmm16, zmm5, zmm3
vmovdqu8 zmmword [rbx], zmm16
vmovdqu8 zmm16, zmmword [0x140380bc0]
vpermb zmm3, zmm16, zmm3
vmovdqu8 zmmword [rbx + 0x40], zmm3
vpermb zmm3, zmm5, zmm2
vpermb zmm2, zmm16, zmm2
vmovdqu8 zmmword [rbx + 0xc0], zmm2
vpermb zmm2, zmm5, zmm1
vpermb zmm1, zmm16, zmm1
vmovdqu8 zmmword [rbx + 0x80], zmm3
vmovdqu8 zmmword [rbx + 0x140], zmm1
vpermb zmm1, zmm5, zmm0
vpermb zmm0, zmm16, zmm0
vmovdqu8 zmmword [rbx + 0x100], zmm2
vmovdqu8 zmmword [rbx + 0x1c0], zmm0
vmovdqu xmm0, xmm4
vmovdqu8 zmmword [rbx + 0x180], zmm1
vpermb zmm5, zmm5, zmm0
vpermb zmm0, zmm16, zmm0
vmovdqu8 zmmword [rbx + 0x200], zmm5
vmovdqu8 zmmword [rbx + 0x240], zmm0
vzeroupper
call sym.__emutls_get_address
mov rsi, rax
mov rcx, rax
call sym.hamsi512_8way_init
mov r8d, 0x48
mov rdx, rbx
mov rcx, rsi
add rsp, 0x320
pop rbx
pop rsi
pop rdi
jmp sym.hamsi512_8way_update
vmovdqu8 xmm5, xmmword [0x140380c00]
mov rcx, qword [0x1403867f0]
vpshufb xmm3, xmm3, xmm5
vpshufb xmm2, xmm2, xmm5
vpshufb xmm1, xmm1, xmm5
vpshufb xmm0, xmm0, xmm5
vmovdqu8 xmmword [rsi + 0x280], xmm3
vmovdqu8 xmmword [rsi + 0x290], xmm2
vpshufb xmm5, xmm4, xmm5
vmovdqu8 xmmword [rsi + 0x2a0], xmm1
vmovdqu8 xmmword [rsi + 0x2b0], xmm0
vmovdqu8 xmmword [rsi + 0x2c0], xmm5
call sym.__emutls_get_address
mov edx, 0x200
mov rdi, rax
mov rcx, rax
call sym.fugue512_Init
lea rdx, [rsi + 0x280]
mov r8d, 0x260
mov rcx, rdi
call sym.fugue512_Update
vmovdqu xmm0, xmmword [rsi + 0x280]
vpunpcklqdq xmm1, xmm0, xmm0
vpunpckhqdq xmm0, xmm0, xmm0
vmovdqu xmmword [rbx + 0x40], xmm0
vmovdqu xmmword [rbx + 0x50], xmm0
vmovdqu xmmword [rbx + 0x60], xmm0
vmovdqu xmmword [rbx + 0x70], xmm0
vmovdqu xmmword [rbx], xmm1
vmovdqu xmmword [rbx + 0x10], xmm1
vmovdqu xmmword [rbx + 0x20], xmm1
vmovdqu xmmword [rbx + 0x30], xmm1
vmovdqu xmm0, xmmword [rsi + 0x290]
vpunpcklqdq xmm1, xmm0, xmm0
vpunpckhqdq xmm0, xmm0, xmm0
vmovdqu xmmword [rbx + 0xc0], xmm0
vmovdqu xmmword [rbx + 0xd0], xmm0
vmovdqu xmmword [rbx + 0xe0], xmm0
vmovdqu xmmword [rbx + 0xf0], xmm0
vmovdqu xmmword [rbx + 0x80], xmm1
vmovdqu xmmword [rbx + 0x90], xmm1
vmovdqu xmmword [rbx + 0xa0], xmm1
vmovdqu xmmword [rbx + 0xb0], xmm1
vmovdqu xmm0, xmmword [rsi + 0x2a0]
vpunpcklqdq xmm1, xmm0, xmm0
vpunpckhqdq xmm0, xmm0, xmm0
vmovdqu xmmword [rbx + 0x140], xmm0
vmovdqu xmmword [rbx + 0x150], xmm0
vmovdqu xmmword [rbx + 0x160], xmm0
vmovdqu xmmword [rbx + 0x170], xmm0
vmovdqu xmmword [rbx + 0x100], xmm1
vmovdqu xmmword [rbx + 0x110], xmm1
vmovdqu xmmword [rbx + 0x120], xmm1
vmovdqu xmmword [rbx + 0x130], xmm1
vmovdqu xmm0, xmmword [rsi + 0x2b0]
vpunpcklqdq xmm1, xmm0, xmm0
vpunpckhqdq xmm0, xmm0, xmm0
vmovdqu xmmword [rbx + 0x180], xmm1
vmovdqu xmmword [rbx + 0x190], xmm1
vmovdqu xmmword [rbx + 0x1a0], xmm1
vmovdqu xmmword [rbx + 0x1b0], xmm1
vmovdqu xmmword [rbx + 0x1c0], xmm0
vmovdqu xmmword [rbx + 0x1d0], xmm0
vmovdqu xmmword [rbx + 0x1e0], xmm0
vmovdqu xmmword [rbx + 0x1f0], xmm0
vmovdqu xmm0, xmmword [rsi + 0x2c0]
vpunpcklqdq xmm1, xmm0, xmm0
vpunpckhqdq xmm0, xmm0, xmm0
vmovdqu xmmword [rbx + 0x200], xmm1
vmovdqu xmmword [rbx + 0x210], xmm1
vmovdqu xmmword [rbx + 0x220], xmm1
vmovdqu xmmword [rbx + 0x230], xmm1
vmovdqu xmmword [rbx + 0x240], xmm0
vmovdqu xmmword [rbx + 0x250], xmm0
vmovdqu xmmword [rbx + 0x260], xmm0
vmovdqu xmmword [rbx + 0x270], xmm0
add rsp, 0x320
pop rbx
pop rsi
pop rdi
ret
vmovdqu8 ymm17, ymmword [0x140380c20]
vmovdqu8 ymm16, ymmword [0x140380c40]
mov rcx, qword [0x1403867f0]
vpermb ymm5, ymm17, ymm3
vmovdqu8 ymmword [rsi], ymm5
vpermb ymm5, ymm16, ymm3
vmovdqu8 ymmword [rsi + 0x20], ymm5
vmovdqu8 ymm5, ymmword [0x140380c60]
vpermb ymm18, ymm5, ymm3
vmovdqu8 ymmword [rsi + 0x40], ymm18
vmovdqu8 ymm18, ymmword [0x140380c80]
vpermb ymm3, ymm18, ymm3
vmovdqu8 ymmword [rsi + 0x60], ymm3
vpermb ymm3, ymm17, ymm2
vmovdqu8 ymmword [rsi + 0x80], ymm3
vpermb ymm3, ymm16, ymm2
vmovdqu8 ymmword [rsi + 0xa0], ymm3
vpermb ymm3, ymm5, ymm2
vpermb ymm2, ymm18, ymm2
vmovdqu8 ymmword [rsi + 0xe0], ymm2
vpermb ymm2, ymm17, ymm1
vmovdqu8 ymmword [rsi + 0xc0], ymm3
vmovdqu8 ymmword [rsi + 0x100], ymm2
vpermb ymm2, ymm16, ymm1
vmovdqu8 ymmword [rsi + 0x120], ymm2
vpermb ymm2, ymm5, ymm1
vpermb ymm1, ymm18, ymm1
vmovdqu8 ymmword [rsi + 0x160], ymm1
vpermb ymm1, ymm17, ymm0
vmovdqu8 ymmword [rsi + 0x140], ymm2
vmovdqu8 ymmword [rsi + 0x180], ymm1
vpermb ymm1, ymm16, ymm0
vmovdqu8 ymmword [rsi + 0x1a0], ymm1
vpermb ymm1, ymm5, ymm0
vpermb ymm0, ymm18, ymm0
vmovdqu8 ymmword [rsi + 0x1e0], ymm0
vmovdqu xmm0, xmm4
vmovdqu8 ymmword [rsi + 0x1c0], ymm1
vpermb ymm5, ymm5, ymm0
vpermb ymm17, ymm17, ymm0
vpermb ymm16, ymm16, ymm0
vpermb ymm0, ymm18, ymm0
vmovdqu8 ymmword [rsi + 0x260], ymm0
vmovdqu8 ymmword [rsi + 0x200], ymm17
vmovdqu8 ymmword [rsi + 0x220], ymm16
vmovdqu8 ymmword [rsi + 0x240], ymm5
vzeroupper
call sym.__emutls_get_address
mov rdi, rax
mov rcx, rax
call sym.shabal512_8way_init
mov r8d, 0x40
mov rdx, rsi
mov rcx, rdi
call sym.shabal512_8way_update
vmovdqu xmm0, xmmword [rsi]
vpunpckldq xmm1, xmm0, xmmword [rsi + 0x20]
vpunpckhdq xmm0, xmm0, xmmword [rsi + 0x20]
vmovdqu xmmword [rbx + 0x10], xmm0
vmovdqu xmm0, xmmword [rsi + 0x10]
vmovdqu xmmword [rbx], xmm1
vpunpckldq xmm1, xmm0, xmmword [rsi + 0x30]
vpunpckhdq xmm0, xmm0, xmmword [rsi + 0x30]
vmovdqu xmmword [rbx + 0x30], xmm0
vmovdqu xmm0, xmmword [rsi + 0x40]
vmovdqu xmmword [rbx + 0x20], xmm1
vpunpckldq xmm1, xmm0, xmmword [rsi + 0x60]
vpunpckhdq xmm0, xmm0, xmmword [rsi + 0x60]
vmovdqu xmmword [rbx + 0x50], xmm0
vmovdqu xmm0, xmmword [rsi + 0x50]
vmovdqu xmmword [rbx + 0x40], xmm1
vpunpckldq xmm1, xmm0, xmmword [rsi + 0x70]
vpunpckhdq xmm0, xmm0, xmmword [rsi + 0x70]
vmovdqu xmmword [rbx + 0x70], xmm0
vmovdqu xmm0, xmmword [rsi + 0x80]
vmovdqu xmmword [rbx + 0x60], xmm1
vpunpckldq xmm1, xmm0, xmmword [rsi + 0xa0]
vpunpckhdq xmm0, xmm0, xmmword [rsi + 0xa0]
vmovdqu xmmword [rbx + 0x90], xmm0
vmovdqu xmm0, xmmword [rsi + 0x90]
vmovdqu xmmword [rbx + 0x80], xmm1
vpunpckldq xmm1, xmm0, xmmword [rsi + 0xb0]
vpunpckhdq xmm0, xmm0, xmmword [rsi + 0xb0]
vmovdqu xmmword [rbx + 0xb0], xmm0
vmovdqu xmm0, xmmword [rsi + 0xc0]
vmovdqu xmmword [rbx + 0xa0], xmm1
vpunpckldq xmm1, xmm0, xmmword [rsi + 0xe0]
vmovdqu xmmword [rbx + 0xc0], xmm1
vpunpckhdq xmm0, xmm0, xmmword [rsi + 0xe0]
vmovdqu xmmword [rbx + 0xd0], xmm0
vmovdqu xmm0, xmmword [rsi + 0xd0]
vpunpckldq xmm1, xmm0, xmmword [rsi + 0xf0]
vpunpckhdq xmm0, xmm0, xmmword [rsi + 0xf0]
vmovdqu xmmword [rbx + 0xe0], xmm1
vmovdqu xmmword [rbx + 0xf0], xmm0
vmovdqu xmm0, xmmword [rsi + 0x100]
vpunpckldq xmm1, xmm0, xmmword [rsi + 0x120]
vpunpckhdq xmm0, xmm0, xmmword [rsi + 0x120]
vmovdqu xmmword [rbx + 0x100], xmm1
vmovdqu xmmword [rbx + 0x110], xmm0
vmovdqu xmm0, xmmword [rsi + 0x110]
vpunpckldq xmm1, xmm0, xmmword [rsi + 0x130]
vpunpckhdq xmm0, xmm0, xmmword [rsi + 0x130]
vmovdqu xmmword [rbx + 0x120], xmm1
vmovdqu xmmword [rbx + 0x130], xmm0
vmovdqu xmm0, xmmword [rsi + 0x140]
vpunpckldq xmm1, xmm0, xmmword [rsi + 0x160]
vpunpckhdq xmm0, xmm0, xmmword [rsi + 0x160]
vmovdqu xmmword [rbx + 0x140], xmm1
vmovdqu xmmword [rbx + 0x150], xmm0
vmovdqu xmm0, xmmword [rsi + 0x150]
vpunpckldq xmm1, xmm0, xmmword [rsi + 0x170]
vpunpckhdq xmm0, xmm0, xmmword [rsi + 0x170]
vmovdqu xmmword [rbx + 0x160], xmm1
vmovdqu xmmword [rbx + 0x170], xmm0
vmovdqu xmm0, xmmword [rsi + 0x180]
vpunpckldq xmm1, xmm0, xmmword [rsi + 0x1a0]
vpunpckhdq xmm0, xmm0, xmmword [rsi + 0x1a0]
vmovdqu xmmword [rbx + 0x180], xmm1
vmovdqu xmmword [rbx + 0x190], xmm0
vmovdqu xmm0, xmmword [rsi + 0x190]
vpunpckldq xmm1, xmm0, xmmword [rsi + 0x1b0]
vpunpckhdq xmm0, xmm0, xmmword [rsi + 0x1b0]
vmovdqu xmmword [rbx + 0x1a0], xmm1
vmovdqu xmmword [rbx + 0x1b0], xmm0
vmovdqu xmm0, xmmword [rsi + 0x1c0]
vpunpckldq xmm1, xmm0, xmmword [rsi + 0x1e0]
vpunpckhdq xmm0, xmm0, xmmword [rsi + 0x1e0]
vmovdqu xmmword [rbx + 0x1c0], xmm1
vmovdqu xmmword [rbx + 0x1d0], xmm0
vmovdqu xmm0, xmmword [rsi + 0x1d0]
vpunpckldq xmm1, xmm0, xmmword [rsi + 0x1f0]
vpunpckhdq xmm0, xmm0, xmmword [rsi + 0x1f0]
vmovdqu xmmword [rbx + 0x1e0], xmm1
vmovdqu xmmword [rbx + 0x1f0], xmm0
vmovdqu xmm0, xmmword [rsi + 0x200]
vpunpckldq xmm1, xmm0, xmmword [rsi + 0x220]
vpunpckhdq xmm0, xmm0, xmmword [rsi + 0x220]
vmovdqu xmmword [rbx + 0x200], xmm1
vmovdqu xmmword [rbx + 0x210], xmm0
vmovdqu xmm0, xmmword [rsi + 0x210]
vpunpckldq xmm1, xmm0, xmmword [rsi + 0x230]
vpunpckhdq xmm0, xmm0, xmmword [rsi + 0x230]
vmovdqu xmmword [rbx + 0x220], xmm1
vmovdqu xmmword [rbx + 0x230], xmm0
vmovdqu xmm0, xmmword [rsi + 0x240]
vpunpckldq xmm1, xmm0, xmmword [rsi + 0x260]
vpunpckhdq xmm0, xmm0, xmmword [rsi + 0x260]
vmovdqu xmmword [rbx + 0x240], xmm1
vmovdqu xmm1, xmmword [rsi + 0x270]
vmovdqu xmmword [rbx + 0x250], xmm0
vmovdqu xmm0, xmmword [rsi + 0x250]
vpunpckldq xmm2, xmm0, xmm1
vpunpckhdq xmm0, xmm0, xmm1
vmovdqu xmmword [rbx + 0x260], xmm2
vmovdqu xmmword [rbx + 0x270], xmm0
add rsp, 0x320
pop rbx
pop rsi
pop rdi
ret
vmovdqu8 xmm5, xmmword [0x140380c00]
mov rcx, qword [0x1403867f0]
vpshufb xmm3, xmm3, xmm5
vpshufb xmm2, xmm2, xmm5
vpshufb xmm1, xmm1, xmm5
vpshufb xmm0, xmm0, xmm5
vmovdqu8 xmmword [rsi + 0x280], xmm3
vmovdqu8 xmmword [rsi + 0x290], xmm2
vpshufb xmm5, xmm4, xmm5
vmovdqu8 xmmword [rsi + 0x2a0], xmm1
vmovdqu8 xmmword [rsi + 0x2b0], xmm0
vmovdqu8 xmmword [rsi + 0x2c0], xmm5
call sym.__emutls_get_address
mov rdi, rax
mov rcx, rax
call sym.sph_whirlpool_init
lea rdx, [rsi + 0x280]
mov r8d, 0x40
mov rcx, rdi
call sym.sph_whirlpool
jmp 0x14029cc07