Function at 0x140349280
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x98
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x10], 0xfffffffffffffffe
mov r13, rdx
mov r14, rcx
movzx edi, byte [0x1405774c0]
mov eax, 0x832b4e83
add eax, dword [0x140556154]
mov ecx, eax
xor ecx, edi
and eax, edi
lea eax, [rcx + rax*2]
mov ecx, 0x88ae8be2
sub ecx, eax
mov eax, ecx
xor eax, 0xfa7cebe4
and ecx, 0x7a7cebe4
lea eax, [rax + rcx*2]
neg eax
cdqe
add rax, qword [0x1405561a8]
lea rcx, [rbp + 8]
lea rbx, [rbp - 0x48]
mov rdx, rbx
mov r8d, 0xa39357e6
mov r9d, 0x8dcfd8d4
call qword [case.0x14013cbc3.0]
xorps xmm0, xmm0
movups xmmword [rbp - 0x10], xmm0
mov rsi, qword [rbp - 0x38]
cmp qword [rbp - 0x30], 8
jb 0x140349319
mov rbx, qword [rbp - 0x48]
lea rax, [rbp - 0x20]
cmp rsi, 7
mov qword [rbp], rdi
ja 0x140349337
movups xmm0, xmmword [rbx]
movups xmmword [rax], xmm0
mov edi, 7
jmp 0x1403493f7
mov rax, rsi
not rax
mov rcx, rsi
xor rcx, 7
mov rdx, rax
and rdx, 0xfffffffffffffff8
or rdx, rcx
not rdx
and eax, 7
mov rdi, rsi
and rdi, 0xfffffffffffffff8
or rdi, rax
or rdi, rdx
movabs rax, 0x7ffffffffffffffe
cmp rdi, rax
cmovae rdi, rax
mov rdx, qword [0x140556490]
lea ecx, [rdx + 0x26]
mov rax, rdi
shl rax, cl
movabs rcx, 0x64bd84be48e35a23
add rcx, rdx
cmp rdi, rcx
jbe 0x1403493d4
movabs rcx, 0x7fffffffffffffec
cmp rdi, rcx
jae 0x14034963c
add rax, 0x29
mov rcx, rax
call fcn.1403f542c
mov rdx, qword [0x140556490]
add rdx, rax
movabs rcx, 0x64bd84be48e3524c
add rcx, rdx
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
jmp 0x1403493e3
add rax, 2
mov rcx, rax
call fcn.1403f542c
mov rcx, rax
mov qword [rbp - 0x20], rcx
lea r8, [rsi + rsi]
add r8, 2
mov rdx, rbx
call fcn.14041d3c0
mov qword [rbp - 0x10], rsi
mov qword [rbp - 8], rdi
lea rax, [0x140438b60]
mov qword [rbp - 0x28], rax
lea rcx, [r14 + 0x3c]
lea r8, [rbp - 0x28]
mov edx, 0x80
call fcn.1403d2b50
mov rax, qword [rbp - 8]
movabs rdi, 0x64bd84be48e3522c
mov rcx, qword [0x140556490]
add rcx, rdi
cmp rax, rcx
seta cl
movzx edx, byte [0x1405760e8]
test dl, cl
mov rsi, qword [rbp]
jne 0x140349451
xor dl, cl
je 0x140349504
mov rcx, qword [rbp - 0x20]
mov rdx, qword [0x140556490]
movabs r8, 0x64bd84be48e35225
mov r9, rdx
xor r9, r8
and r8, rdx
lea r8, [r9 + r8*2]
sub rdx, r8
lea r8, [rdx + rax*2]
movabs rdx, 0x64bd84be48e35227
add rdx, r8
cmp rdx, 0x1000
jb 0x1403494dc
mov r8, qword [rcx - 8]
mov rdx, qword [0x140556490]
movabs r9, 0x64bd84be48e3521d
mov r10, rdx
xor r10, r9
and rdx, r9
lea rdx, [r10 + rdx*2]
add rdx, rcx
sub rdx, r8
cmp rdx, 0x20
jae 0x140349641
add rax, rax
add rax, qword [0x140556490]
movabs rdx, 0x64bd84be48e3524e
add rdx, rax
mov rcx, r8
mov eax, dword [0x140556168]
or eax, esi
add eax, 0xffffd6bd
cdqe
add rax, qword [0x140556170]
mov r8d, 0x37c1188a
mov r9d, 0xdb0db53b
call qword [case.0x14013cbc3.0]
mov qword [rbp - 0x10], 0
mov rax, qword [0x140556490]
mov rcx, rax
xor rcx, rdi
and rax, rdi
lea rax, [rcx + rax*2]
mov qword [rbp - 8], rax
mov word [rbp - 0x20], 0
mov rax, qword [rbp - 0x30]
cmp rax, 8
jb 0x1403495ca
mov rcx, qword [rbp - 0x48]
mov r8, qword [0x140556490]
movabs rdx, 0x64bd84be48e35227
mov r9, r8
xor r9, rdx
and rdx, r8
lea rdx, [r9 + rdx*2]
lea rdx, [rdx + rax*2]
movabs r9, 0x64bd84be48e36224
add r9, r8
cmp rdx, r9
jbe 0x1403495a2
mov r8, qword [rcx - 8]
sub rcx, qword [0x140556490]
sub rcx, r8
movabs rdx, 0x9b427b41b71cadd3
add rdx, rcx
cmp rdx, 0x20
jae 0x140349646
add rax, rax
add rax, 0x29
mov rdx, rax
mov rcx, r8
mov eax, dword [0x140556168]
add eax, esi
add eax, 0xffffd6bd
cdqe
add rax, qword [0x140556170]
mov r8d, 0x37c1188a
mov r9d, 0xdb0db53b
call qword [case.0x14013cbc3.0]
mov qword [rbp - 0x50], r14
mov ecx, 0xe85367d2
mov r8d, 0xe85367d3
nop dword [rax]
mov eax, dword [0x140578608]
mov edx, dword [0x140556498]
add edx, ecx
not edx
add edx, eax
dec edx
imul edx, eax
test dl, 1
je 0x140349622
mov rax, qword [0x140556028]
mov edx, dword [0x140578608]
lea eax, [rdx - 1]
imul eax, edx
mov r9d, dword [0x140556498]
add r9d, r8d
xor edx, edx
div r9d
test edx, edx
jne 0x1403495e0
mov r15, qword [0x140556028]
mov eax, dword [0x140578608]
lea ecx, [rax + 1]
imul ecx, eax
test cl, 1
jne 0x14034965f
jmp 0x14034964b
call fcn.140085ac0
call fcn.1403d599c
call fcn.1403d599c
movsxd rdi, dword [r15]
mov eax, dword [0x140578608]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x14034966e
mov dword [0x140578608], 1
mov eax, dword [r15]
jmp 0x14034964b
mov eax, dword [0x140578608]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x14034969e
mov ecx, dword [0x140578608]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, 0xe85367d3
add ecx, dword [0x140556498]
xor edx, edx
div ecx
test edx, edx
je 0x1403496f8
lea rbx, [0x14034b000]
nop word cs:[rax + rax]
mov eax, dword [0x140556150]
add eax, esi
add eax, 0xffffd6bd
cdqe
add rax, qword [0x140556178]
mov ecx, 0x20
mov edx, 0xade682e0
mov r8d, 0xaedc18fd
call qword [case.0x14013cbc3.0]
mov qword [0x1405785f0], rax
mov rcx, rbx
call fcn.1403f5a50
mov eax, dword [0x14057860c]
cmp eax, 0x25
jge 0x1403496b0
jmp 0x14034967f
mov r12d, dword [0x14045c470]
mov eax, dword [0x14055616c]
xor eax, esi
mov r9d, dword [0x140556498]
add eax, r9d
add eax, 0xe8533e8e
cdqe
add rax, qword [0x140556180]
mov ecx, r9d
xor ecx, 0x2ac68954
mov edx, r9d
and edx, 0x2ac68954
lea r8d, [rcx + rdx*2]
add r9d, 0x8539a534
lea rcx, [rbp + 8]
lea rbx, [rbp - 0x48]
mov rdx, rbx
call qword [case.0x14013cbc3.0]
xorps xmm0, xmm0
movups xmmword [rbp - 0x10], xmm0
mov rsi, qword [rbp - 0x38]
mov rax, qword [0x140556490]
movabs rcx, 0x847ae9987c38e104
xor rcx, rax
movabs rdx, 0x47ae9987c38e104
and rdx, rax
lea rax, [rcx + rdx*2]
movabs rcx, 0xe0429b25ccaa7128
add rcx, rax
cmp qword [rbp - 0x30], rcx
jbe 0x140349794
mov rbx, qword [rbp - 0x48]
cmp rsi, 8
jae 0x1403497af
movups xmm0, xmmword [rbx]
lea rax, [rbp - 0x20]
movups xmmword [rax], xmm0
mov r14d, 7
jmp 0x1403498ae
mov rax, qword [0x140556490]
mov rcx, rax
movabs rdx, 0x64bd84be48e3522c
xor rcx, rdx
not rax
movabs rdx, 0x1b427b41b71cadd3
and rdx, rax
or rdx, rcx
not rdx
lea rax, [rcx + rdx*2]
not rax
mov rcx, rsi
not rcx
mov rdx, rcx
xor rdx, rax
and rdx, rcx
or rdx, rax
not rdx
mov r14, rsi
xor r14, 7
or r14, rdx
movabs rax, 0x7ffffffffffffffe
cmp r14, rax
cmovae r14, rax
lea rcx, [r14 + r14]
cmp r14, 0x7ff
jb 0x14034985a
movabs rax, 0x7fffffffffffffec
cmp r14, rax
jae 0x140349a53
add rcx, 0x29
call fcn.1403f542c
mov rdx, rax
add rdx, 0x27
mov ecx, edx
not ecx
xor rdx, 0xffffffffffffffe0
and ecx, 0x1f
or rcx, rdx
not rcx
mov qword [rcx - 8], rax
jmp 0x140349866
add rcx, 2
call fcn.1403f542c
mov rcx, rax
mov qword [rbp - 0x20], rcx
mov rax, qword [0x140556490]
movabs rdx, 0x64bd84be48e35225
mov r8, rax
xor r8, rdx
and rdx, rax
lea rdx, [r8 + rdx*2]
movabs r8, 0x64bd84be48e35227
mov r9, rax
xor r9, r8
and rax, r8
lea rax, [r9 + rax*2]
sub rax, rdx
lea r8, [rax + rsi*2]
mov rdx, rbx
call fcn.14041d3c0
mov qword [rbp - 0x10], rsi
mov qword [rbp - 8], r14
lea rax, [0x140438b60]
mov qword [rbp - 0x28], rax
mov rax, qword [rbp - 0x50]
lea rcx, [rax + 0xbc]
lea r8, [rbp - 0x28]
mov edx, 0x80
call fcn.1403d2b50
mov rax, qword [rbp - 8]
cmp rax, 8
jb 0x1403499b1
mov rcx, qword [rbp - 0x20]
lea rdx, [rax + rax]
add rdx, 2
cmp rdx, 0x1000
jb 0x140349982
mov r8, qword [rcx - 8]
mov rdx, rcx
neg rdx
mov r9, qword [0x140556490]
movabs r10, 0x64bd84be48e3521d
mov r11, r9
xor r11, r10
and r10, r9
lea r10, [r11 + r10*2]
sub r9, r10
movabs r10, 0x64bd84be48e35225
add r10, r9
dec rcx
mov r9, r10
not r9
mov r11, rcx
and r11, r10
xor r10, rdx
and rdx, r9
or rdx, r11
and r9, rcx
or r9, r10
not r9
lea rcx, [rdx + r9*2]
add rcx, r8
neg rcx
cmp rcx, 0x20
jae 0x140349a58
add rax, rax
mov rcx, rax
xor rcx, 0x29
and eax, 0x29
lea rdx, [rcx + rax*2]
mov rcx, r8
mov eax, dword [0x140556168]
add eax, dword [rbp]
sub eax, dword [0x140556498]
add eax, 0x17ac6eec
cdqe
add rax, qword [0x140556170]
mov r8d, 0x37c1188a
mov r9d, 0xdb0db53b
call qword [case.0x14013cbc3.0]
mov qword [rbp - 0x58], r13
mov r13d, dword [0x140556020]
mov eax, r13d
xor eax, 1
mov ecx, r13d
and ecx, 1
lea r14d, [rax + rcx*2]
mov dword [0x140556020], r14d
xor esi, esi
test r13d, r14d
jne 0x140349a46
test r12d, r12d
jle 0x140349a46
movabs rax, 0x52882d25d141129b
add rdi, rax
movabs rax, 0xc83fc93ff7b3058c
movabs rcx, 0x483fc93ff7b3058c
xor rax, rdi
and rcx, rdi
lea rcx, [rax + rcx*2]
add rcx, r15
movabs rax, 0xe538099a370be7d9
add rax, rcx
xor ecx, ecx
xor esi, esi
nop
movsxd rcx, ecx
xor esi, dword [rax + rcx]
neg ecx
mov edx, 0x17ac982b
sub edx, dword [0x140556498]
mov r8d, ecx
xor r8d, edx
and edx, ecx
lea ecx, [r8 + rdx*2]
neg ecx
cmp ecx, r12d
jl 0x140349a20
mov eax, dword [0x14057860c]
cmp eax, 0x1a
jle 0x140349a5d
jmp 0x140349a68
call fcn.140085ac0
call fcn.1403d599c
mov eax, dword [0x14057860c]
cmp eax, 0x5e
jl 0x140349a86
lea rax, [fcn.140349280]
add eax, eax
add eax, 0x3a0
mov ecx, eax
not ecx
nop word [rax + rax]
test ecx, eax
jne 0x140349a80
jmp 0x140349a5d
mov qword [rbp - 0x10], 0
mov qword [rbp - 8], 7
mov word [rbp - 0x20], 0
mov rax, qword [rbp - 0x30]
movabs rcx, 0x64bd84be48e3522c
add rcx, qword [0x140556490]
cmp rax, rcx
mov rdi, qword [rbp]
lea r15, [rbp - 0x20]
jbe 0x140349b6b
mov rcx, qword [rbp - 0x48]
movabs rdx, 0x201529f6ad143a72
lea rdx, [rdx + rax*2]
movabs r8, 0xdfead60952ebc590
xor r8, rdx
movabs r9, 0x5fead60952ebc590
and r9, rdx
lea rdx, [r8 + r9*2]
cmp rdx, 0x1000
jb 0x140349b31
mov r8, qword [rcx - 8]
mov rdx, rcx
xor rdx, 0xfffffffffffffff8
movabs r9, 0x7ffffffffffffff8
and r9, rcx
lea rcx, [rdx + r9*2]
sub rcx, r8
cmp rcx, 0x20
jae 0x140349e14
add rax, rax
add rax, 0x29
mov rdx, rax
mov rcx, r8
mov eax, dword [0x140556168]
add eax, edi
neg eax
mov r8d, eax
xor r8d, 0x2943
and eax, 0x2943
lea eax, [r8 + rax*2]
neg eax
cdqe
add rax, qword [0x140556170]
mov r8d, 0x37c1188a
mov r9d, 0xdb0db53b
call qword [case.0x14013cbc3.0]
mov eax, dword [0x14055615c]
add eax, edi
add eax, 0xffffd6bd
cdqe
add rax, qword [0x140556198]
lea rcx, [rbp + 8]
lea rbx, [rbp - 0x48]
mov rdx, rbx
mov r8d, 0x4602a612
call qword [case.0x14013cbc3.0]
xorps xmm0, xmm0
movups xmmword [rbp - 0x10], xmm0
mov rdi, qword [rbp - 0x38]
cmp qword [rbp - 0x30], 8
jb 0x140349bae
mov rbx, qword [rbp - 0x48]
cmp rdi, 7
ja 0x140349bc6
movups xmm0, xmmword [rbx]
movups xmmword [r15], xmm0
mov r15d, 7
jmp 0x140349c52
mov r15, rdi
or r15, 7
movabs rax, 0x7ffffffffffffffe
cmp r15, rax
cmovae r15, rax
lea rcx, [r15 + r15]
movabs rax, 0x64bd84be48e35a23
add rax, qword [0x140556490]
cmp r15, rax
jbe 0x140349c32
movabs rax, 0x7fffffffffffffec
cmp r15, rax
jae 0x140349e19
add rcx, 0x29
call fcn.1403f542c
mov rdx, rax
add rdx, 0x27
mov ecx, edx
not ecx
xor rdx, 0xffffffffffffffe0
and ecx, 0x1f
or rcx, rdx
not rcx
mov qword [rcx - 8], rax
jmp 0x140349c3e
add rcx, 2
call fcn.1403f542c
mov rcx, rax
mov qword [rbp - 0x20], rcx
lea r8, [rdi + rdi]
add r8, 2
mov rdx, rbx
call fcn.14041d3c0
mov qword [rbp - 0x10], rdi
mov qword [rbp - 8], r15
lea rax, [0x140438b60]
mov qword [rbp - 0x28], rax
mov r15, qword [rbp - 0x50]
lea rcx, [r15 + 0x154]
lea r8, [rbp - 0x28]
mov edx, 0x100
call fcn.1403d2b50
mov rax, qword [rbp - 8]
cmp rax, 8
mov rdi, qword [rbp]
jb 0x140349d95
mov r8, qword [rbp - 0x20]
mov r9, qword [0x140556490]
mov ecx, r9d
xor ecx, 0x26
mov edx, r9d
and edx, 0x26
lea ecx, [rcx + rdx*2]
shl rax, cl
lea rdx, [rax + 2]
movabs rcx, 0x1dea06e763bdd607
mov r10, r9
xor r10, rcx
and r9, rcx
lea rcx, [r10 + r9*2]
movabs r9, 0x46d37dd6e5258c1d
add r9, rcx
cmp rdx, r9
jbe 0x140349d5e
mov rcx, qword [r8 - 8]
mov rdx, r8
xor rdx, 0xfffffffffffffff8
not r8d
and r8d, 7
or r8, rdx
not r8
lea rdx, [rdx + r8*2]
sub rdx, rcx
mov r8, qword [0x140556490]
movabs r9, 0x64bd84be48e35245
mov r10, r8
xor r10, r9
and r8, r9
lea r8, [r10 + r8*2]
cmp rdx, r8
jae 0x140349e1e
mov rdx, rax
not rdx
mov r8, rax
xor r8, 0x29
movabs r9, 0x7fffffffffffffd6
and r9, rdx
or r9, r8
and r8, rdx
xor rax, 0xffffffffffffffd6
and edx, 0x29
or rdx, rax
not rdx
or rdx, r8
not r9
lea rdx, [rdx + r9*2]
mov r8, rcx
mov eax, edi
xor eax, edi
not eax
and eax, dword [0x140556168]
xor eax, edi
sub eax, dword [0x140556498]
add eax, 0x17ac6eec
cdqe
add rax, qword [0x140556170]
mov rcx, r8
mov r8d, 0x37c1188a
mov r9d, 0xdb0db53b
call qword [case.0x14013cbc3.0]
mov qword [rbp - 0x10], 0
mov qword [rbp - 8], 7
mov word [rbp - 0x20], 0
mov rax, qword [rbp - 0x30]
cmp rax, 8
jb 0x140349e6a
mov rcx, qword [rbp - 0x48]
lea r8, [rax + rax]
add r8, 2
cmp r8, 0x1000
jb 0x140349e28
mov r9, qword [rcx - 8]
sub rcx, r9
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x140349e23
add rax, rax
mov ecx, eax
not ecx
and ecx, 0x29
mov rdx, rax
and rdx, 0xffffffffffffffd6
or rdx, rcx
and eax, 0x29
lea r8, [rdx + rax*2]
mov eax, dword [0x140578608]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x140349eee
jmp 0x140349ec2
call fcn.1403d599c
call fcn.140085ac0
call fcn.1403d599c
call fcn.1403d599c
mov eax, dword [0x140556168]
sub eax, edi
mov edx, dword [0x140556498]
mov r9d, edx
xor r9d, 0xe8539114
and edx, 0x68539114
lea edx, [r9 + rdx*2]
sub eax, edx
cdqe
add rax, qword [0x140556170]
mov rdx, r8
mov r8d, 0x37c1188a
mov r9d, 0xdb0db53b
call qword [case.0x14013cbc3.0]
add r15, 0x254
mov eax, dword [0x140556158]
mov ecx, eax
and ecx, edi
xor eax, edi
xor eax, ecx
add eax, 0xffffd6bd
cdqe
add rax, qword [0x140556190]
mov dword [rsp + 0x20], 0x22b21224
mov edx, 0x80
mov rcx, r15
mov r8, qword [rbp - 0x58]
mov r9d, 0xe4c1975c
call qword [case.0x14013cbc3.0]
nop
add rsp, 0x98
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov eax, r13d
and eax, r14d
mov ecx, dword [0x14045c450]
cmp eax, 1
mov eax, dword [0x140556498]
sbb eax, 0xffffffff
mov edx, dword [0x140578608]
lea r10d, [rdx + 1]
imul r10d, edx
test r10b, 1
je 0x140349ef6
mov eax, dword [0x14045c450]
jmp 0x140349ec2
add eax, 0xe85367d0
sub ecx, esi
mov edx, ecx
not edx
mov r10d, eax
not r10d
xor r10d, edx
mov edx, ecx
xor edx, eax
and ecx, eax
xor ecx, r10d
not ecx
or ecx, edx
nop word [rax + rax]
mov esi, dword [0x140556498]
lea eax, [rsi - 0x17ac9830]
mov edx, 0x17ac982f
sub edx, esi
xor edx, eax
and edx, ecx
xor edx, eax
lea eax, [rsi - 0x17ac982f]
cmp edx, eax
sete r10b
setne bl
movzx r11d, byte [0x1405760e8]
mov edx, dword [0x140578608]
lea eax, [rdx - 1]
imul eax, edx
add esi, 0xe85367d3
xor edx, edx
div esi
test edx, edx
jne 0x140349f20
mov eax, r11d
xor al, 1
mov ecx, r11d
xor cl, bl
mov edx, eax
and dl, r10b
xor dl, cl
xor dl, 1
xor bl, al
and r11b, r10b
or r11b, bl
xor r11b, 1
xor al, r10b
and al, r10b
or al, r11b
or al, dl
mov ecx, dword [0x140578608]
mov edx, 1
sub edx, ecx
imul edx, ecx
test dl, 1
jne 0x140349fd3
mov ecx, eax
and cl, 1
mov byte [0x1405760e8], cl
mov ecx, dword [0x140578608]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
mov ecx, 0xe85367d1
add ecx, dword [0x140556498]
cmp edx, ecx
je 0x140349ff3
mov ecx, eax
and cl, 1
nop dword [rax + rax]
mov byte [0x1405760e8], cl
mov edx, dword [0x14057860c]
cmp edx, 0x4f
jge 0x140349fe0
jmp 0x140349faa
mov rcx, r9
jmp 0x140349e28