Function at 0x14023b570
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x198
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x110], 0xfffffffffffffffe
mov ebx, r8d
mov rsi, rcx
mov qword [rdx + 0x18], 0
mov qword [rdx + 0x20], 0xf
mov byte [rdx + 8], 0
lea r13, [0x140400808]
mov qword [rbp + 0x100], rdx
mov qword [rdx], r13
mov eax, dword [0x1405326b8]
mov ecx, dword [0x14053503c]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 0x26838]
jg 0x14023ba79
mov rdx, qword [0x1405326a8]
mov rdi, qword [rsi + 0x18]
cmp qword [rsi + 0x20], 0x10
jb 0x14023b5fe
mov rax, qword [rsi + 8]
jmp 0x14023b602
lea rax, [rsi + 8]
test rdx, rdx
setne cl
mov r8, qword [0x1404f6358]
movabs r9, 0xcdc131e77078c117
xor r9, r8
movabs r10, 0x4dc131e77078c117
and r10, r8
lea r8, [r9 + r10*2]
cmp rdi, r8
setne r8b
mov r9d, ecx
xor r9b, r8b
or r8b, cl
xor r8b, 1
or r8b, r9b
jne 0x14023b8e2
cmp qword [0x1405326b0], 0x10
jb 0x14023b65d
mov rcx, qword [0x140532698]
jmp 0x14023b664
lea rcx, [0x140532698]
xorps xmm0, xmm0
movaps xmmword [rbp + 0xa0], xmm0
movaps xmmword [rbp + 0x90], xmm0
movaps xmmword [rbp + 0x80], xmm0
movaps xmmword [rbp + 0x70], xmm0
movaps xmmword [rbp + 0x60], xmm0
movaps xmmword [rbp + 0x50], xmm0
movaps xmmword [rbp + 0x40], xmm0
movaps xmmword [rbp + 0x30], xmm0
movaps xmmword [rbp + 0x20], xmm0
movaps xmmword [rbp + 0x10], xmm0
movaps xmmword [rbp], xmm0
movaps xmmword [rbp - 0x10], xmm0
movaps xmmword [rbp - 0x20], xmm0
movaps xmmword [rbp - 0x30], xmm0
movaps xmmword [rbp - 0x40], xmm0
movaps xmmword [rbp - 0x50], xmm0
movabs r8, 0xcdc131e77078c116
mov r10, qword [0x1404f6358]
add r10, r8
xor r10, rdx
mov r9d, r10d
not r9d
xor r10, 0xfffffffffffffff8
and r9d, 7
or r10, r9
mov r11, r10
not r11
or r11, r9
xor r11, 7
and r10, 0xfffffffffffffff8
or r10, r11
xor r10, 0xffffffffffffffff
mov r9, rcx
je 0x14023b741
lea r9, [rcx + 1]
xor r11d, r11d
movabs r14, 0xd2cb95028ceda5
movabs r15, 0x316c02838cfa5144
movzx r12d, byte [r9 - 1]
sub r11, qword [0x1404f6358]
mov byte [rbp + r12 - 0x50], 1
add r11, r14
mov r12, r11
xor r12, 1
and r11d, 1
lea r11, [r12 + r11*2]
add r11, r15
cmp r11, r10
je 0x14023b741
inc r9
jmp 0x14023b710
mov r10, qword [0x1404f6358]
movabs r11, 0xcdc131e77078c11f
xor r11, r10
movabs r14, 0x323ece188f873ee0
xor r14, r10
and r14, r10
lea r10, [r11 + r14*2]
cmp rdx, r10
jb 0x14023b7f5
add rcx, rdx
nop word cs:[rax + rax]
movzx edx, byte [r9]
mov byte [rbp + rdx - 0x50], 1
movzx edx, byte [r9 + 1]
mov byte [rbp + rdx - 0x50], 1
movzx edx, byte [r9 + 2]
movzx r10d, byte [0x1404f6360]
lea r11d, [r10 - 0x10]
mov byte [rbp + rdx - 0x50], r11b
movzx edx, byte [r9 + 3]
mov byte [rbp + rdx - 0x50], r11b
movzx edx, byte [r9 + 4]
mov r11d, r10d
xor r11b, 0xf0
and r10b, 0x70
add r10b, r10b
add r10b, r11b
mov byte [rbp + rdx - 0x50], r10b
movzx edx, byte [r9 + 5]
mov byte [rbp + rdx - 0x50], 1
movzx edx, byte [r9 + 6]
mov byte [rbp + rdx - 0x50], 1
movzx edx, byte [r9 + 7]
mov byte [rbp + rdx - 0x50], 1
add r9, 8
cmp r9, rcx
jne 0x14023b780
mov rcx, qword [0x1404f6358]
xor r8, rcx
movabs rdx, 0x4dc131e77078c116
and rdx, rcx
lea rcx, [r8 + rdx*2]
mov rdx, rdi
xor rdx, rcx
and rcx, rdi
lea rcx, [rdx + rcx*2]
movzx edx, byte [0x140532754]
add dl, byte [rax + rcx]
movzx edx, dl
cmp byte [rbp + rdx - 0x50], 0
je 0x14023b843
add rcx, rax
jmp 0x14023b85e
dec rcx
test rcx, rcx
je 0x14023b8e2
movzx edx, byte [rax + rcx - 1]
cmp byte [rbp + rdx - 0x50], 0
je 0x14023b840
add rcx, rax
dec rcx
mov rdx, qword [0x1405316a0]
mov r8, rdx
xor r8, rcx
and rdx, rcx
add rdx, rdx
mov rcx, r8
xor rcx, rdx
and rdx, r8
lea rcx, [rcx + rdx*2]
mov rdx, rax
neg rdx
mov r8, rcx
xor r8, rdx
and rdx, rcx
lea rcx, [r8 + rdx*2]
cmp rcx, 0xffffffffffffffff
je 0x14023b8e2
mov qword [rbp + 0xf0], 0
mov qword [rbp + 0xf8], 0xf
mov byte [rbp + 0xe0], 0
cmp rdi, rcx
jbe 0x14023bb2e
lea rdx, [rcx + 1]
sub rdi, rdx
lea r9, [rax + rcx]
inc r9
cmp rdi, 0xf
jbe 0x14023b91c
lea rcx, [rbp + 0xe0]
mov rdx, rdi
call fcn.140087e80
jmp 0x14023b93d
mov rcx, qword [rbp + 0x100]
mov rdx, rsi
call fcn.140243cb0
test bl, bl
jne 0x14023b901
mov rcx, qword [rbp + 0x100]
call fcn.14023a0e0
mov rax, qword [rbp + 0x100]
add rsp, 0x198
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov qword [rbp + 0xf0], rdi
lea rcx, [rbp + 0xe0]
mov rdx, r9
mov r8, rdi
call fcn.1403e3a10
mov byte [rbp + rdi + 0xe0], 0
xorps xmm0, xmm0
movups xmmword [rbp + 0xd0], xmm0
mov r14, qword [rbp + 0xf0]
cmp qword [rbp + 0xf8], 0x10
jb 0x14023b961
mov rdi, qword [rbp + 0xe0]
jmp 0x14023b968
lea rdi, [rbp + 0xe0]
lea rsi, [rbp + 0xc0]
cmp r14, 0xf
ja 0x14023b983
movups xmm0, xmmword [rdi]
movups xmmword [rsi], xmm0
mov r15d, 0xf
jmp 0x14023b9fd
mov r15, r14
or r15, 0xf
movabs rax, 0x7fffffffffffffff
cmp r15, rax
cmovae r15, rax
cmp r15, 0xfff
jb 0x14023b9c7
lea rcx, [r15 + 0x28]
call fcn.1403bba7c
mov rcx, rax
xor rcx, 0x27
mov edx, eax
and edx, 0x27
lea rcx, [rcx + rdx*2]
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
jmp 0x14023b9d3
lea rcx, [r15 + 1]
call fcn.1403bba7c
mov rcx, rax
mov qword [rbp + 0xc0], rcx
lea rax, [r14 + r14]
sub rax, r14
add rax, qword [0x1404f6358]
movabs r8, 0xcdc131e77078c118
add r8, rax
mov rdx, rdi
call fcn.1403e3a10
mov qword [rbp + 0xd0], r14
mov qword [rbp + 0xd8], r15
lea rax, [0x1403fe9c8]
mov qword [rbp + 0xb8], rax
lea rcx, [rbp - 0x48]
xorps xmm0, xmm0
movups xmmword [rbp - 0x38], xmm0
cmp r15, 0x10
setae r8b
or r8b, byte [0x140531b40]
mov r9, qword [rbp + 0xc0]
mov edx, dword [0x140532748]
lea eax, [rdx - 1]
imul eax, edx
mov edx, dword [0x1404f6350]
mov r10d, edx
xor r10d, 0x74c02b05
and edx, 0x74c02b05
lea r10d, [r10 + rdx*2]
add r10d, 0x9d0d89b5
xor edx, edx
div r10d
test edx, edx
jne 0x14023bb45
jmp 0x14023bb33
mov dword [rsp + 0x28], 0xe1888d67
mov dword [rsp + 0x20], 0xc85f93b
lea rdx, [0x1405326b8]
xor ecx, ecx
xor r8d, r8d
xor r9d, r9d
call fcn.140240e70
mov eax, dword [0x1404f6350]
mov ecx, eax
xor ecx, 0x6e324b48
and ecx, eax
xor eax, 0x11cdb4b7
lea eax, [rax + rcx*2]
cmp dword [0x1405326b8], eax
jne 0x14023b5e6
xor ecx, ecx
mov edx, 1
mov r8d, 0x679a1bb6
mov r9d, 0x53e49062
call fcn.140241100
lea rcx, [0x140532690]
mov rdx, rax
call fcn.1400ac550
lea rcx, [0x140239570]
mov edx, 0x2d33865
mov r8d, 0x1b9af8ef
call fcn.1400a8220
mov dword [rsp + 0x28], 0xe1888d67
mov dword [rsp + 0x20], 0xc85f93b
lea rdx, [0x1405326b8]
mov ecx, 1
mov r8d, 1
xor r9d, r9d
call fcn.140240e70
jmp 0x14023b5e6
call fcn.1400f5a50
mov rdi, qword [0x1404f58f8]
mov eax, dword [0x14053274c]
cmp eax, 0x26
jl 0x14023bb5d
mov al, 1
nop word [rax + rax]
mov rdx, qword [0x1404f58f8]
test al, al
je 0x14023bb50
jmp 0x14023bb33
mov byte [rbp + 0x10f], bl
mov eax, dword [0x140532748]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
jne 0x14023c14d
jmp 0x14023c13f
mov r13, r14
or r13, 0xf
movabs rax, 0x7fffffffffffffff
cmp r13, rax
cmovae r13, rax
cmp r13, 0xfff
jb 0x14023bbd9
lea rcx, [r13 + 0x28]
call fcn.1403bba7c
mov rdx, 0xffffffffffffffd8
sub rdx, rax
mov rcx, rax
add rcx, 0x27
mov r8d, ecx
xor rcx, 0x1f
and rcx, rdx
and rdx, 0xffffffffffffffe0
and r8d, 0x1f
or r8, rdx
or rcx, r8
not rcx
mov qword [rcx - 8], rax
jmp 0x14023bbe5
lea rcx, [r13 + 1]
call fcn.1403bba7c
mov rcx, rax
mov qword [rbp - 0x48], rcx
mov rax, qword [0x1404f6358]
add rax, r14
movabs r8, 0xcdc131e77078c118
add r8, rax
mov rdx, rsi
call fcn.1403e3a10
add r15, rdi
mov qword [rbp - 0x38], r14
mov qword [rbp - 0x30], r13
lea rax, [fcn.14023b570]
add eax, eax
add eax, 0x4460
mov ecx, eax
not ecx
nop word cs:[rax + rax]
mov edx, dword [0x14053274c]
cmp edx, 0x62
jg 0x14023bc3f
test ecx, eax
je 0x14023bc4c
mov edx, dword [0x14053274c]
cmp edx, 0x2e
jge 0x14023bc30
jmp 0x14023bc3b
mov eax, dword [0x1404f58e0]
mov esi, eax
xor esi, 1
lea rcx, [fcn.14023b570]
add ecx, ecx
add ecx, 0x4c60
mov edx, ecx
not edx
test edx, ecx
mov r14, rbx
jne 0x14023bc77
mov cl, 1
test cl, cl
jne 0x14023bc97
mov ecx, 0x11cdb50d
nop dword [rax]
mov edx, dword [0x14053274c]
mov r8d, dword [0x1404f6350]
add r8d, ecx
cmp edx, r8d
jge 0x14023bc80
jmp 0x14023bc71
mov ecx, dword [0x1404f6350]
mov edx, eax
not edx
mov r8d, 0xee324b46
sub r8d, ecx
add ecx, 0x11cdb4b9
and ecx, edx
mov r9d, eax
and r9d, r8d
or r9d, ecx
and r8d, edx
xor r8d, r9d
not r8d
add r8d, r8d
add esi, r8d
mov dword [0x1404f58e0], esi
xor edi, edi
and esi, eax
movzx ebx, byte [rbp + 0x10f]
jne 0x14023bd9c
mov ecx, dword [0x140532748]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, 0x11cdb4ba
add ecx, dword [0x1404f6350]
xor edi, edi
xor edx, edx
div ecx
test edx, edx
je 0x14023bd52
mov r9d, dword [0x1404f6350]
lea ecx, [r9 + 0x11cdb4e9]
lea edx, [r9 - 0x3b995d1]
lea r8d, [r9 + 0x295bf3d8]
add r9d, 0x56779979
call fcn.140108340
mov qword [0x1405326f0], rax
mov r8d, dword [0x1404f6350]
lea edx, [r8 + 0x14a0ed1d]
add r8d, 0x2d68ada7
lea rcx, [0x140240de0]
call fcn.1400a8220
test r12d, r12d
jle 0x14023bd9c
xor eax, eax
xor ecx, ecx
nop dword [rax + rax]
cdqe
mov edx, dword [r15 + rax]
mov r8d, edx
not r8d
mov r9d, r8d
xor r9d, ecx
and r9d, r8d
or r9d, ecx
not r9d
not ecx
mov edi, ecx
xor edi, edx
and edi, ecx
or edi, edx
not edi
or edi, r9d
mov ecx, eax
xor ecx, 4
and eax, 4
lea eax, [rcx + rax*2]
mov ecx, edi
cmp eax, r12d
jl 0x14023bd60
mov qword [rbp - 0x50], r14
lea rdx, [rbp - 0x50]
mov rcx, qword [rbp + 0x100]
call fcn.140243cb0
mov rax, qword [rbp - 0x30]
cmp rax, 0x10
setb cl
setae r8b
movzx edx, byte [0x140531b54]
test dl, r8b
jne 0x14023bdde
mov r9d, edx
not r9b
and r9b, r8b
jne 0x14023bdde
and dl, cl
je 0x14023be81
mov rdx, qword [rbp - 0x48]
lea r9, [rax + 1]
cmp r9, 0x1000
jb 0x14023be64
mov rcx, qword [rdx - 8]
sub rdx, rcx
add rdx, 0xfffffffffffffff8
cmp rdx, 0x20
jae 0x14023c040
movabs rdx, 0x2514b8a165a049eb
mov r8, rdx
sub r8, rax
movabs rax, 0x7fffffffffffffd8
and rax, r8
xor r8, 0xffffffffffffffd8
lea rax, [r8 + rax*2]
movabs r8, 0x3d5315880981f02e
sub r8, rax
mov rax, r8
xor rax, rdx
and r8, rdx
lea rax, [rax + r8*2]
movabs rdx, 0xc2acea77f67e0fd2
xor rdx, rax
movabs r8, 0x42acea77f67e0fd2
and r8, rax
lea r9, [rdx + r8*2]
mov rdx, rcx
mov dword [rsp + 0x28], 0xe1888d67
mov dword [rsp + 0x20], 0xc85f93b
mov ecx, 1
xor r8d, r8d
call fcn.140240e70
mov qword [rbp - 0x38], 0
mov qword [rbp - 0x30], 0xf
mov byte [rbp - 0x48], 0
mov rax, qword [rbp + 0xd8]
movabs r14, 0xcdc131e77078c126
mov rcx, qword [0x1404f6358]
add rcx, r14
cmp rax, rcx
jbe 0x14023bf6f
mov rdx, qword [rbp + 0xc0]
mov rcx, qword [0x1404f6358]
movabs r8, 0xa4d88503a575c3c4
xor r8, rcx
movabs r9, 0x24d88503a575c3c4
and r9, rcx
lea r8, [r8 + r9*2]
mov r10, rax
sub r10, r8
movabs r9, 0xa4d88503a575c3c5
add r9, rcx
add r9, r10
cmp r9, 0x1000
jb 0x14023bf52
mov rcx, qword [rdx - 8]
sub rdx, rcx
add rdx, 0xfffffffffffffff8
cmp rdx, 0x20
jae 0x14023c045
mov rdx, rax
xor rdx, 0x28
and eax, 0x28
mov r8, qword [0x1404f6358]
movabs r9, 0xcdc131e77078c119
xor r9, r8
movabs r10, 0x4dc131e77078c119
and r10, r8
lea r9, [r9 + r10*2]
imul r9, rax
add r9, rdx
mov rdx, rcx
mov dword [rsp + 0x28], 0xe1888d67
mov dword [rsp + 0x20], 0xc85f93b
mov ecx, 1
xor r8d, r8d
call fcn.140240e70
mov rcx, qword [rbp + 0xf8]
mov rax, qword [0x1404f6358]
xor r14, rax
movabs rdx, 0x4dc131e77078c126
and rdx, rax
lea rax, [r14 + rdx*2]
cmp rcx, rax
jbe 0x14023b8f1
mov r8, qword [rbp + 0xe0]
mov rax, qword [0x1404f6358]
movabs rdx, 0xcdc131e77078c118
xor rdx, rax
movabs r9, 0x323ece188f873ee7
xor r9, rax
and r9, rax
lea rdx, [rdx + r9*2]
mov r9, rdx
xor r9, rcx
and r9, rdx
not rdx
mov r10, rcx
xor r10, rdx
not r10
and r10, rdx
or r10, r9
mov edx, ecx
and edx, 1
lea r9, [r10 + rdx*2]
movabs rdx, 0xcdc131e77078d116
add rdx, rax
cmp r9, rdx
jbe 0x14023c115
mov r10, qword [r8 - 8]
mov r11d, dword [0x14040b674]
xor r9d, r9d
cmp esi, 1
sbb r9d, r9d
sub r11d, edi
mov esi, r11d
not esi
mov edx, dword [0x140532748]
lea eax, [rdx - 1]
imul eax, edx
mov edi, 0x11cdb4ba
add edi, dword [0x1404f6350]
xor edx, edx
div edi
test edx, edx
jne 0x14023c060
jmp 0x14023c04a
call fcn.14039c09c
call fcn.14039c09c
mov eax, dword [0x14053274c]
cmp eax, 0x26
jl 0x14023c077
nop word cs:[rax + rax]
mov eax, dword [0x140532748]
mov edx, 1
sub edx, eax
imul edx, eax
test dl, 1
jne 0x14023c060
jmp 0x14023c04a
mov eax, r9d
not eax
mov edx, esi
xor edx, r9d
and edx, esi
xor r11d, r9d
and eax, esi
or eax, r11d
not eax
or eax, edx
and eax, r9d
add dword [0x140532750], eax
mov rax, qword [0x1404f6358]
movabs rdx, 0xc74a9395a39b41ac
xor rdx, rax
movabs r9, 0x474a9395a39b41ac
and r9, rax
lea rax, [rdx + r9*2]
movabs rdx, 0x6769e51ccdd7f63
add rdx, rax
mov rax, r8
not rax
mov r9, rax
xor r9, r8
and r9, rdx
xor r9, r8
movabs rdx, 0x7ffffffffffffff8
xor rdx, r8
and eax, 7
or rax, rdx
not rax
add rax, rax
mov rdx, r9
xor rdx, rax
and rax, r9
lea rax, [rdx + rax*2]
sub rax, r10
cmp rax, 0x20
jae 0x14023c13a
add rcx, 0x28
mov r9, rcx
mov r8, r10
mov dword [rsp + 0x28], 0xe1888d67
mov dword [rsp + 0x20], 0xc85f93b
mov ecx, 1
mov rdx, r8
xor r8d, r8d
call fcn.140240e70
jmp 0x14023b8f1
call fcn.14039c09c
movsxd r15, dword [rdi]
mov eax, dword [0x14053274c]
cmp eax, 0x4e
jle 0x14023c151
mov eax, dword [rdi]
jmp 0x14023c13f
mov rbx, r13
mov r12d, dword [0x14040b684]
test r8b, 1
cmovne rsi, r9
cmp r14, 0x10
jae 0x14023bb7d
movups xmm0, xmmword [rsi]
movups xmmword [rcx], xmm0
mov r13d, 0xf
jmp 0x14023bc08