Function at 0x14023c9b0
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 r12, rcx
mov rax, qword [0x14055f350]
movzx ecx, byte [0x140517338]
add cl, 0xd7
mov rsi, rax
shr rsi, cl
mov rdi, rdx
or esi, eax
mov eax, dword [0x1405601c8]
add eax, dword [0x14056025c]
mov ecx, dword [0x140562b2c]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
movabs r14, 0xf3133d3fd397e6b7
cmp eax, dword [rcx + 0x26838]
mov qword [rbp + 0x108], rsi
jg 0x14023d4a8
mov rdx, qword [0x1405601b8]
cmp qword [r12 + 0x20], 0x10
jb 0x14023ca47
mov r9, qword [r12 + 8]
jmp 0x14023ca4c
lea r9, [r12 + 8]
mov rax, qword [0x140517338]
add rax, r14
cmp rdx, rax
je 0x14023cd0c
mov rax, qword [r12 + 0x18]
test rax, rax
je 0x14023cd0c
cmp qword [0x1405601c0], 0x10
jb 0x14023ca80
mov rcx, qword [0x1405601a8]
jmp 0x14023ca87
lea rcx, [0x1405601a8]
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
mov r10, rdx
not r10
mov r8d, r10d
and r8d, 7
mov r11, rdx
and r11, 0xfffffffffffffff8
or r11, r8
and r10, 0xfffffffffffffff8
or r10, r11
xor r10, 0xffffffffffffffff
mov r8, rcx
je 0x14023cb4c
lea r8, [rcx + 1]
xor r11d, r11d
movabs rsi, 0xf3133d3fd397e6b8
nop dword [rax + rax]
movzx ebx, byte [r8 - 1]
mov byte [rbp + rbx - 0x50], 1
mov rbx, qword [0x140517338]
add rbx, rsi
mov r15, rbx
xor r15, rbx
not r15
and r15, r11
xor r15, rbx
and r11d, 1
lea r11, [r15 + r11*2]
cmp r11, r10
je 0x14023cb45
inc r8
jmp 0x14023cb10
mov rsi, qword [rbp + 0x108]
cmp rdx, 8
jb 0x14023cbe5
add rcx, rdx
nop dword [rax]
movzx edx, byte [0x140560259]
movzx r10d, byte [r8]
xor r10b, dl
mov r11d, r10d
not r11b
and r11b, dl
add r11b, r11b
add r11b, r10b
movzx edx, r11b
movzx r10d, byte [0x140517340]
add r10b, 0x4f
mov byte [rbp + rdx - 0x50], r10b
movzx edx, byte [r8 + 1]
mov byte [rbp + rdx - 0x50], 1
movzx edx, byte [r8 + 2]
mov byte [rbp + rdx - 0x50], 1
movzx edx, byte [r8 + 3]
mov byte [rbp + rdx - 0x50], 1
movzx edx, byte [r8 + 4]
mov byte [rbp + rdx - 0x50], 1
movzx edx, byte [r8 + 5]
mov byte [rbp + rdx - 0x50], 1
movzx edx, byte [r8 + 6]
mov byte [rbp + rdx - 0x50], 1
movzx edx, byte [r8 + 7]
mov byte [rbp + rdx - 0x50], 1
add r8, 8
cmp r8, rcx
jne 0x14023cb60
cmp byte [0x14055f828], 0
jne 0x14023cc04
movzx ecx, byte [rax + r9 - 1]
cmp byte [rbp + rcx - 0x50], 0
je 0x14023cc04
lea rcx, [rax + r9]
dec rcx
jmp 0x14023cc5d
mov rcx, rax
cmp rcx, 1
je 0x14023cd0c
nop word cs:[rax + rax]
movzx edx, byte [r9 + rcx - 2]
movzx r8d, byte [0x140560258]
mov r10d, r8d
xor r10b, dl
and r8b, dl
add r8b, r8b
add r8b, r10b
movzx edx, r8b
cmp byte [rbp + rdx - 0x50], 0
jne 0x14023cc56
dec rcx
cmp rcx, 1
jne 0x14023cc20
jmp 0x14023cd0c
add rcx, r9
add rcx, 0xfffffffffffffffe
movsxd r15, dword [0x14042dad8]
mov r13d, dword [0x14042daa0]
sub rcx, r9
cmp rcx, 0xffffffffffffffff
je 0x14023cd0c
mov rdx, qword [0x140517338]
lea r8, [rdx + r14]
mov qword [rbp + 0xf0], r8
movabs r8, 0xf3133d3fd397e6c6
add rdx, r8
mov qword [rbp + 0xf8], rdx
mov byte [rbp + 0xe0], 0
cmp rax, rcx
cmovb rcx, rax
add rcx, qword [0x14055f350]
movabs rax, 0xd339a417a1d06d53
add rax, rcx
movabs rcx, 0x2cc65be85e2f92ad
mov rdx, rax
xor rdx, rcx
and rax, rcx
lea rdi, [rdx + rax*2]
cmp rdi, 0xf
jbe 0x14023ceb7
mov eax, dword [0x140515da4]
add eax, esi
add eax, 0xffff9666
cdqe
add rax, qword [0x140515dc0]
lea rcx, [rbp + 0xe0]
mov rdx, rdi
call qword [case.0x140119ecb.0]
jmp 0x14023ced8
lea r14, [rbp - 0x48]
test rdi, rdi
lea rbx, [0x1404211b8]
cmovne rbx, rdi
mov qword [rbp - 0x38], 0
mov qword [rbp - 0x30], 0xf
mov byte [rbp - 0x48], 0
mov eax, dword [0x140515d98]
or eax, esi
mov ecx, dword [0x140517330]
mov edx, ecx
xor edx, 0x4af01614
mov r8d, ecx
and r8d, 0x4af01614
lea edx, [rdx + r8*2]
sub eax, edx
add eax, ecx
add eax, 0x4aefac7a
cdqe
add rax, qword [0x140515de8]
mov rcx, rbx
mov edx, 0x790a6c13
mov r8d, 0xdf64537d
call qword [case.0x140119ecb.0]
mov rdi, rax
cmp rax, 0xf
jbe 0x14023cdc5
mov eax, dword [0x140515da4]
add eax, esi
mov ecx, dword [0x140517330]
mov edx, ecx
xor edx, 0x4aefac7a
and ecx, 0x4aefac7a
lea ecx, [rdx + rcx*2]
add eax, ecx
add eax, 0xffff9666
cdqe
add rax, qword [0x140515dc0]
mov rcx, r14
mov rdx, rdi
mov r9, rbx
call qword [case.0x140119ecb.0]
jmp 0x14023cddc
mov qword [rbp - 0x38], rdi
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call fcn.1404048d0
mov byte [rbp + rdi - 0x48], 0
lea rax, [0x140422718]
mov qword [rbp - 0x50], rax
lea rdx, [rbp - 0x50]
mov rcx, r12
call fcn.140246780
mov rax, qword [rbp - 0x30]
cmp rax, 0x10
jb 0x14023d45d
mov rdx, qword [rbp - 0x48]
lea r9, [rax + 1]
movabs rcx, 0xf3133d3fd397f6b6
add rcx, qword [0x140517338]
cmp r9, rcx
jbe 0x14023ce59
mov rcx, qword [rdx - 8]
mov r8, rdx
xor r8, 0xfffffffffffffff8
not edx
and edx, 7
or rdx, r8
not rdx
lea rdx, [r8 + rdx*2]
sub rdx, rcx
cmp rdx, 0x20
mov r8, qword [rbp + 0x108]
jae 0x14023d5dc
add rax, 0x28
mov r9, rax
mov rdx, rcx
jmp 0x14023ce60
mov r8, qword [rbp + 0x108]
xor r8d, dword [0x140515d9c]
add r8d, 0xffff9666
movsxd rax, r8d
add rax, qword [0x140515db8]
mov r8d, dword [0x140517330]
lea ecx, [r8 + 0x4aefac7b]
mov r10d, r8d
xor r10d, 0x8b18ad27
mov r11d, r8d
and r11d, 0xb18ad27
lea r10d, [r10 + r11*2]
add r8d, 0x6cc104ab
mov dword [rsp + 0x28], r8d
mov dword [rsp + 0x20], r10d
mov r8d, ecx
jmp 0x14023d457
mov qword [rbp + 0xf0], rdi
lea rcx, [rbp + 0xe0]
mov rdx, r9
mov r8, rdi
call fcn.1404048d0
mov byte [rbp + rdi + 0xe0], 0
xorps xmm0, xmm0
movups xmmword [rbp + 0xc8], xmm0
mov rsi, qword [rbp + 0xf0]
cmp qword [rbp + 0xf8], 0x10
jb 0x14023cefc
mov rbx, qword [rbp + 0xe0]
jmp 0x14023cf03
lea rbx, [rbp + 0xe0]
mov qword [rbp + 0xd8], r12
lea r10, [rbp + 0xb8]
cmp rsi, 0xf
ja 0x14023cf29
movups xmm0, xmmword [rbx]
movups xmmword [r10], xmm0
mov r12d, 0xf
jmp 0x14023d018
mov rdi, r10
mov rax, qword [0x140517338]
movabs rcx, 0xf3133d3fd397e6c6
add rax, rcx
mov rcx, rsi
not rcx
mov rdx, rsi
xor rdx, rax
not rax
and rax, rcx
or rax, rdx
not rax
mov r12, rsi
xor r12, 0xf
or r12, rax
movabs rax, 0x7fffffffffffffff
cmp r12, rax
cmovae r12, rax
cmp r12, 0xfff
jb 0x14023cfe2
lea rcx, [r12 + 0x28]
call fcn.1403dccdc
mov rcx, qword [0x140517338]
movabs rdx, 0xf3133d3fd397e6de
xor rdx, rcx
movabs r8, 0x73133d3fd397e6de
and r8, rcx
lea rcx, [rdx + r8*2]
xor rcx, rax
movabs rdx, 0x7fffffffffffffd8
xor rdx, rax
and rdx, rax
lea rcx, [rcx + rdx*2]
mov rdx, rcx
not rdx
mov r8, rcx
xor r8, 0xffffffffffffffe0
xor rcx, 0x1f
and rcx, rdx
or rcx, r8
not rcx
mov qword [rcx - 8], rax
jmp 0x14023cfef
lea rcx, [r12 + 1]
call fcn.1403dccdc
mov rcx, rax
mov qword [rbp + 0xb8], rcx
mov rax, rsi
sub rax, qword [0x140517338]
movabs r8, 0xcecc2c02c68194a
add r8, rax
mov rdx, rbx
call fcn.1404048d0
mov r10, rdi
mov qword [rbp + 0xc8], rsi
mov ebx, dword [0x140515a30]
lea r9d, [rbx + 1]
mov dword [0x140515a30], r9d
test ebx, r9d
jne 0x14023d05c
mov eax, dword [0x140560254]
mov eax, 0x4aefac7a
mov ecx, dword [0x140517330]
add ecx, eax
mov edx, dword [0x140560254]
cmp edx, 0x3f
jg 0x14023d040
cmp ecx, r13d
jl 0x14023d474
xor edi, edi
cmp r12, 0x10
jb 0x14023d06b
mov r10, qword [rbp + 0xb8]
mov qword [rbp + 0xd0], r12
lea rax, [0x1404208d8]
mov qword [rbp + 0xb0], rax
xorps xmm0, xmm0
movups xmmword [rbp - 0x38], xmm0
cmp rsi, 0x10
mov dword [rbp + 0x104], r9d
jae 0x14023d0ae
lea rax, [rbp - 0x48]
movups xmm0, xmmword [r10]
movups xmmword [rax], xmm0
mov r15d, 0xf
mov r12, qword [rbp + 0xd8]
jmp 0x14023d11f
mov r13, r10
mov r15, qword [0x140517338]
movabs rax, 0xf3133d3fd397e6c6
add r15, rax
or r15, rsi
movabs rax, 0x7fffffffffffffff
cmp r15, rax
cmovae r15, rax
cmp r15, 0xfff
mov r12, qword [rbp + 0xd8]
jb 0x14023d103
lea rcx, [r15 + 0x28]
call fcn.1403dccdc
mov rcx, rax
add rcx, 0x27
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
jmp 0x14023d10f
lea rcx, [r15 + 1]
call fcn.1403dccdc
mov rcx, rax
mov qword [rbp - 0x48], rcx
lea r8, [rsi + 1]
mov rdx, r13
call fcn.1404048d0
mov qword [rbp - 0x38], rsi
mov qword [rbp - 0x30], r15
lea rax, [0x140422718]
mov qword [rbp - 0x50], rax
lea rdx, [rbp - 0x50]
mov rcx, r12
call fcn.140246780
mov rax, qword [rbp - 0x30]
cmp rax, 0x10
mov rsi, qword [rbp + 0x108]
jb 0x14023d216
mov rdx, qword [rbp - 0x48]
lea rcx, [rax + 1]
mov r8, qword [0x14055f3a8]
mov r9, r8
xor r9, rcx
and r8, rcx
lea r9, [r9 + r8*2]
mov rcx, qword [0x140517338]
movabs r8, 0xf3133d3fd397f6b6
xor r8, rcx
movabs r10, 0x73133d3fd397f6b6
and r10, rcx
lea rcx, [r8 + r10*2]
cmp r9, rcx
jbe 0x14023d1df
mov rcx, qword [rdx - 8]
sub rdx, rcx
add rdx, 0xfffffffffffffff8
cmp rdx, 0x20
jae 0x14023d5e1
mov rdx, qword [0x140517338]
movabs r8, 0xf3133d3fd397e6df
add r8, rdx
xor r8, rax
and eax, 0x28
movabs r9, 0xf3133d3fd397e6b9
add r9, rdx
imul r9, rax
add r9, r8
mov rdx, rcx
mov eax, dword [0x140515d9c]
or eax, esi
add eax, 0xffff9666
cdqe
add rax, qword [0x140515db8]
mov dword [rsp + 0x28], 0x21d15831
mov dword [rsp + 0x20], 0x402900ad
mov ecx, 1
mov r8d, 1
call qword [case.0x140119ecb.0]
mov qword [rbp - 0x38], 0
mov qword [rbp - 0x30], 0xf
movzx ecx, byte [0x140517340]
lea eax, [rcx + 0x4e]
mov byte [rbp - 0x48], al
mov rax, qword [rbp + 0xd0]
and ebx, dword [rbp + 0x104]
movzx edx, byte [0x14042dadc]
xor r8d, r8d
cmp ebx, 1
sbb r8d, r8d
sub dl, dil
add cl, 0x4d
xor cl, dl
xor dl, r8b
not cl
or cl, r8b
not cl
or cl, dl
mov edx, dword [0x140560254]
nop word [rax + rax]
movzx edx, byte [0x140517340]
mov r8d, dword [0x140560250]
lea r9d, [r8 - 1]
imul r9d, r8d
test r9b, 1
jne 0x14023d270
add dl, 0x4d
xor cl, dl
movzx edx, cl
mov r8d, 0x4aefacd8
nop word [rax + rax]
add qword [0x14055f3a8], rdx
mov ecx, dword [0x140560254]
mov r9d, dword [0x140517330]
add r9d, r8d
cmp ecx, r9d
jl 0x14023d30b
nop dword [rax]
mov r9, qword [0x14055f3a8]
sub r9, rdx
imul r9, rdx
mov rcx, r9
sub rcx, rdx
imul rcx, rdx
shl r9, cl
mov r10, qword [0x140517338]
sub r10, r9
add rcx, rcx
add rcx, r14
add rcx, r10
mov qword [0x14055f3a8], rcx
mov ecx, dword [0x140560250]
lea r9d, [rcx + 1]
imul r9d, ecx
test r9b, 1
jne 0x14023d2c0
jmp 0x14023d2a0
cmp rax, 0xf
jbe 0x14023d3af
mov rdx, qword [rbp + 0xb8]
lea r9, [rax + 1]
movabs rcx, 0xf3133d3fd397f6b6
add rcx, qword [0x140517338]
cmp r9, rcx
jbe 0x14023d378
mov rcx, qword [rdx - 8]
mov r8, qword [0x140517338]
add rdx, r8
sub rdx, rcx
movabs r9, 0xe6267a7fa72fcd66
add r9, r8
add r9, rdx
cmp r9, 0x20
jae 0x14023d5e6
add rax, qword [0x140517338]
movabs r9, 0xf3133d3fd397e6df
add r9, rax
mov rdx, rcx
mov eax, dword [0x140515d9c]
or eax, esi
add eax, 0xffff9666
cdqe
add rax, qword [0x140515db8]
mov dword [rsp + 0x28], 0x21d15831
mov dword [rsp + 0x20], 0x402900ad
mov ecx, 1
mov r8d, 1
call qword [case.0x140119ecb.0]
mov rax, qword [rbp + 0xf8]
movabs rcx, 0xf3133d3fd397e6c6
add rcx, qword [0x140517338]
cmp rax, rcx
jbe 0x14023d45d
mov rdx, qword [rbp + 0xe0]
mov rcx, qword [0x140517338]
add rcx, rax
movabs r9, 0xf3133d3fd397e6b8
add r9, rcx
cmp r9, 0x1000
jb 0x14023d426
mov rcx, qword [rdx - 8]
sub rdx, rcx
add rdx, 0xfffffffffffffff8
movabs r8, 0xf3133d3fd397e6d7
add r8, qword [0x140517338]
cmp rdx, r8
jae 0x14023d5eb
add rax, 0x28
mov r9, rax
mov rdx, rcx
or esi, dword [0x140515d9c]
add esi, 0xffff9666
movsxd rax, esi
add rax, qword [0x140515db8]
mov dword [rsp + 0x28], 0x21d15831
mov dword [rsp + 0x20], 0x402900ad
mov ecx, 1
mov r8d, 1
call qword [case.0x140119ecb.0]
mov rax, r12
add rsp, 0x198
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
xor eax, eax
lea rcx, [0x14042dad8]
xor edi, edi
nop
lea rdx, [r15 + rax]
movzx edx, byte [rcx + rdx]
mov r8d, edx
xor r8b, dl
not r8b
and dil, r8b
xor dil, dl
lea edx, [rax + 1]
cmp edx, r13d
jge 0x14023d05e
inc rax
jmp 0x14023d480
mov eax, dword [0x140515d9c]
add eax, esi
add eax, 0xffff9666
cdqe
add rax, qword [0x140515db8]
mov edx, dword [0x140517330]
lea ecx, [rdx + 0x4aefac7b]
lea r8d, [rdx + 0x4aefac7a]
mov r9, qword [0x140517338]
add r9, r14
lea r10d, [rdx - 0x74e752d9]
mov r11d, edx
xor r11d, 0x6cc104ab
and edx, 0x6cc104ab
lea edx, [r11 + rdx*2]
mov dword [rsp + 0x28], edx
mov dword [rsp + 0x20], r10d
lea rdx, [0x1405601c8]
call qword [case.0x140119ecb.0]
cmp dword [0x1405601c8], 0xffffffff
jne 0x14023ca31
mov eax, dword [0x140515da0]
sub eax, esi
add eax, 0xffff9666
cdqe
add rax, qword [0x140515dc8]
mov ecx, 1
mov edx, 1
mov r8d, 0xe78790e
mov r9d, 0xafad0773
call qword [case.0x140119ecb.0]
lea rcx, [0x1405601a0]
mov rdx, rax
call fcn.1400b1b60
mov eax, dword [0x140515da8]
mov rsi, qword [rbp + 0x108]
add eax, esi
mov r8d, dword [0x140517330]
add eax, r8d
add eax, 0x4aef42e0
cdqe
add rax, qword [0x140515de0]
lea edx, [r8 + 0x66b0b28d]
add r8d, 0xef51ba97
lea rcx, [0x1402362c0]
call qword [case.0x140119ecb.0]
mov eax, dword [0x140515d9c]
add eax, esi
add eax, 0xffff9666
cdqe
add rax, qword [0x140515db8]
mov dword [rsp + 0x28], 0x21d15831
mov dword [rsp + 0x20], 0x402900ad
lea rdx, [0x1405601c8]
xor ecx, ecx
xor r8d, r8d
xor r9d, r9d
call qword [case.0x140119ecb.0]
jmp 0x14023ca31
call fcn.1403bcb3c
call fcn.1403bcb3c
call fcn.1403bcb3c
call fcn.1403bcb3c
int3