Function at 0x14015d340
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x48
lea rbp, [rsp + 0x40]
mov qword [rbp], 0xfffffffffffffffe
mov r14, rcx
mov eax, dword [rcx + 0x160]
mov ecx, eax
not ecx
mov edx, ecx
and edx, 0x100
and eax, 0xfffffeff
or eax, edx
and ecx, 0xfffffeff
or ecx, eax
mov dil, 1
cmp ecx, 0xffffffff
je 0x14015de82
mov rsi, qword [r14 + 0x128]
mov ecx, 0x583168f5
mov edx, 0x331ab550
mov r8d, 0xe303c926
call fcn.14016b570
cmp rsi, rax
jbe 0x14015d3b9
mov qword [r14 + 0x128], 0
mov esi, dword [r14 + 0x120]
mov ebx, esi
xor ebx, 0xfffffffb
mov ecx, 0x583168f5
mov edx, 0x331ab550
mov r8d, 0xe303c926
call fcn.14016b570
mov rcx, qword [r14 + 0x128]
sub rax, rcx
movabs rcx, 0x7d5a9589057906da
add rcx, rax
movabs rax, 0x82a56a76fa86f926
xor rax, rcx
not rcx
movabs rdx, 0x7d5a9589057906d9
and rdx, rcx
or rdx, rax
test ebx, esi
not rdx
lea rcx, [rax + rdx*2]
mov eax, dword [r14 + 0x134]
lea edx, [rax + rax + 0x7d0]
lea r8d, [rax + rax + 0x1b58]
cmove r8d, edx
mov r9d, 0xf7e38293
xor r10d, r10d
nop dword [rax]
mov eax, dword [0x14055bf18]
mov edx, eax
not edx
imul edx, eax
and edx, 1
mov eax, dword [0x140505924]
add eax, r9d
cmp edx, eax
jne 0x14015d469
mov rsi, qword [0x140504d38]
test r10b, r10b
je 0x14015d4a1
mov rax, qword [0x140504d38]
mov edx, dword [0x14055bf18]
lea eax, [rdx - 1]
imul eax, edx
mov edx, dword [0x140505924]
mov r11d, edx
xor r11d, 0xf7e38295
and edx, 0x77e38295
lea r11d, [r11 + rdx*2]
xor edx, edx
div r11d
test edx, edx
jne 0x14015d440
jmp 0x14015d45d
mov eax, dword [0x140505924]
mov edx, eax
xor edx, 0xf7e38293
and eax, 0x77e38293
add eax, eax
add eax, edx
jne 0x14015d4e2
mov eax, 0xf7e38293
add eax, dword [0x140505924]
lea rdx, [fcn.14015d340]
add edx, edx
add edx, 0x2500
mov r9d, edx
not r9d
and r9d, edx
cmp r9d, eax
je 0x14015d4f6
mov al, 1
nop word cs:[rax + rax]
test al, al
je 0x14015d4f0
jmp 0x14015d4ba
mov qword [rbp - 0x18], r14
movsxd r13, dword [rsi]
cmp dword [0x140505924], 0x81c7d6d
je 0x14015d527
nop dword [rax]
mov eax, dword [0x14042c1d0]
mov eax, dword [0x14055bf18]
lea edx, [rax + 1]
imul edx, eax
test dl, 1
jne 0x14015d510
mov eax, dword [0x14042c1d0]
mov dword [rbp - 0xc], eax
cmp rcx, r8
jb 0x14015de82
mov byte [0x14055bfe0], 1
mov rcx, qword [0x14055c0f0]
test rcx, rcx
je 0x14015d568
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [case.0x140303ece.0]
mov qword [0x14055c0f0], 0
movaps xmm0, xmmword [0x140427670]
movups xmmword [0x14054f3ff], xmm0
movups xmmword [0x14054f3ef], xmm0
movups xmmword [0x14054f3df], xmm0
movups xmmword [0x14054f3cf], xmm0
cmp qword [0x14055be50], 0
jne 0x14015d5c1
mov ecx, 0x700
mov edx, 0xa234284a
mov r8d, 0x948ded90
call fcn.1400a9550
mov qword [rbp - 8], rax
mov rcx, rax
call fcn.140092fc0
mov rax, qword [rbp - 8]
mov qword [0x14055be50], rax
mov rbx, qword [0x14055be50]
mov rdi, qword [rbx + 0x3b0]
test rdi, rdi
je 0x14015d627
mov rcx, rdi
call fcn.140094ba0
mov rcx, rdi
call fcn.1400a7ea0
cmp qword [0x14055be50], 0
mov qword [rbx + 0x3b0], 0
jne 0x14015d632
mov ecx, 0x700
mov edx, 0xa234284a
mov r8d, 0x948ded90
call fcn.1400a9550
mov qword [rbp - 8], rax
mov rcx, rax
call fcn.140092fc0
mov rax, qword [rbp - 8]
mov qword [0x14055be50], rax
jmp 0x14015d632
mov qword [rbx + 0x3b0], 0
mov rdi, qword [0x14055be50]
lea rbx, [rdi + 0x558]
mov rcx, qword [rdi + 0x558]
test rcx, rcx
je 0x14015d6d6
mov eax, 0xf7e38294
add eax, dword [0x140505924]
cmp dword [rdi + 0x574], eax
jne 0x14015d671
mov r8, qword [rdi + 0x560]
xor edx, edx
call fcn.14040d340
mov rcx, qword [rbx]
test rcx, rcx
je 0x14015d689
mov edx, 0xe8248046
mov r8d, 0xdae725b5
call fcn.1400a7e90
cmp qword [0x14055be50], 0
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 0
mov byte [rdi + 0x570], 1
jne 0x14015d6eb
mov ecx, 0x700
mov edx, 0xa234284a
mov r8d, 0x948ded90
call fcn.1400a9550
mov qword [rbp - 8], rax
mov rcx, rax
call fcn.140092fc0
mov rax, qword [rbp - 8]
mov qword [0x14055be50], rax
jmp 0x14015d6eb
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 0
mov byte [rdi + 0x570], 1
mov rdi, qword [0x14055be50]
mov rax, qword [rdi + 0x370]
mov rcx, qword [0x14055bf30]
add rcx, qword [0x140505928]
add rcx, qword [rdi + 0x378]
sub rcx, rax
movabs rdx, 0x52e25dd2fc3998a4
add rcx, rdx
shr rcx, 5
imul ecx, ecx, 0xcccccccd
test ecx, ecx
jle 0x14015d813
xor ebx, ebx
movabs r14, 0x52e25dd2fc3998a5
movabs r15, 0x7be387bbdd90a680
movabs r12, 0x841c7844226f5980
jmp 0x14015d7e9
lea r8, [rax + rcx]
add r8, 0x80
mov edx, dword [rax + rcx + 0x24]
mov dword [rsp + 0x20], 0x17704d9b
mov rcx, rdi
mov r9d, 0xc27b5c8a
call fcn.1400a92e0
mov rcx, qword [0x140505928]
add rbx, r14
add rbx, rcx
mov rax, qword [0x14055be08]
add rax, r15
mov rdx, rax
xor rdx, rbx
and rax, rbx
lea rbx, [rdx + rax*2]
add rbx, r12
mov rax, qword [rdi + 0x370]
mov rdx, qword [rdi + 0x378]
sub rcx, rax
movabs r8, 0x52e25dd2fc3998a4
add rcx, r8
mov r8, rdx
xor r8, rcx
and rcx, rdx
lea rcx, [r8 + rcx*2]
shr rcx, 5
imul ecx, ecx, 0xcccccccd
movsxd rcx, ecx
cmp rbx, rcx
jge 0x14015d813
lea rcx, [rbx + rbx*4]
shl rcx, 5
cmp dword [rax + rcx + 0x88], 0
jne 0x14015d760
cmp qword [rax + rcx + 0x88], 0
je 0x14015d785
jmp 0x14015d760
mov rax, qword [rdi + 0x398]
sub rax, qword [rdi + 0x390]
shr rax, 2
test eax, eax
jle 0x14015d863
xor ebx, ebx
nop dword [rax + rax]
mov dword [rsp + 0x20], 0x17704d9b
mov rcx, rdi
mov edx, ebx
xor r8d, r8d
mov r9d, 0xc27b5c8a
call fcn.1400a92e0
inc ebx
mov rax, qword [rdi + 0x398]
sub rax, qword [rdi + 0x390]
shr rax, 2
cmp ebx, eax
jl 0x14015d830
mov rax, qword [0x14055bd68]
test rax, rax
je 0x14015de6f
add r13, rsi
mov rax, qword [rax + 0x20]
mov qword [rbp - 8], rax
mov r15, qword [rax]
mov eax, dword [0x140504d1c]
mov ebx, eax
not ebx
neg ebx
mov ecx, 0xf7e38293
lea r8, [fcn.14015d340]
lea r9d, [r8 + r8]
add r9d, 0x2680
mov edx, r9d
not edx
and r9d, edx
add r8d, r8d
add r8d, 0x2681
and edx, 0xfffffffe
xor edx, r8d
or edx, r9d
not edx
mov r8b, 1
nop word cs:[rax + rax]
mov r9d, dword [0x140505924]
add r9d, ecx
cmp edx, r9d
je 0x14015d8e4
test r8b, r8b
jmp 0x14015d8d0
mov dword [0x140504d1c], ebx
mov ecx, dword [0x14055bf1c]
cmp ecx, 0x5d
jg 0x14015d910
jmp 0x14015d8f7
mov ecx, dword [0x14055bf18]
mov edx, ecx
not edx
imul edx, ecx
test dl, 1
je 0x14015d923
nop dword [rax]
mov ecx, dword [0x14055bf18]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
jne 0x14015d910
jmp 0x14015d8f7
mov ecx, eax
xor ecx, ebx
or ebx, eax
not ebx
or ebx, ecx
not ebx
mov ecx, 0xf7e38293
mov r12d, dword [0x140505924]
add r12d, ecx
xor esi, esi
mov r14d, 0
cmp ebx, r12d
jne 0x14015d963
add ecx, dword [0x140505924]
xor eax, eax
mov esi, 0
mov r14d, 0
cmp ecx, dword [rbp - 0xc]
jl 0x14015d995
lea rax, [fcn.14015d340]
lea ecx, [rax + rax]
add ecx, 0x2941
add eax, eax
add eax, 0x2940
not eax
mov edx, eax
and edx, ecx
and eax, 0xfffffffe
xor eax, ecx
or eax, edx
cmp eax, 0xffffffff
jne 0x14015da50
jmp 0x14015da27
lea rcx, [fcn.14015d340]
add ecx, ecx
add ecx, 0x26a0
mov edx, ecx
not edx
mov r8b, 1
xor esi, esi
xor r14d, r14d
jmp 0x14015d9ea
mov r11, r9
xor r11, r14
mov rdi, r10
xor rdi, rsi
xor rdi, rsi
and rdi, r10
xor rsi, rdi
xor r11, r14
and r11, r9
xor r14, r11
add eax, 0x10
cmp eax, dword [rbp - 0xc]
jge 0x14015d963
movsxd r9, eax
mov r10, qword [r13 + r9]
mov r9, qword [r13 + r9 + 8]
mov r11d, dword [0x14055bf18]
lea edi, [r11 - 1]
imul edi, r11d
test dil, 1
jne 0x14015da20
nop dword [rax]
test ecx, edx
je 0x14015d9c0
nop word cs:[rax + rax]
test r8b, r8b
je 0x14015da20
jmp 0x14015da10
mov eax, 0xf7e38294
add eax, dword [0x140505924]
lea rcx, [fcn.14015d340]
add ecx, ecx
add ecx, 0x3480
xor eax, ecx
not eax
test eax, ecx
je 0x14015da5d
nop dword [rax]
mov eax, dword [0x14055bf1c]
cmp eax, 0x58
jge 0x14015da50
jmp 0x14015da27
cmp r15, qword [rbp - 8]
je 0x14015ddc1
mov edi, 0xf7e38295
lea r13, [fcn.14015d340]
jmp 0x14015da8d
mov rax, r9
nop dword [rax + rax]
mov r15, rax
cmp rax, qword [rbp - 8]
je 0x14015ddc1
mov dword [r15 + 0x30], 0
mov dword [r15 + 0x28], 0
mov r8, qword [r15 + 0x58]
mov rax, qword [0x140505928]
movabs rcx, 0x52e25dd2fc3998a4
add rax, rcx
cmp r8, rax
je 0x14015dac5
mov rcx, qword [r15 + 0x50]
mov dl, 1
call fcn.14040d340
mov r8, qword [r15 + 0x98]
test r8, r8
je 0x14015dadf
mov rcx, qword [r15 + 0x90]
mov dl, 1
call fcn.14040d340
mov rcx, qword [r15 + 0x10]
cmp byte [rcx + 0x19], 0
je 0x14015ddb0
mov rax, qword [r15 + 8]
cmp byte [rax + 0x19], 0
jne 0x14015da80
jmp 0x14015dd60
mov r8, qword [0x14042c200]
mov rcx, qword [0x14042c1f8]
mov edx, dword [0x14055bf18]
lea eax, [rdx - 1]
imul eax, edx
mov r10d, dword [0x140505924]
add r10d, edi
xor edx, edx
div r10d
test edx, edx
je 0x14015db49
mov rax, qword [0x14042c200]
mov rax, qword [0x14042c1f8]
jmp 0x14015db00
mov eax, dword [0x14055bf1c]
cmp eax, 0x12
xor eax, eax
cmp ebx, r12d
setne al
add rax, 0xffffffffffffffff
mov edx, 0
adc rdx, 0xffffffffffffffff
mov r10d, dword [0x14055bf1c]
cmp r10d, 0x17
jg 0x14015db40
sub rcx, rsi
sbb r8, r14
xor rcx, rax
xor r8, rdx
not r8
not rcx
and rcx, rax
and r8, rdx
nop word cs:[rax + rax]
mov eax, dword [0x14055bf18]
mov edx, eax
sub edx, dword [0x140505924]
imul edx, eax
test dl, 1
je 0x14015dbc0
mov eax, dword [0x14055bf18]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
jmp 0x14015db90
mov rax, rcx
and rax, r8
xor rcx, r8
xor rcx, rax
mov r10, rcx
shr r10, 0x20
or r10d, ecx
mov eax, r10d
shr eax, 0x10
mov ecx, dword [0x14055bf1c]
cmp ecx, 0x58
jle 0x14015dc01
nop word [rax + rax]
mov ecx, dword [0x14055bf18]
lea edx, [rcx + 1]
imul edx, ecx
test dl, 1
jne 0x14015dbf0
or r10d, eax
mov al, 1
test al, al
je 0x14015dc60
nop word [rax + rax]
mov eax, dword [0x14055bf18]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, dword [0x140505924]
mov edx, eax
xor edx, 0xf7e38293
and eax, 0x77e38293
lea eax, [rdx + rax*2]
cmp ecx, eax
jne 0x14015dc60
movzx r11d, r10w
shr r11d, 8
lea eax, [r13 + r13 + 0x2e80]
mov ecx, eax
not ecx
test ecx, eax
jne 0x14015dce0
jmp 0x14015dc80
mov eax, dword [0x14055bf18]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x14015dc60
jmp 0x14015dc10
mov eax, r10d
and al, r11b
mov ecx, r11d
xor cl, r11b
not cl
and cl, r10b
xor cl, r11b
or cl, al
movzx eax, byte [0x14055bf20]
mov edx, eax
xor dl, cl
and cl, al
add cl, cl
add cl, dl
mov byte [0x14055bf20], cl
lea eax, [r13 + r13 + 0x14c0]
mov ecx, eax
not ecx
and eax, ecx
lea edx, [r13 + r13 + 0x14c1]
and ecx, 0xfffffffe
xor ecx, edx
or ecx, eax
cmp ecx, 0xffffffff
jne 0x14015dce0
cmp r15, qword [r9 + 0x10]
je 0x14015dd90
jmp 0x14015da75
mov eax, r11d
sub al, r10b
sub al, r10b
sub al, r10b
mul r10b
sub al, r10b
mul r10b
mov edx, eax
sub al, r10b
mul r10b
mov r8d, edx
mov ecx, eax
shl r8b, cl
mov ecx, r8d
shl dl, cl
sub dl, r8b
mov eax, edx
mul r8b
movzx ecx, byte [0x140505920]
mov edx, ecx
sub dl, al
add dl, r8b
add dl, 0xd2
or dl, al
movzx eax, byte [0x14055bf20]
sub cl, al
add cl, dl
add cl, 0x7b
mov edx, ecx
xor dl, 0x57
and cl, 0x57
add cl, cl
add cl, dl
mov edx, eax
shl dl, cl
add dl, al
mov byte [0x14055bf20], dl
mov eax, dword [0x14055bf1c]
cmp eax, 0x17
jge 0x14015dce0
jmp 0x14015dc80
mov r9, rax
mov eax, dword [0x14055bf18]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, dword [0x140505924]
mov edx, 0xf7e38293
add eax, edx
cmp ecx, eax
je 0x14015db00
jmp 0x14015db2d
mov rax, qword [r9 + 8]
cmp byte [rax + 0x19], 0
mov r15, r9
je 0x14015dd60
jmp 0x14015da80
mov rax, rcx
mov rcx, qword [rcx]
cmp byte [rcx + 0x19], 0
je 0x14015ddb0
jmp 0x14015da80
mov rax, qword [0x14055bd68]
mov rax, qword [rax + 0x30]
mov rdx, qword [rax]
cmp rdx, rax
je 0x14015de6f
mov ecx, 0xf7e38292
jmp 0x14015ddf8
mov r8, rdx
nop word cs:[rax + rax]
mov rdx, r8
cmp r8, rax
je 0x14015de6f
mov r8d, dword [0x140505924]
add r8d, ecx
mov dword [rdx + 0x20], r8d
mov r9, qword [rdx + 0x10]
cmp byte [r9 + 0x19], 0
je 0x14015de60
mov r8, qword [rdx + 8]
movzx r9d, byte [0x14055bf20]
add r9b, byte [r8 + 0x19]
movzx r10d, byte [0x140505920]
mov r11d, r10d
xor r11b, 0xd2
and r10b, 0x52
add r10b, r10b
add r10b, r11b
cmp r9b, r10b
jne 0x14015ddf0
nop
mov r9, rdx
mov rdx, r8
cmp r9, qword [r8 + 0x10]
jne 0x14015dddf
mov r8, qword [rdx + 8]
cmp byte [r8 + 0x19], 0
je 0x14015de40
jmp 0x14015ddf0
mov r8, r9
mov r9, qword [r9]
cmp byte [r9 + 0x19], 0
je 0x14015de60
jmp 0x14015ddf0
mov rcx, qword [rbp - 0x18]
mov rax, qword [rcx]
mov rax, qword [rax + 0x30]
call qword [case.0x140303ece.0]
xor edi, edi
mov eax, edi
add rsp, 0x48
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret