Function at 0x14008c370
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xa8
mov rbx, qword [rcx + 8]
lea rax, [rbx + r8]
mov r13, rcx
mov r15, rdx
mov rdi, r8
cmp rax, 0x20
jbe 0x14008c3cd
test rbx, rbx
je 0x14008c3c7
mov esi, 0x20
sub rsi, rbx
jne 0x14008ccd0
lea rdx, [r13 + 0x40]
mov r8d, 0x20
mov rcx, r13
call sym.Skein_256_Process_Block.constprop.0
mov qword [r13 + 8], 0
cmp rdi, 0x20
ja 0x14008c410
test rdi, rdi
jne 0x14008c3f0
xor eax, eax
add rsp, 0xa8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [r13 + 8]
mov r8, rdi
mov rdx, r15
lea rcx, [r13 + rax + 0x40]
call sym.memcpy
add qword [r13 + 8], rdi
jmp 0x14008c3d2
mov rdx, qword [r13 + 0x10]
lea rax, [rdi - 1]
mov r11, qword [r13 + 0x18]
lea r10, [rsp + 0x80]
mov qword [rsp + 0x60], r10
mov rcx, rax
mov r8, rax
mov r12, qword [r13 + 0x30]
add rdx, 0x20
shr rcx, 5
and r8, 0xffffffffffffffe0
mov rbx, qword [r13 + 0x28]
mov r10, rdx
mov qword [rsp + 0x68], rax
lea r14, [r15 + r8]
mov rbp, qword [r13 + 0x20]
sub r10, r15
mov qword [rsp + 0x70], rcx
mov rsi, qword [r13 + 0x38]
mov qword [rsp + 0x58], r10
mov qword [rsp + 0xf0], r13
mov qword [rsp + 0xf8], r15
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0x50], r14
mov r14, r15
mov qword [rsp + 0x100], rdi
mov rdi, r11
nop dword [rax]
mov r9, r12
mov rax, qword [rsp + 0x58]
mov rdx, qword [r14 + 8]
lea r13, [rdi + r12]
xor r9, rsi
mov rcx, qword [rsp + 0x60]
xor r9, rbx
lea r10, [r14 + rax]
add r14, 0x20
movabs rax, 0x1bd11bdaa9fc1a22
xor r9, rbp
mov qword [rcx + 8], rdx
mov rdx, qword [r14 - 8]
mov r11, r10
xor r9, rax
mov rax, qword [r14 - 0x20]
xor r11, rdi
mov qword [rcx + 0x18], rdx
mov qword [rcx], rax
mov r15, rax
mov rdx, qword [rsp + 0x88]
mov rax, qword [r14 - 0x10]
mov qword [rsp + 0x40], r15
add rdx, rbx
mov qword [rcx + 0x10], rax
mov rcx, qword [rsp + 0x98]
mov r8, rax
lea rax, [r15 + rbp]
mov r15, rdx
lea rdx, [r8 + r13]
mov qword [rsp + 0x48], r8
lea r8, [r11 + rsi]
add r15, r10
add rcx, rsi
mov qword [rsp + 0x30], r8
add rax, r15
add rdx, rcx
rol r15, 0xe
rol rcx, 0x10
xor r15, rax
xor rcx, rdx
add rdx, r15
ror r15, 7
add rax, rcx
ror rcx, 0xc
xor r15, rdx
xor rcx, rax
add rax, r15
rol r15, 0x17
add rdx, rcx
ror rcx, 0x18
xor r15, rax
xor rcx, rdx
add rdx, r15
ror r15, 0x1b
add rax, rcx
rol rcx, 5
xor rcx, rax
xor r15, rdx
add rax, rbx
add rdx, r8
add r15, r13
lea rcx, [r9 + rcx + 1]
add rax, r15
rol r15, 0x19
add rdx, rcx
xor r15, rax
ror rcx, 0x1f
xor rcx, rdx
add rdx, r15
rol r15, 0xc
add rax, rcx
xor r15, rdx
ror rcx, 0x12
xor rcx, rax
add rax, r15
ror r15, 6
xor r15, rax
add rdx, rcx
rol rcx, 0x16
xor rcx, rdx
add rdx, r15
rol r15, 0x20
add rax, rcx
xor r15, rdx
rol rcx, 0x20
xor rcx, rax
add r15, r8
lea r8, [r10 + r9]
add rax, r12
add rdx, r8
lea rcx, [rcx + rbp + 2]
add rax, r15
rol r15, 0xe
xor r15, rax
add rdx, rcx
rol rcx, 0x10
mov qword [rsp + 0x38], r8
xor rcx, rdx
add rdx, r15
ror r15, 7
add rax, rcx
xor r15, rdx
ror rcx, 0xc
xor rcx, rax
add rax, r15
rol r15, 0x17
xor r15, rax
add rdx, rcx
ror rcx, 0x18
xor rcx, rdx
add rdx, r15
ror r15, 0x1b
add rax, rcx
xor r15, rdx
rol rcx, 5
xor rcx, rax
add r15, r8
lea r8, [rdi + rbp]
add rax, rsi
mov qword [rsp + 0x28], r8
add rdx, r8
lea r8, [rcx + rbx + 3]
add rax, r15
add rdx, r8
rol r15, 0x19
mov rcx, qword [rsp + 0x28]
ror r8, 0x1f
xor r15, rax
xor r8, rdx
add rax, r8
add rdx, r15
rol r15, 0xc
xor r15, rdx
ror r8, 0x12
xor r8, rax
add rax, r15
ror r15, 6
xor r15, rax
add rdx, r8
rol r8, 0x16
xor r8, rdx
add rdx, r15
rol r15, 0x20
add rax, r8
xor r15, rdx
rol r8, 0x20
add r15, rcx
xor r8, rax
lea rcx, [r11 + rbx]
add rax, r9
add rdx, rcx
lea r8, [r8 + r12 + 4]
add rax, r15
rol r15, 0xe
add rdx, r8
rol r8, 0x10
xor r15, rax
xor r8, rdx
add rdx, r15
ror r15, 7
add rax, r8
ror r8, 0xc
xor r8, rax
xor r15, rdx
add rax, r15
rol r15, 0x17
add rdx, r8
xor r15, rax
ror r8, 0x18
xor r8, rdx
add rdx, r15
ror r15, 0x1b
add rax, r8
xor r15, rdx
rol r8, 5
add rcx, r15
xor r8, rax
lea r15, [r10 + r12]
add rax, rbp
add rax, rcx
add rdx, r15
lea r8, [r8 + rsi + 5]
rol rcx, 0x19
xor rcx, rax
add rdx, r8
ror r8, 0x1f
xor r8, rdx
add rdx, rcx
rol rcx, 0xc
add rax, r8
xor rcx, rdx
ror r8, 0x12
xor r8, rax
add rax, rcx
ror rcx, 6
xor rcx, rax
add rdx, r8
rol r8, 0x16
xor r8, rdx
add rdx, rcx
rol rcx, 0x20
add rax, r8
xor rcx, rdx
rol r8, 0x20
add r15, rcx
xor r8, rax
lea rcx, [rdi + rsi]
add rax, rbx
add rdx, rcx
lea r8, [r9 + r8 + 6]
add rax, r15
rol r15, 0xe
add rdx, r8
rol r8, 0x10
xor r15, rax
xor r8, rdx
add rdx, r15
ror r15, 7
add rax, r8
ror r8, 0xc
xor r15, rdx
xor r8, rax
add rax, r15
rol r15, 0x17
add rdx, r8
ror r8, 0x18
xor r15, rax
xor r8, rdx
add rax, r8
rol r8, 5
xor r8, rax
add rdx, r15
ror r15, 0x1b
add rax, r12
xor r15, rdx
lea r8, [r8 + rbp + 7]
add rcx, r15
lea r15, [r9 + r11]
add rax, rcx
add rdx, r15
rol rcx, 0x19
xor rcx, rax
add rdx, r8
ror r8, 0x1f
xor r8, rdx
add rdx, rcx
rol rcx, 0xc
add rax, r8
xor rcx, rdx
ror r8, 0x12
xor r8, rax
add rax, rcx
ror rcx, 6
xor rcx, rax
add rdx, r8
rol r8, 0x16
xor r8, rdx
add rdx, rcx
rol rcx, 0x20
add rax, r8
xor rcx, rdx
rol r8, 0x20
add r15, rcx
xor r8, rax
lea rcx, [r10 + rbp]
add rax, rsi
lea r8, [r8 + rbx + 8]
add rdx, rcx
add rax, r15
rol r15, 0xe
xor r15, rax
add rdx, r8
rol r8, 0x10
xor r8, rdx
add rdx, r15
ror r15, 7
add rax, r8
xor r15, rdx
ror r8, 0xc
xor r8, rax
add rax, r15
rol r15, 0x17
xor r15, rax
add rdx, r8
ror r8, 0x18
xor r8, rdx
add rdx, r15
ror r15, 0x1b
add rax, r8
xor r15, rdx
rol r8, 5
add rcx, r15
xor r8, rax
lea r15, [rdi + rbx]
add rax, r9
add rax, rcx
add rdx, r15
lea r8, [r8 + r12 + 9]
rol rcx, 0x19
xor rcx, rax
add rdx, r8
ror r8, 0x1f
xor r8, rdx
add rdx, rcx
rol rcx, 0xc
add rax, r8
xor rcx, rdx
ror r8, 0x12
xor r8, rax
add rax, rcx
ror rcx, 6
xor rcx, rax
add rdx, r8
rol r8, 0x16
xor r8, rdx
add rdx, rcx
rol rcx, 0x20
add rax, r8
xor rcx, rdx
rol r8, 0x20
add r15, rcx
xor r8, rax
lea rcx, [r11 + r12]
add rax, rbp
add rdx, rcx
lea r8, [r8 + rsi + 0xa]
add rax, r15
rol r15, 0xe
add rdx, r8
rol r8, 0x10
xor r15, rax
xor r8, rdx
add rax, r8
ror r8, 0xc
xor r8, rax
add rdx, r15
ror r15, 7
xor r15, rdx
add rdx, r8
ror r8, 0x18
add rax, r15
rol r15, 0x17
xor r8, rdx
xor r15, rax
add rax, r8
rol r8, 5
add rdx, r15
ror r15, 0x1b
xor r8, rax
add rax, rbx
xor r15, rdx
lea r8, [r9 + r8 + 0xb]
add rcx, r15
lea r15, [r10 + rsi]
add rax, rcx
add rdx, r15
rol rcx, 0x19
xor rcx, rax
add rdx, r8
ror r8, 0x1f
xor r8, rdx
add rdx, rcx
rol rcx, 0xc
add rax, r8
xor rcx, rdx
ror r8, 0x12
xor r8, rax
add rax, rcx
ror rcx, 6
xor rcx, rax
add rdx, r8
rol r8, 0x16
xor r8, rdx
add rdx, rcx
rol rcx, 0x20
add rax, r8
xor rcx, rdx
rol r8, 0x20
add rcx, r15
xor r8, rax
lea r15, [r9 + rdi]
add rax, r12
add rdx, r15
lea r8, [r8 + rbp + 0xc]
add rax, rcx
rol rcx, 0xe
add rdx, r8
rol r8, 0x10
xor rcx, rax
xor r8, rdx
add rdx, rcx
ror rcx, 7
add rax, r8
ror r8, 0xc
xor rcx, rdx
xor r8, rax
add rax, rcx
rol rcx, 0x17
add rdx, r8
ror r8, 0x18
xor rcx, rax
xor r8, rdx
add rax, r8
rol r8, 5
add rdx, rcx
add r11, rbp
ror rcx, 0x1b
xor r8, rax
add rax, rsi
xor rcx, rdx
lea r8, [r8 + rbx + 0xd]
add rdx, r11
add rcx, r15
add rdx, r8
ror r8, 0x1f
mov r15, qword [rsp + 0x40]
add rax, rcx
rol rcx, 0x19
xor r8, rdx
xor rcx, rax
add rax, r8
ror r8, 0x12
add rdx, rcx
rol rcx, 0xc
xor r8, rax
xor rcx, rdx
add rdx, r8
rol r8, 0x16
add rax, rcx
ror rcx, 6
xor r8, rdx
xor rcx, rax
add rax, r8
rol r8, 0x20
add rdx, rcx
rol rcx, 0x20
xor r8, rax
xor rcx, rdx
add r10, rbx
lea r8, [r8 + r12 + 0xe]
add rax, r9
add rcx, r11
add rdx, r10
mov r11, qword [rsp + 0x30]
add rax, rcx
add rdx, r8
rol rcx, 0xe
rol r8, 0x10
xor rcx, rax
xor r8, rdx
add rdx, rcx
ror rcx, 7
add rax, r8
ror r8, 0xc
xor rcx, rdx
xor r8, rax
add rax, rcx
rol rcx, 0x17
add rdx, r8
ror r8, 0x18
xor rcx, rax
xor r8, rdx
add rdx, rcx
ror rcx, 0x1b
add rax, r8
rol r8, 5
xor rcx, rdx
add rdx, r13
xor r8, rax
add rcx, r10
add rax, rbp
mov r10, qword [rsp + 0x38]
lea r8, [r8 + rsi + 0xf]
add rax, rcx
rol rcx, 0x19
add rdx, r8
ror r8, 0x1f
xor rcx, rax
xor r8, rdx
add rdx, rcx
rol rcx, 0xc
add rax, r8
ror r8, 0x12
xor rcx, rdx
xor r8, rax
add rax, rcx
ror rcx, 6
add rdx, r8
rol r8, 0x16
xor rcx, rax
xor r8, rdx
add rdx, rcx
rol rcx, 0x20
add rax, r8
rol r8, 0x20
xor rcx, rdx
add rdx, r11
xor r8, rax
add rcx, r13
add rax, rbx
lea r8, [r9 + r8 + 0x10]
add rax, rcx
rol rcx, 0xe
add rdx, r8
rol r8, 0x10
xor rcx, rax
xor r8, rdx
add rdx, rcx
ror rcx, 7
add rax, r8
ror r8, 0xc
xor rcx, rdx
xor r8, rax
add rax, rcx
rol rcx, 0x17
add rdx, r8
ror r8, 0x18
xor rcx, rax
xor r8, rdx
add rdx, rcx
ror rcx, 0x1b
add rax, r8
rol r8, 5
xor rcx, rdx
add rdx, r10
xor r8, rax
add rcx, r11
add rax, r12
mov r12, qword [rsp + 0x48]
lea r8, [r8 + rbp + 0x11]
add rax, rcx
rol rcx, 0x19
add rdx, r8
ror r8, 0x1f
xor rcx, rax
xor r8, rdx
add rdx, rcx
add rax, r8
ror r8, 0x12
xor r8, rax
rol rcx, 0xc
xor rcx, rdx
add rdx, r8
rol r8, 0x16
add rax, rcx
xor r8, rdx
ror rcx, 6
xor rcx, rax
add rax, r8
rol r8, 0x20
xor r8, rax
add rax, rsi
add rdx, rcx
rol rcx, 0x20
xor r15, rax
xor rcx, rdx
mov rax, qword [rsp + 0xf0]
lea r8, [r8 + rbx + 0x12]
mov rsi, qword [rsp + 0x98]
mov rbp, r15
mov qword [rax + 0x20], r15
lea rax, [r10 + rcx]
xor rax, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x28]
mov rbx, rax
mov rax, qword [rsp + 0xf0]
xor rsi, r8
mov qword [rax + 0x28], rbx
lea rax, [rcx + rdx]
xor r12, rax
mov rax, qword [rsp + 0xf0]
mov qword [rax + 0x30], r12
mov qword [rax + 0x38], rsi
movabs rax, 0xbfffffffffffffff
and rdi, rax
mov rax, qword [rsp + 0x50]
cmp r14, rax
jne 0x14008c490
mov rcx, qword [rsp + 0x70]
mov rax, qword [rsp + 0x68]
mov rbx, rdi
mov rdx, qword [rsp + 0x78]
mov r13, qword [rsp + 0xf0]
sub rcx, 1
mov r15, qword [rsp + 0xf8]
mov rdi, qword [rsp + 0x100]
and rax, 0xffffffffffffffe0
shl rcx, 5
mov qword [r13 + 0x18], rbx
add rcx, rdx
sub rdi, rax
add r15, rax
mov qword [r13 + 0x10], rcx
jmp 0x14008c3cd
lea rcx, [rcx + rbx + 0x40]
mov r8, rsi
lea rdi, [rbx + rdi - 0x20]
add r15, rsi
call sym.memcpy
jmp 0x14008c3ad