Function at 0x140017120
Capabilities:
Encode data using xor
Hash data using sha256

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x158
mov r14, rcx
test rcx, rcx
je 0x14001787c
mov eax, dword [rcx]
vmovdqu ymm3, ymmword [rcx]
lea rdi, [rsp + 0x50]
xor ebx, ebx
mov r15d, dword [rcx + 0x18]
mov qword [rsp + 0x48], rdi
lea rsi, [rcx + 0x68]
mov dword [rsp + 0x40], eax
mov eax, dword [rcx + 4]
mov dword [rsp + 0x30], eax
mov eax, dword [rcx + 8]
vpextrd dword [rsp + 0x38], xmm3, 3
vextracti128 xmm0, ymm3, 1
vpextrd ebp, xmm0, 3
mov dword [rsp + 0x28], eax
mov eax, dword [rcx + 0x10]
mov dword [rsp + 0x34], eax
mov eax, dword [rcx + 0x14]
mov dword [rsp + 0x2c], eax
nop dword [rax]
movbe eax, dword [r14 + rbx + 0x20]
lea rcx, [0x1401b3e40]
mov dword [rbx + rdi], eax
xor eax, dword [r14 + 0x68]
xor eax, dword [rcx + rbx]
mov rcx, rsi
add rbx, 4
mov dword [r14 + 0x68], eax
call sym.Mangle
cmp rbx, 0x40
jne 0x140017190
mov r13d, ebp
mov dword [rsp + 0x44], r15d
mov ebp, dword [rsp + 0x34]
mov r15d, dword [rsp + 0x40]
mov eax, dword [rsp + 0x38]
mov qword [rsp + 0x20], 0
mov r12d, 1
jmp 0x140017246
andn edx, edx, ebx
cmp eax, 1
cmove ebx, edx
mov eax, dword [rsp + 0x38]
add qword [rsp + 0x20], 4
add edi, r13d
mov ecx, dword [rsp + 0x28]
mov r13d, dword [rsp + 0x44]
add ebx, eax
mov rax, qword [rsp + 0x20]
mov dword [rsp + 0x38], ecx
cmp rax, 0x40
je 0x1400174c0
mov eax, dword [rsp + 0x2c]
mov dword [rsp + 0x2c], ebp
mov ebp, ebx
mov dword [rsp + 0x44], eax
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x30], r15d
mov r15d, edi
mov dword [rsp + 0x28], eax
mov eax, ecx
xor eax, r13d
xor dword [r14 + 0x68], eax
mov rcx, rsi
call sym.Mangle
mov ebx, dword [r14 + 0x68]
mov rcx, rsi
call sym.Mangle
mov eax, ebx
and ebx, 3
mov edx, ebx
mov ebx, dword [rsp + 0x44]
shr eax, 8
shlx eax, r12d, eax
mov edi, ebx
or edi, eax
cmp edx, 2
je 0x140017293
mov edi, ebx
xor edi, eax
cmp edx, 3
je 0x140017293
andn eax, eax, ebx
cmp edx, 1
cmovne eax, ebx
mov edi, eax
mov ebx, dword [r14 + 0x68]
mov rcx, rsi
call sym.Mangle
mov eax, ebx
and ebx, 3
mov edx, ebx
mov ebx, dword [rsp + 0x2c]
shr eax, 8
shlx eax, r12d, eax
mov ecx, ebx
or ecx, eax
cmp edx, 2
je 0x1400172d1
mov ecx, ebx
xor ecx, eax
cmp edx, 3
je 0x1400172d1
andn eax, eax, ebx
cmp edx, 1
cmovne eax, ebx
mov ecx, eax
and ecx, ebp
andn edi, ebp, edi
mov rbx, qword [rsp + 0x20]
lea rax, [0x1401b3e40]
xor edi, ecx
mov rcx, qword [rsp + 0x48]
add edi, r13d
mov eax, dword [rax + rbx]
add eax, dword [rcx + rbx]
mov ebx, dword [r14 + 0x68]
mov rcx, rsi
add edi, eax
call sym.Mangle
mov edx, ebx
and ebx, 3
shr edx, 8
shlx edx, r12d, edx
mov eax, edx
or eax, ebp
cmp ebx, 2
je 0x14001732e
mov eax, edx
xor eax, ebp
cmp ebx, 3
je 0x14001732e
andn edx, edx, ebp
cmp ebx, 1
mov eax, edx
cmovne eax, ebp
rorx edx, eax, 0xb
rorx ebx, eax, 6
rorx eax, eax, 0x19
mov rcx, rsi
xor ebx, edx
xor ebx, eax
add ebx, edi
mov edi, dword [r14 + 0x68]
call sym.Mangle
mov eax, edi
and edi, 3
mov edx, edi
mov edi, dword [rsp + 0x28]
shr eax, 8
shlx eax, r12d, eax
mov r13d, edi
or r13d, eax
cmp edx, 2
je 0x140017389
mov r13d, edi
xor r13d, eax
cmp edx, 3
je 0x140017389
andn eax, eax, edi
cmp edx, 1
cmovne eax, edi
mov r13d, eax
mov edi, dword [r14 + 0x68]
mov rcx, rsi
call sym.Mangle
mov ecx, dword [rsp + 0x30]
mov eax, edi
and edi, 3
shr eax, 8
mov edx, edi
mov edi, ecx
shlx eax, r12d, eax
or edi, eax
cmp edx, 2
je 0x1400173c7
mov edi, ecx
xor edi, eax
cmp edx, 3
je 0x1400173c7
andn eax, eax, ecx
cmp edx, 1
cmovne eax, ecx
mov edi, eax
mov edx, dword [r14 + 0x68]
mov rcx, rsi
mov dword [rsp + 0x34], edx
call sym.Mangle
mov edx, dword [rsp + 0x34]
mov ecx, r15d
mov eax, edx
and edx, 3
shr eax, 8
shlx eax, r12d, eax
or ecx, eax
cmp edx, 2
je 0x14001740a
mov ecx, r15d
xor ecx, eax
cmp edx, 3
je 0x14001740a
andn eax, eax, r15d
cmp edx, 1
cmovne eax, r15d
mov ecx, eax
mov edx, edi
mov eax, edi
and eax, r13d
xor edx, r13d
mov r13d, dword [r14 + 0x68]
and edx, ecx
mov rcx, rsi
mov edi, edx
xor edi, eax
call sym.Mangle
mov eax, r15d
mov edx, r13d
mov ecx, r13d
shr edx, 8
and ecx, 3
shlx edx, r12d, edx
or eax, edx
cmp ecx, 2
je 0x140017459
mov eax, r15d
xor eax, edx
cmp ecx, 3
je 0x140017459
andn edx, edx, r15d
cmp ecx, 1
mov eax, edx
cmovne eax, r15d
rorx edx, eax, 0xd
rorx r13d, eax, 2
rorx eax, eax, 0x16
mov rcx, rsi
xor r13d, edx
add edi, ebx
xor r13d, eax
mov eax, dword [r14 + 0x68]
mov dword [rsp + 0x34], eax
call sym.Mangle
mov eax, dword [rsp + 0x34]
mov edx, eax
and eax, 3
shr edx, 8
shlx edx, r12d, edx
cmp eax, 2
je 0x1400174b0
cmp eax, 3
jne 0x1400171f0
xor ebx, edx
jmp 0x1400171fb
or ebx, edx
jmp 0x1400171fb
lea rax, [0x1401b3e80]
mov r12, qword [rsp + 0x48]
mov r13d, edi
mov dword [rsp + 0x34], ebp
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x110]
mov dword [rsp + 0x40], r15d
mov ebp, 1
mov qword [rsp + 0x48], rax
mov edi, ebx
mov qword [rsp + 0x20], rsi
mov r15d, dword [rsp + 0x44]
jmp 0x140017557
andn edx, edx, ebx
cmp eax, 1
cmove ebx, edx
mov eax, dword [rsp + 0x28]
add r12, 4
add esi, r15d
add qword [rsp + 0x38], 4
mov r15d, dword [rsp + 0x2c]
add ebx, eax
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0x48]
cmp r12, rax
je 0x140017820
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x34], edi
mov edi, ebx
mov dword [rsp + 0x2c], eax
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x40], r13d
mov r13d, esi
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x28]
mov rcx, qword [rsp + 0x20]
add eax, r15d
xor dword [r14 + 0x68], eax
call sym.Mangle
mov eax, dword [r12 + 4]
mov edx, dword [r12 + 0x38]
mov esi, dword [r14 + 0x68]
rorx ecx, eax, 0x12
rorx ebx, eax, 7
shr eax, 3
xor ebx, ecx
rorx ecx, edx, 0x13
xor ebx, eax
rorx eax, edx, 0x11
shr edx, 0xa
xor eax, ecx
mov rcx, qword [rsp + 0x20]
xor eax, edx
add ebx, eax
mov eax, dword [r12]
add eax, dword [r12 + 0x24]
add ebx, eax
mov dword [r12 + 0x40], ebx
call sym.Mangle
mov edx, esi
mov eax, esi
mov ecx, dword [rsp + 0x2c]
shr edx, 8
and eax, 3
shlx edx, ebp, edx
mov esi, ecx
or esi, edx
cmp eax, 2
je 0x1400175ee
mov esi, ecx
xor esi, edx
cmp eax, 3
je 0x1400175ee
andn edx, edx, ecx
cmp eax, 1
mov esi, edx
cmovne esi, ecx
mov eax, dword [r14 + 0x68]
mov rcx, qword [rsp + 0x20]
mov dword [rsp + 0x44], eax
call sym.Mangle
mov eax, dword [rsp + 0x44]
mov r9d, dword [rsp + 0x34]
mov edx, eax
and eax, 3
shr edx, 8
mov ecx, r9d
shlx edx, ebp, edx
or ecx, edx
cmp eax, 2
je 0x140017638
mov ecx, r9d
xor ecx, edx
cmp eax, 3
je 0x140017638
andn edx, edx, r9d
cmp eax, 1
mov ecx, edx
cmovne ecx, r9d
and ecx, edi
andn esi, edi, esi
mov rax, qword [rsp + 0x38]
xor esi, ecx
mov rcx, qword [rsp + 0x20]
add esi, ebx
mov ebx, dword [r14 + 0x68]
add r15d, dword [rax]
call sym.Mangle
mov ecx, ebx
and ebx, 3
shr ecx, 8
shlx ecx, ebp, ecx
mov eax, ecx
add r15d, esi
or eax, edi
cmp ebx, 2
je 0x140017688
mov eax, ecx
xor eax, edi
cmp ebx, 3
je 0x140017688
andn ecx, ecx, edi
cmp ebx, 1
mov eax, ecx
cmovne eax, edi
mov esi, dword [r14 + 0x68]
mov rcx, qword [rsp + 0x20]
rorx edx, eax, 0xb
rorx ebx, eax, 6
xor ebx, edx
rorx eax, eax, 0x19
xor ebx, eax
add ebx, r15d
call sym.Mangle
mov edx, esi
mov eax, esi
mov esi, dword [rsp + 0x30]
shr edx, 8
and eax, 3
shlx edx, ebp, edx
mov r15d, esi
or r15d, edx
cmp eax, 2
je 0x1400176e6
mov r15d, esi
xor r15d, edx
cmp eax, 3
je 0x1400176e6
andn edx, edx, esi
cmp eax, 1
cmovne edx, esi
mov r15d, edx
mov rcx, qword [rsp + 0x20]
mov esi, dword [r14 + 0x68]
call sym.Mangle
mov ecx, dword [rsp + 0x40]
mov edx, esi
mov eax, esi
shr edx, 8
and eax, 3
shlx edx, ebp, edx
mov esi, ecx
or esi, edx
cmp eax, 2
je 0x140017726
mov esi, ecx
xor esi, edx
cmp eax, 3
je 0x140017726
andn edx, edx, ecx
cmp eax, 1
mov esi, edx
cmovne esi, ecx
mov eax, dword [r14 + 0x68]
mov rcx, qword [rsp + 0x20]
mov dword [rsp + 0x44], eax
call sym.Mangle
mov eax, dword [rsp + 0x44]
mov ecx, r13d
mov edx, eax
and eax, 3
shr edx, 8
shlx edx, ebp, edx
or ecx, edx
cmp eax, 2
je 0x14001776b
mov ecx, r13d
xor ecx, edx
cmp eax, 3
je 0x14001776b
andn edx, edx, r13d
cmp eax, 1
mov ecx, edx
cmovne ecx, r13d
mov edx, esi
mov eax, esi
xor edx, r15d
and eax, r15d
mov r15d, dword [r14 + 0x68]
and edx, ecx
mov rcx, qword [rsp + 0x20]
mov esi, edx
xor esi, eax
call sym.Mangle
mov ecx, r15d
mov edx, r15d
mov eax, r13d
shr ecx, 8
and edx, 3
shlx ecx, ebp, ecx
or eax, ecx
cmp edx, 2
je 0x1400177bc
mov eax, r13d
xor eax, ecx
cmp edx, 3
je 0x1400177bc
andn ecx, ecx, r13d
cmp edx, 1
mov eax, ecx
cmovne eax, r13d
rorx edx, eax, 0xd
rorx r15d, eax, 2
rorx eax, eax, 0x16
mov rcx, qword [rsp + 0x20]
xor r15d, edx
add esi, ebx
xor r15d, eax
mov eax, dword [r14 + 0x68]
mov dword [rsp + 0x44], eax
call sym.Mangle
mov eax, dword [rsp + 0x44]
mov edx, eax
and eax, 3
shr edx, 8
shlx edx, ebp, edx
cmp eax, 2
je 0x140017810
cmp eax, 3
jne 0x140017500
xor ebx, edx
jmp 0x14001750b
or ebx, edx
jmp 0x14001750b
vmovd xmm4, dword [rsp + 0x34]
vmovd xmm5, ebx
vmovd xmm2, dword [rsp + 0x40]
vpinsrd xmm0, xmm5, edi, 1
vpinsrd xmm1, xmm4, r15d, 1
vmovd xmm4, esi
vpunpcklqdq xmm0, xmm0, xmm1
vpinsrd xmm1, xmm2, dword [rsp + 0x30], 1
vpinsrd xmm2, xmm4, r13d, 1
vpunpcklqdq xmm1, xmm2, xmm1
vinserti128 ymm0, ymm1, xmm0, 1
vpaddd ymm0, ymm0, ymm3
vmovdqu ymmword [r14], ymm0
vzeroupper
add rsp, 0x158
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r8d, 0x102
lea rdx, str.sha3_sph_hefty1.c
lea rcx, [0x1401b3e12]
call qword [sym.imp.msvcrt.dll__assert]
nop
nop word [rax + rax]