Function at 0x140070560
Capabilities:
Encode data using xor

Disassembly:
push rdi
push r14
mov dword [rsp - 0x40], 0x5a8152bf
push r15
sub rsp, 0x30
cmp qword [rcx + 0x10], 0
mov dword [rsp - 0x30], ebx
mov r14, r8
mov rdi, rdx
mov r15, rcx
mov dword [rsp - 0x1c], ebx
je 0x1400705c9
mov byte [r8], 0x10
add byte [r8], 0x50
mov dword [rsp - 0xc], 0x788433c2
xor byte [r8], 0x3b
sub byte [r8], 0x1f
add byte [r8], 0x25
mov r9, r9
xor byte [r8], 0x60
mov al, 0x11
add al, 0x2f
xor al, 0x75
mov dword [rsp - 0x30], edx
xor al, 0x6c
sub al, 0x58
add rsp, 0x30
mov dword [rsp - 0x40], esi
pop r15
pop r14
pop rdi
ret
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], rbp
mov rbp, qword [rdx + 8]
mov rdi, rdi
mov qword [rsp + 0x60], rsi
mov rsi, rdi
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r13
mov dword [rsp - 0x30], esi
cmp rbp, 4
jbe 0x1400705f9
mov rsi, qword [rdx]
lea rcx, [rbp + 1]
xchg rsi, rsi
mov eax, 0x101d289b
sub eax, 0xd02c75b
add eax, 0x648f579e
mov rdi, rdi
sub eax, 0x531b30fb
xor eax, 0x5d2a47de
sub eax, 0x2148d4b1
xchg rdx, rdx
sub eax, 0x285beb8a
mul rcx
pushf
movabs r13, 0xffffffff2335b97d
xchg r15, r15
xor r13, 0x338e8bf1
add r13, 0x5c63687e
sub r13, 0x378deb09
add r13, 0x7fffffff
xchg rcx, rcx
add r13, 0x4a6f4fff
popf
cmovo rax, r13
xchg rdx, rdx
mov rcx, rax
call fcn.140073cf0
xor r12d, r12d
xchg rbp, rbp
mov rbx, rax
mov r9d, r12d
test rbp, rbp
je 0x140070702
mov dword [rsp - 0x38], 0x4ab18ff7
mov r8, rax
sub rsi, rax
nop word [rax + rax]
mov r10, r10
movzx ecx, r9b
lea r8, [r8 + 2]
and cl, 3
mov dword [rsp - 0x34], esp
mov edx, 0x100ac0fe
xor edx, 0x7524ba83
sub edx, 0x4ffcceda
add edx, 0x352450ff
mov rdx, rdx
sub edx, 0x1d11b881
xor edx, 0x17f5eb48
sub edx, 0x225e50e4
mov rbx, rbx
shl cl, 3
inc r9
sar edx, cl
xchg rdi, rdi
movsx eax, dl
xor ax, word [rsi + r8 - 2]
mov word [r8 - 2], ax
cmp r9, rbp
mov dword [rsp - 0x34], 0x303ae507
jb 0x14007069e
mov word [rbx + rbp*2], r12w
mov r8, rbx
xchg rdi, rdi
mov rax, qword [0x1400a4f10]
xor edx, edx
xor rax, qword [0x1400a4ab0]
mov ecx, 0x311112a8
mov dword [rsp - 0x10], ebx
sub ecx, 0x30b4a88
add ecx, 0x70002fb
xor ecx, 0x5b79662e
sub ecx, 0x1b69f327
mov r8, r8
sub ecx, 0x377481c8
sub ecx, 0x1b7f3845
call rax
mov dword [rsp - 0x24], edi
mov rcx, rbx
mov rsi, rax
call fcn.140073d00
mov r14, r14
mov rbp, qword [rsp + 0x58]
test rsi, rsi
je 0x1400707bd
mov rax, qword [0x1400a4bf0]
mov dword [rsp - 0x10], 0x5180bd95
mov rcx, rsi
xor rax, qword [0x1400a4ab0]
call rax
mov dword [rsp - 0x28], 0x2b44721f
xor al, al
mov byte [r14], 0x16
xor byte [r14], 1
sub byte [r14], 0x12
mov dword [rsp - 0x14], 0x1731fc48
add byte [r14], 0x1c
xor byte [r14], 0x1d
sub byte [r14], 0x3b
mov dword [rsp - 0x40], 0x791f6ca3
jmp 0x140070938
mov rsi, qword [rdi + 8]
cmp rsi, 4
jbe 0x1400707d2
mov dword [rsp - 0x18], 0x241ed5fc
mov rdi, qword [rdi]
lea rcx, [rsi + 1]
mov eax, 0x2ffc74f
mov dword [rsp - 0x40], 0x4f323dd3
add eax, 0x31add0a
xor eax, 0x699b19f8
xor eax, 0x14f91c07
sub eax, 0x7b78a1a4
mov dword [rsp - 0x38], 0xb35c0d9
mul rcx
cmovo rax, r13
mov rcx, rax
mov dword [rsp - 0x14], ebx
call fcn.140073cf0
mov rbx, rax
mov r9, r12
mov r11, r11
test rsi, rsi
je 0x140070891
mov r8, rax
sub rdi, rax
mov dword [rsp - 0x28], 0x4f91958d
nop dword [rax]
nop word [rax + rax]
movzx ecx, r9b
lea r8, [r8 + 2]
mov dword [rsp - 0x18], esi
and cl, 3
mov edx, 0x219ed052
add edx, 0x41422849
sub edx, 0x52febe3
mov r12, r12
xor edx, 0x3c3f67b7
sub edx, 0x493b0c8a
shl cl, 3
mov dword [rsp - 0x44], 0x6f62acb5
inc r9
sar edx, cl
movsx eax, dl
xor ax, word [rdi + r8 - 2]
mov dword [rsp - 0x28], ebp
mov word [r8 - 2], ax
cmp r9, rsi
jb 0x14007083b
mov word [rbx + rsi*2], r12w
mov rdx, rdx
mov r8, rbx
mov rax, qword [0x1400a4f00]
mov edx, 0x2bf560fd
mov rdi, rdi
sub edx, 0x24e5f1ab
xor edx, 0x65c2d7db
sub edx, 0x4f7cff40
sub edx, 0x1350b948
mov dword [rsp - 0x18], 0x9ca7da8
xor rax, qword [0x1400a4ab0]
xor ecx, ecx
call rax
mov dword [rsp - 0x30], ecx
mov rcx, rbx
mov qword [r15 + 0x10], rax
call fcn.140073d00
mov dword [rsp - 0x28], 0x2c147ae2
cmp qword [r15 + 0x10], r12
jne 0x14007091e
mov rax, qword [0x1400a4e40]
mov rsi, rsi
xor rax, qword [0x1400a4ab0]
call rax
cmp eax, 0xb7
mov dword [rsp - 0x1c], 0x4de9a6c4
sete al
mov byte [r14], al
xor al, al
jmp 0x140070938
mov byte [r14], r12b
mov al, 0x55
sub al, 0x1d
xchg r8, r8
add al, 3
add al, 0x17
sub al, 0x36
mov dword [rsp - 0x14], 0x3e01340
sub al, 0x1b
mov r12, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x60]
mov r9, r9
mov rbx, qword [rsp + 0x50]
mov r13, qword [rsp + 0x20]
add rsp, 0x30
pop r15
mov dword [rsp - 0x30], 0x3577ba88
pop r14
pop rdi
ret