Function at 0x140354c60
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x1d8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x150], 0xfffffffffffffffe
mov r15, rdx
mov rsi, rcx
xorps xmm0, xmm0
movups xmmword [rdx], xmm0
mov qword [rdx + 0x10], 0
mov rdi, qword [rcx + 0x10]
mov rbx, qword [rcx + 0x18]
cmp rdi, rbx
je 0x140354d68
mov rax, qword [0x14054aac8]
sub rax, rdi
movabs rcx, 0x7b68482227451a30
add rbx, rcx
add rbx, rax
cmp rbx, 0x1000
jb 0x140354d38
cmp byte [0x1405646f0], 0
jne 0x140354ce1
cmp rbx, 0xffffffffffffffd9
jae 0x140354ff8
lea rax, [rbx + 0x27]
mov rcx, qword [0x140566c98]
mov rdx, rcx
xor rdx, rax
and rcx, rax
lea rcx, [rdx + rcx*2]
mov edx, 0xe759e265
mov r8d, 0xd1042c9f
call fcn.1400aaef0
mov rdx, rax
sub rdx, qword [0x14054aac8]
movabs rcx, 0x8497b7ddd8bae5f7
add rcx, rdx
mov rdx, rcx
xor rdx, 0xffffffffffffffe0
not ecx
and ecx, 0x1f
or rcx, rdx
not rcx
mov qword [rcx - 8], rax
jmp 0x140354d4e
mov rcx, rbx
mov edx, 0xe759e265
mov r8d, 0xd1042c9f
call fcn.1400aaef0
mov rcx, rax
mov qword [r15], rcx
lea r14, [rcx + rbx]
mov qword [r15 + 0x10], r14
mov rdx, rdi
mov r8, rbx
call fcn.14040bf30
mov qword [r15 + 8], r14
mov qword [rbp + 0x148], r15
mov r14, qword [r15]
lea rdi, [rbp - 0x40]
mov rcx, rdi
mov edx, 0xd1042c9f
mov r8d, 0xb87f9260
mov r9d, 0xaf8da97a
call fcn.140149560
mov edx, dword [0x14043104c]
mov rcx, rdi
call fcn.1402033b0
lea rcx, [rbp - 0x40]
call fcn.1402033f0
lea rdx, [r14 + 0x28]
lea rcx, [rbp - 0x40]
mov r8d, 0x400
call fcn.140203430
lea rbx, [r14 + 0x478]
lea rdx, [r14 + 0x47c]
movsxd r15, dword [0x14044ba2c]
xor eax, eax
test al, al
jne 0x140354dd0
mov r12d, dword [0x14044ba28]
lea rcx, [rbp - 0x40]
mov r8d, 0x20
call fcn.140203480
lea rcx, [rbp - 0x40]
call fcn.1401480d0
mov rcx, qword [rsi]
lea rdi, [r14 + 0x428]
mov r8d, 0x10
mov rdx, rdi
call fcn.140120cd0
mov byte [rbp - 0x40], 0
lea r13, [rbp - 0x3c]
mov r8d, 0x150
mov rcx, r13
xor edx, edx
call fcn.14040c5e0
mov rcx, r13
xor edx, edx
call fcn.1402b4460
lea rax, [rbp + 0x14]
xorps xmm0, xmm0
movups xmmword [rbp + 0x14], xmm0
movzx r9d, byte [rbp - 0x40]
mov qword [rsp + 0x20], rax
mov r8d, 0x10
mov rcx, r13
mov rdx, rdi
call fcn.1402b4600
mov r8d, 0xc0
lea rcx, [rbp - 0x3c]
mov rdx, rbx
mov r9, rbx
call fcn.1402b49a0
lea rcx, [rbp - 0x3c]
lea rax, [0x14044ba2c]
add r15, rax
mov eax, dword [0x14054a7c0]
lea ebx, [rax + 1]
mov dword [0x14054a7c0], ebx
mov edx, dword [0x140567058]
mov edx, eax
not edx
xor eax, ebx
not ebx
and ebx, edx
or ebx, eax
not ebx
nop dword [rax]
cmp dword [0x14054aad4], 0x2c6496dd
jne 0x140354ea0
xor r13d, r13d
test ebx, ebx
jne 0x140354ee0
test r12d, r12d
jle 0x140354ee0
xor eax, eax
xor r13d, r13d
nop dword [rax]
cdqe
xor r13d, dword [r15 + rax]
add eax, 0xa63c269a
mov edx, eax
xor edx, 4
and eax, 4
lea eax, [rdx + rax*2]
add eax, 0x59c3d966
cmp eax, r12d
jl 0x140354ec0
call fcn.1402b48a0
xorps xmm0, 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
mov eax, dword [0x14054aad4]
cmp ebx, 1
adc eax, 0xffffffff
movaps xmmword [rbp - 0x40], xmm0
mov ecx, 0x2c6496dc
sub r13d, dword [0x14044ba20]
sub ecx, eax
mov eax, r13d
neg eax
dec r13d
mov edx, eax
xor edx, r13d
and edx, ecx
xor edx, r13d
mov ecx, edx
not ecx
xor edx, eax
and ecx, r13d
or ecx, edx
xor ecx, 0xffffffff
setne al
sete cl
movzx edx, byte [0x1405646f0]
mov r8d, edx
xor r8b, cl
and r8b, dl
xor cl, al
and cl, dl
xor cl, al
or cl, r8b
mov byte [0x1405646f0], cl
movaps xmmword [rbp + 0x120], xmm0
movaps xmmword [rbp + 0x130], xmm0
mov rcx, qword [rsi]
lea rdx, [rbp + 0x120]
mov r8d, 0x20
call fcn.140120cd0
lea rax, [r14 + 0x438]
mov rdx, qword [rsi + 8]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x30], 0x10
mov qword [rsp + 0x20], 0x1c
lea rcx, [rbp - 0x40]
lea r9, [rbp + 0x120]
mov r8d, 0x40
call fcn.1403c26f0
mov rcx, qword [rsi]
lea rdx, [rbp + 0x120]
mov r8d, 0x20
call fcn.140120cd0
mov rax, qword [rbp + 0x148]
mov ecx, dword [rax + 8]
sub ecx, dword [rax]
mov dword [r14 + 0x24], ecx
add rsp, 0x1d8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call fcn.140084910
int3