Function at 0x1400900e0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x718
mov qword [rsp + 0x28], rcx
mov ecx, 0x14
mov ebp, 0x88888889
mov qword [rsp + 0x30], rdx
mov rbx, rdx
shr rbx, 0x20
jmp 0x14009016e
mov rax, qword [rsp + 0x30]
xor edx, edx
div rsi
mov dword [rsp + rcx + 0x588], edx
imul eax, edi, 0x18d517
xor eax, 0x352e09df
mov dword [rsp + rcx + 0x58c], eax
imul r8d, eax, 0x18d517
xor r8d, 0x352e09df
mov rax, r8
imul rax, rbp
shr rax, 0x27
imul eax, eax, 0xf0
neg eax
add eax, r8d
add eax, 0x10
mov dword [rsp + rcx + 0x590], eax
add rcx, 0x18
cmp rcx, 0x194
je 0x1400901c4
imul eax, r8d, 0x18d517
xor eax, 0x352e09df
mov rdx, rax
imul rdx, rbp
shr rdx, 0x27
imul edx, edx, 0xf0
neg edx
lea esi, [rax + rdx]
add esi, 0x10
mov dword [rsp + rcx + 0x580], esi
imul edi, eax, 0x18d517
xor edi, 0x352e09df
mov dword [rsp + rcx + 0x584], edi
test rbx, rbx
jne 0x140090110
mov rax, qword [rsp + 0x30]
xor edx, edx
div esi
jmp 0x14009011a
mov rax, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x28]
add rax, rbp
add rax, 0xffffffffffffffff
mov qword [rsp + 0x40], rax
lea rax, [rbp - 1]
mov qword [rsp + 0x60], rax
lea rax, [rbp + 1]
mov qword [rsp + 0x38], rax
lea rax, [rbp + 3]
mov qword [rsp + 0x58], rax
mov ebx, 0xf
jmp 0x14009020f
mov rbx, qword [rsp + 0x68]
sub rbx, 1
jb 0x1400909a0
cmp qword [rsp + 0x40], rbp
jbe 0x140090240
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x40]
movzx edx, byte [rax - 1]
xor dl, byte [rcx]
mov byte [rax - 1], dl
xor dl, byte [rcx]
mov byte [rcx], dl
xor byte [rax - 1], dl
add rcx, 0xffffffffffffffff
lea rdx, [rax + 1]
cmp rax, rcx
mov rax, rdx
jb 0x140090220
mov qword [rsp + 0x68], rbx
lea r8, [rbx + rbx*2]
mov eax, dword [rsp + r8*8 + 0x5a4]
add rax, qword [rsp + 0x60]
cmp rax, rbp
jbe 0x140090280
mov rcx, qword [rsp + 0x38]
movzx edx, byte [rcx - 1]
xor dl, byte [rax]
mov byte [rcx - 1], dl
xor dl, byte [rax]
mov byte [rax], dl
xor byte [rcx - 1], dl
add rax, 0xffffffffffffffff
lea rdx, [rcx + 1]
cmp rcx, rax
mov rcx, rdx
jb 0x140090260
mov edi, dword [rsp + r8*8 + 0x594]
test rdi, rdi
je 0x14009040a
lea rcx, [rdi - 1]
mov eax, edi
and eax, 7
cmp rcx, 7
jae 0x1400902b0
xor ecx, ecx
jmp 0x14009031d
mov edx, edi
and edx, 0xfffffff8
xor ecx, ecx
nop word [rax + rax]
mov byte [rsp + rcx + 0x190], cl
lea ebp, [rcx + 1]
mov byte [rsp + rcx + 0x191], bpl
lea ebp, [rcx + 2]
mov byte [rsp + rcx + 0x192], bpl
lea ebp, [rcx + 3]
mov byte [rsp + rcx + 0x193], bpl
lea ebp, [rcx + 4]
mov byte [rsp + rcx + 0x194], bpl
lea ebp, [rcx + 5]
mov byte [rsp + rcx + 0x195], bpl
lea ebp, [rcx + 6]
mov byte [rsp + rcx + 0x196], bpl
lea ebp, [rcx + 7]
mov byte [rsp + rcx + 0x197], bpl
add rcx, 8
cmp rdx, rcx
jne 0x1400902c0
test rax, rax
je 0x140090341
nop word cs:[rax + rax]
nop dword [rax]
mov byte [rsp + rcx + 0x190], cl
add rcx, 1
add rax, 0xffffffffffffffff
jne 0x140090330
mov ecx, dword [rsp + r8*8 + 0x598]
cmp edi, 1
jne 0x140090360
xor ebp, ebp
jmp 0x1400903d9
mov esi, edi
and esi, 0xfffffffe
xor ebp, ebp
nop word [rax + rax]
imul ecx, ecx, 0x18d517
xor ecx, 0x352e09df
mov eax, ecx
xor edx, edx
div edi
movzx eax, byte [rsp + rbp + 0x190]
movzx ebx, byte [rsp + rdx + 0x190]
mov byte [rsp + rbp + 0x190], bl
mov byte [rsp + rdx + 0x190], al
imul ecx, ecx, 0x18d517
xor ecx, 0x352e09df
mov eax, ecx
xor edx, edx
div edi
movzx eax, byte [rsp + rbp + 0x191]
movzx ebx, byte [rsp + rdx + 0x190]
mov byte [rsp + rbp + 0x191], bl
mov byte [rsp + rdx + 0x190], al
add rbp, 2
cmp rsi, rbp
jne 0x140090370
test dil, 1
je 0x14009040a
imul eax, ecx, 0x18d517
xor eax, 0x352e09df
xor edx, edx
div edi
mov al, byte [rsp + rbp + 0x190]
mov cl, byte [rsp + rdx + 0x190]
mov byte [rsp + rbp + 0x190], cl
mov byte [rsp + rdx + 0x190], al
mov qword [rsp + 0x50], rdi
mov esi, dword [rsp + r8*8 + 0x59c]
test rsi, rsi
je 0x14009059a
lea rcx, [rsi - 1]
mov eax, esi
and eax, 7
cmp rcx, 7
jae 0x140090440
xor ecx, ecx
jmp 0x1400904ad
mov edx, esi
and edx, 0xfffffff8
xor ecx, ecx
nop word [rax + rax]
mov byte [rsp + rcx + 0x90], cl
lea ebp, [rcx + 1]
mov byte [rsp + rcx + 0x91], bpl
lea ebp, [rcx + 2]
mov byte [rsp + rcx + 0x92], bpl
lea ebp, [rcx + 3]
mov byte [rsp + rcx + 0x93], bpl
lea ebp, [rcx + 4]
mov byte [rsp + rcx + 0x94], bpl
lea ebp, [rcx + 5]
mov byte [rsp + rcx + 0x95], bpl
lea ebp, [rcx + 6]
mov byte [rsp + rcx + 0x96], bpl
lea ebp, [rcx + 7]
mov byte [rsp + rcx + 0x97], bpl
add rcx, 8
cmp rdx, rcx
jne 0x140090450
test rax, rax
je 0x1400904d1
nop word cs:[rax + rax]
nop dword [rax]
mov byte [rsp + rcx + 0x90], cl
add rcx, 1
add rax, 0xffffffffffffffff
jne 0x1400904c0
mov ecx, dword [rsp + r8*8 + 0x5a0]
cmp esi, 1
jne 0x1400904f0
xor ebp, ebp
jmp 0x140090569
mov edi, esi
and edi, 0xfffffffe
xor ebp, ebp
nop word [rax + rax]
imul ecx, ecx, 0x18d517
xor ecx, 0x352e09df
mov eax, ecx
xor edx, edx
div esi
movzx eax, byte [rsp + rbp + 0x90]
movzx ebx, byte [rsp + rdx + 0x90]
mov byte [rsp + rbp + 0x90], bl
mov byte [rsp + rdx + 0x90], al
imul ecx, ecx, 0x18d517
xor ecx, 0x352e09df
mov eax, ecx
xor edx, edx
div esi
movzx eax, byte [rsp + rbp + 0x91]
movzx ebx, byte [rsp + rdx + 0x90]
mov byte [rsp + rbp + 0x91], bl
mov byte [rsp + rdx + 0x90], al
add rbp, 2
cmp rdi, rbp
jne 0x140090500
test sil, 1
je 0x14009059a
imul eax, ecx, 0x18d517
xor eax, 0x352e09df
xor edx, edx
div esi
mov al, byte [rsp + rbp + 0x90]
mov cl, byte [rsp + rdx + 0x90]
mov byte [rsp + rbp + 0x90], cl
mov byte [rsp + rdx + 0x90], al
mov r8d, 0x100
lea rcx, [rsp + 0x290]
xor edx, edx
mov qword [rsp + 0x48], rsi
call fcn.14008fc70
mov r8d, 0x100
lea rcx, [rsp + 0x490]
xor edx, edx
call fcn.14008fc70
mov r8d, 0x100
lea rcx, [rsp + 0x390]
xor edx, edx
call fcn.14008fc70
mov r10, qword [rsp + 0x48]
mov r9, qword [rsp + 0x50]
test r9d, r9d
mov rdi, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x28]
je 0x1400906a9
lea rcx, [r9 - 1]
mov eax, r9d
and eax, 3
cmp rcx, 3
jae 0x140090620
xor ecx, ecx
test rax, rax
jne 0x140090690
jmp 0x1400906a9
mov edx, r9d
and edx, 0xfffffffc
xor ecx, ecx
nop dword [rax + rax]
movzx ebp, byte [rsp + rcx + 0x190]
mov byte [rsp + rbp + 0x490], cl
movzx ebp, byte [rsp + rcx + 0x191]
lea ebx, [rcx + 1]
mov byte [rsp + rbp + 0x490], bl
movzx ebp, byte [rsp + rcx + 0x192]
lea ebx, [rcx + 2]
mov byte [rsp + rbp + 0x490], bl
movzx ebp, byte [rsp + rcx + 0x193]
lea ebx, [rcx + 3]
mov byte [rsp + rbp + 0x490], bl
add rcx, 4
cmp rdx, rcx
jne 0x140090630
mov rbp, qword [rsp + 0x28]
test rax, rax
je 0x1400906a9
nop dword [rax + rax]
movzx edx, byte [rsp + rcx + 0x190]
mov byte [rsp + rdx + 0x490], cl
add rcx, 1
add rax, 0xffffffffffffffff
jne 0x140090690
test r10d, r10d
je 0x140090759
lea rcx, [r10 - 1]
mov eax, r10d
and eax, 3
cmp rcx, 3
jae 0x1400906d0
xor ecx, ecx
test rax, rax
jne 0x140090740
jmp 0x140090759
mov edx, r10d
and edx, 0xfffffffc
xor ecx, ecx
nop dword [rax + rax]
movzx ebp, byte [rsp + rcx + 0x90]
mov byte [rsp + rbp + 0x390], cl
movzx ebp, byte [rsp + rcx + 0x91]
lea ebx, [rcx + 1]
mov byte [rsp + rbp + 0x390], bl
movzx ebp, byte [rsp + rcx + 0x92]
lea ebx, [rcx + 2]
mov byte [rsp + rbp + 0x390], bl
movzx ebp, byte [rsp + rcx + 0x93]
lea ebx, [rcx + 3]
mov byte [rsp + rbp + 0x390], bl
add rcx, 4
cmp rdx, rcx
jne 0x1400906e0
mov rbp, qword [rsp + 0x28]
test rax, rax
je 0x140090759
nop dword [rax + rax]
movzx edx, byte [rsp + rcx + 0x90]
mov byte [rsp + rdx + 0x390], cl
add rcx, 1
add rax, 0xffffffffffffffff
jne 0x140090740
test rdi, rdi
je 0x140090200
lea rax, [r9 - 1]
mov qword [rsp + 0x88], rax
lea rax, [r10 - 1]
mov qword [rsp + 0x80], rax
mov r14d, r9d
and r14d, 3
mov eax, r9d
and eax, 0xfffffffc
mov qword [rsp + 0x78], rax
mov r13d, r10d
and r13d, 3
mov eax, r10d
and eax, 0xfffffffc
mov qword [rsp + 0x70], rax
mov r12, rbp
mov rsi, qword [rsp + 0x58]
xor r15d, r15d
jmp 0x1400907e0
mov rdi, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x28]
lea rdx, [rsp + 0x290]
call fcn.14008fd00
mov r10, qword [rsp + 0x48]
mov r9, qword [rsp + 0x50]
add rsi, r9
add r12, r9
cmp r15, rdi
jae 0x140090200
lea rcx, [r15 + rbp]
add r15, r9
cmp r15, rdi
jbe 0x140090810
mov r8, r10
test r10d, r10d
je 0x1400907ba
cmp qword [rsp + 0x80], 3
jae 0x140090834
mov r9, rdi
mov rdi, rbp
xor eax, eax
jmp 0x1400908a8
mov r8, r9
test r9d, r9d
je 0x1400907ba
cmp qword [rsp + 0x88], 3
jae 0x1400908f1
mov r10, rdi
mov rdi, rbp
xor eax, eax
jmp 0x140090958
mov r9, rdi
mov rdi, rbp
xor eax, eax
mov rbp, qword [rsp + 0x70]
nop word cs:[rax + rax]
nop dword [rax + rax]
movzx edx, byte [rsp + rax + 0x390]
movzx ebx, byte [rsi + rax - 3]
mov byte [rsp + rdx + 0x290], bl
movzx edx, byte [rsp + rax + 0x391]
movzx ebx, byte [rsi + rax - 2]
mov byte [rsp + rdx + 0x290], bl
movzx edx, byte [rsp + rax + 0x392]
movzx ebx, byte [rsi + rax - 1]
mov byte [rsp + rdx + 0x290], bl
movzx edx, byte [rsp + rax + 0x393]
movzx ebx, byte [rsi + rax]
mov byte [rsp + rdx + 0x290], bl
add rax, 4
cmp rbp, rax
jne 0x140090850
mov r8, r10
test r13, r13
mov rbp, rdi
mov rdi, r9
je 0x1400907ba
lea rbp, [r12 + rax]
add rax, rsp
add rax, 0x390
xor ebx, ebx
nop dword [rax]
movzx edi, byte [rax + rbx]
movzx edx, byte [rbp + rbx]
mov byte [rsp + rdi + 0x290], dl
add rbx, 1
cmp r13, rbx
jne 0x1400908d0
mov r8, r10
jmp 0x1400907b0
mov r10, rdi
mov rdi, rbp
xor eax, eax
mov rbp, qword [rsp + 0x78]
nop
movzx edx, byte [rsp + rax + 0x490]
movzx ebx, byte [rsi + rax - 3]
mov byte [rsp + rdx + 0x290], bl
movzx edx, byte [rsp + rax + 0x491]
movzx ebx, byte [rsi + rax - 2]
mov byte [rsp + rdx + 0x290], bl
movzx edx, byte [rsp + rax + 0x492]
movzx ebx, byte [rsi + rax - 1]
mov byte [rsp + rdx + 0x290], bl
movzx edx, byte [rsp + rax + 0x493]
movzx ebx, byte [rsi + rax]
mov byte [rsp + rdx + 0x290], bl
add rax, 4
cmp rbp, rax
jne 0x140090900
mov r8, r9
test r14, r14
mov rbp, rdi
mov rdi, r10
je 0x1400907ba
lea rdi, [r12 + rax]
add rax, rsp
add rax, 0x490
xor ebx, ebx
nop dword [rax]
movzx ebp, byte [rax + rbx]
movzx edx, byte [rdi + rbx]
mov byte [rsp + rbp + 0x290], dl
add rbx, 1
cmp r14, rbx
jne 0x140090980
mov r8, r9
jmp 0x1400907b0
add rsp, 0x718
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret