Function at 0x140056340
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x48
lea rbp, [rsp + 0x20]
and rbp, 0xffffffffffffffe0
mov rax, qword [0x14014dcf0]
xor rax, rsp
mov qword [rbp + 0x18], rax
mov rsi, r8
mov rax, r9
mov rdi, r9
ror rsi, 0x17
not rax
mov r13, r9
add rsi, rax
ror rdi, 0x13
mov rax, r8
not rax
mov r12, r8
mov qword [rbp + 0x10], r8
add rdi, rax
mov rbx, rdx
mov qword [rbp + 8], rcx
mov r14, r8
movabs r15, 0xcb5af53ae3aaac31
test dl, 3
je 0x1400567fd
cmp r8, 0x20
jbe 0x1400565b4
lea rax, [r8 + rdx - 0x1f]
movabs r12, 0xc060724a8424f345
mov qword [rbp], rax
nop dword [rax]
mov r10, rbx
add rbx, 0x20
movzx eax, byte [r10 + 7]
shl ax, 8
movzx r11d, ax
movzx eax, byte [r10 + 6]
or r11d, eax
movzx eax, byte [r10 + 5]
shl ax, 8
shl r11d, 0x10
movzx eax, ax
or r11, rax
movzx eax, byte [r10 + 4]
or r11, rax
movzx eax, byte [r10 + 3]
shl ax, 8
shl r11, 0x20
movzx ecx, ax
movzx eax, byte [r10 + 2]
or eax, ecx
shl eax, 0x10
or r11, rax
movzx eax, byte [r10 + 1]
shl ax, 8
movzx ecx, ax
movzx eax, byte [r10]
or r11, rcx
or r11, rax
movzx eax, byte [r10 + 0xf]
shl ax, 8
movzx r9d, ax
movzx eax, byte [r10 + 0xe]
or r9d, eax
movzx eax, byte [r10 + 0xd]
shl ax, 8
shl r9d, 0x10
movzx eax, ax
or r9, rax
movzx eax, byte [r10 + 0xc]
or r9, rax
movzx eax, byte [r10 + 0xb]
shl ax, 8
shl r9, 0x20
movzx ecx, ax
movzx eax, byte [r10 + 0xa]
or eax, ecx
shl eax, 0x10
or r9, rax
movzx eax, byte [r10 + 9]
shl ax, 8
movzx ecx, ax
movzx eax, byte [r10 + 8]
or r9, rcx
or r9, rax
movzx eax, byte [r10 + 0x17]
shl ax, 8
movzx r8d, ax
movzx eax, byte [r10 + 0x16]
or r8d, eax
movzx eax, byte [r10 + 0x15]
shl ax, 8
shl r8d, 0x10
movzx eax, ax
or r8, rax
movzx eax, byte [r10 + 0x14]
or r8, rax
movzx eax, byte [r10 + 0x13]
shl ax, 8
shl r8, 0x20
movzx ecx, ax
movzx eax, byte [r10 + 0x12]
or eax, ecx
shl eax, 0x10
or r8, rax
movzx eax, byte [r10 + 0x11]
shl ax, 8
movzx ecx, ax
movzx eax, byte [r10 + 0x10]
or r8, rcx
or r8, rax
movzx eax, byte [r10 + 0x1f]
shl ax, 8
movzx edx, ax
movzx eax, byte [r10 + 0x1e]
or edx, eax
movzx eax, byte [r10 + 0x1d]
shl ax, 8
shl edx, 0x10
movzx eax, ax
or rdx, rax
movzx eax, byte [r10 + 0x1c]
or rdx, rax
movzx eax, byte [r10 + 0x1b]
shl ax, 8
shl rdx, 0x20
movzx ecx, ax
movzx eax, byte [r10 + 0x1a]
or eax, ecx
shl eax, 0x10
or rdx, rax
movzx eax, byte [r10 + 0x19]
shl ax, 8
movzx ecx, ax
movzx eax, byte [r10 + 0x18]
or rdx, rcx
lea rcx, [rdi + r8]
or rdx, rax
ror rcx, 0x38
add rcx, r11
lea rax, [rsi + rdx]
ror rax, 0x13
add rax, r9
ror r9, 0x26
add rax, r8
add r9, r14
xor rdi, r9
ror r11, 0x39
add r11, r13
xor rsi, r11
imul rax, r15
xor r14, rax
lea rax, [rcx + rdx]
imul rax, r12
xor r13, rax
cmp rbx, qword [rbp]
jb 0x1400563d0
mov r12, qword [rbp + 0x10]
and r12d, 0x1f
movabs r9, 0x9c06faf4d023e3ab
lea r8, [0x140000000]
cmp r12, 0x18
ja case.default.0x1400565df
movzx eax, byte [r8 + r12 + 0x569f0]
mov ecx, dword [r8 + rax*4 + 0x569e0]
add rcx, r8
jmp rcx
movzx eax, byte [rbx + 7]
shl ax, 8
movzx edx, ax
movzx eax, byte [rbx + 6]
or edx, eax
movzx eax, byte [rbx + 5]
shl ax, 8
shl edx, 0x10
movzx eax, ax
or rdx, rax
movzx eax, byte [rbx + 4]
or rdx, rax
movzx eax, byte [rbx + 3]
shl ax, 8
shl rdx, 0x20
movzx ecx, ax
movzx eax, byte [rbx + 2]
or eax, ecx
shl eax, 0x10
or rdx, rax
movzx eax, byte [rbx + 1]
shl ax, 8
movzx ecx, ax
movzx eax, byte [rbx]
or rdx, rcx
or rdx, rax
mov rax, r9
lea rcx, [rdi + rdx]
mul rcx
xor r13, rax
add rdi, rdx
add rbx, 8
movzx eax, byte [rbx + 7]
shl ax, 8
movzx edx, ax
movzx eax, byte [rbx + 6]
or edx, eax
movzx eax, byte [rbx + 5]
shl ax, 8
shl edx, 0x10
movzx eax, ax
or rdx, rax
movzx eax, byte [rbx + 4]
or rdx, rax
movzx eax, byte [rbx + 3]
shl ax, 8
shl rdx, 0x20
movzx ecx, ax
movzx eax, byte [rbx + 2]
or eax, ecx
shl eax, 0x10
or rdx, rax
movzx eax, byte [rbx + 1]
shl ax, 8
movzx ecx, ax
movzx eax, byte [rbx]
or rdx, rcx
or rdx, rax
movabs rax, 0xbd9cacc22c6e9571
lea rcx, [r13 + rdx]
mul rcx
xor r14, rax
add r13, rdx
add rbx, 8
movzx eax, byte [rbx + 7]
shl ax, 8
movzx edx, ax
movzx eax, byte [rbx + 6]
or edx, eax
movzx eax, byte [rbx + 5]
shl ax, 8
shl edx, 0x10
movzx eax, ax
or rdx, rax
movzx eax, byte [rbx + 4]
or rdx, rax
movzx eax, byte [rbx + 3]
shl ax, 8
shl rdx, 0x20
movzx ecx, ax
movzx eax, byte [rbx + 2]
or eax, ecx
shl eax, 0x10
or rdx, rax
movzx eax, byte [rbx + 1]
shl ax, 8
movzx ecx, ax
movzx eax, byte [rbx]
or rdx, rcx
or rdx, rax
movabs rax, 0xd4f06db99d67be4b
lea rcx, [r14 + rdx]
mul rcx
xor rsi, rax
add r14, rdx
add rbx, 8
and r12d, 7
xor ecx, ecx
mov eax, dword [r8 + r12*4 + 0x56a0c]
add rax, r8
jmp rax
movzx eax, byte [rbx + 7]
shl eax, 8
movsxd rcx, eax
movzx eax, byte [rbx + 6]
add rcx, rax
shl rcx, 8
movzx eax, byte [rbx + 5]
add rcx, rax
shl rcx, 8
movzx eax, byte [rbx + 4]
add rcx, rax
shl rcx, 8
movzx eax, byte [rbx + 3]
add rcx, rax
shl rcx, 8
movzx eax, byte [rbx + 2]
add rcx, rax
shl rcx, 8
movzx eax, byte [rbx + 1]
add rcx, rax
shl rcx, 8
movzx eax, byte [rbx]
add rax, rcx
lea rcx, [rsi + rax]
movabs rax, 0x82434fe90edcef39
mul rcx
xor rdi, rax
add rsi, rdx
mov rax, rsi
ror rax, 0x29
xor rax, rdi
lea rcx, [r14 + rax]
movabs rax, 0xec99bf0d8372caab
mul rcx
mov rcx, rdi
mov r11, rax
mov rax, r15
xor r11, r13
ror rcx, 0x17
lea r10, [r14 + rdx]
xor rcx, r11
add rcx, rsi
mul rcx
mov rcx, r11
xor r10, rax
ror rcx, 0x13
xor rcx, r10
add rcx, rdi
jmp 0x14005697a
movabs r11, 0xc060724a8424f345
cmp r8, 0x20
jbe 0x140056882
lea rax, [r8 + rdx - 0x1f]
mov r12, rax
nop word [rax + rax]
mov rax, rbx
add rbx, 0x20
mov r8, qword [rax]
mov rdx, qword [rax + 0x10]
mov rcx, qword [rax + 8]
mov r10, qword [rax + 0x18]
lea r9, [rdi + rdx]
ror r9, 0x38
lea rax, [rsi + r10]
add r9, r8
ror rax, 0x13
add rax, rcx
ror rcx, 0x26
add rax, rdx
add rcx, r14
xor rdi, rcx
ror r8, 0x39
add r8, r13
xor rsi, r8
imul rax, r15
xor r14, rax
lea rax, [r9 + r10]
imul rax, r11
xor r13, rax
cmp rbx, r12
jb 0x140056820
mov r12, qword [rbp + 0x10]
and r12d, 0x1f
movabs rdx, 0x9c06faf4d023e3ab
cmp r12, 0x18
ja case.default.0x1400568ad
lea r8, [0x140000000]
movzx eax, byte [r8 + r12 + 0x56a3c]
mov ecx, dword [r8 + rax*4 + 0x56a2c]
add rcx, r8
jmp rcx
mov rax, qword [rbx]
lea rcx, [rdi + rax]
mov rax, rdx
mul rcx
xor r13, rax
add rdi, rdx
add rbx, 8
mov rax, qword [rbx]
lea rcx, [r13 + rax]
movabs rax, 0xbd9cacc22c6e9571
mul rcx
xor r14, rax
add r13, rdx
add rbx, 8
mov rax, qword [rbx]
lea rcx, [r14 + rax]
movabs rax, 0xd4f06db99d67be4b
mul rcx
xor rsi, rax
add r14, rdx
add rbx, 8
or rdx, 0xffffffffffffffff
neg r12
movabs rax, 0x82434fe90edcef39
shl r12, 3
and r12d, 0x38
mov ecx, r12d
shr rdx, cl
and rdx, qword [rbx]
add rdx, rsi
mul rdx
xor rdi, rax
add rsi, rdx
mov rax, rsi
ror rax, 0x29
xor rax, rdi
lea rcx, [r14 + rax]
movabs rax, 0xec99bf0d8372caab
mul rcx
mov rcx, rdi
mov r11, rax
mov rax, r15
xor r11, r13
ror rcx, 0x17
lea r10, [r14 + rdx]
xor rcx, r11
add rcx, rsi
mul rcx
xor r10, rax
mov rax, r11
ror rax, 0x13
xor rax, r10
lea rcx, [rdi + rax]
lea r9, [rsi + rdx]
movabs rax, 0xc060724a8424f345
mul rcx
mov rcx, r10
xor r9, rax
ror rcx, 0x1f
movabs rax, 0x9c06faf4d023e3ab
xor rcx, r9
lea r8, [rdi + rdx]
add rcx, r11
mul rcx
mov rcx, qword [rbp + 8]
xor r8, rax
lea rax, [r9 + r8]
mov qword [rcx], rax
lea rax, [rdx + r11]
xor rax, r10
mov rcx, qword [rbp + 0x18]
xor rcx, rsp
call fcn.1400a4e70
add rsp, 0x48
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret