Function at 0x140356a50
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x2b8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x230], 0xfffffffffffffffe
mov rdi, r8
movsxd r8, dword [0x14045ca40]
sub r8, qword [0x140557ab0]
mov rbx, rcx
movabs rax, 0xb45fa6984f41386e
add rax, r8
lea rcx, [fcn.140356a50]
add ecx, ecx
add ecx, 0x25a0
mov r8d, ecx
not r8d
test r8d, ecx
je 0x140356ae2
mov ecx, 0x563f8f5e
nop word cs:[rax + rax]
mov r9d, dword [0x140578688]
lea r8d, [r9 - 1]
imul r8d, r9d
and r8d, 1
mov r9d, dword [0x140557aac]
add r9d, ecx
cmp r8d, r9d
jne 0x140356ac0
lea rcx, [0x14045ca40]
add rax, rcx
movabs rcx, 0x77b480bdc11e9437
mov r8, rax
xor r8, rcx
and rax, rcx
lea rcx, [r8 + rax*2]
movabs rax, 0xcc703a894948e274
add rax, rcx
mov ecx, dword [0x14057868c]
cmp ecx, 0x3e
jge 0x140356b3a
mov ecx, dword [0x14045ca3c]
mov r9d, dword [0x14057868c]
mov r8d, 0x563f8f97
add r8d, dword [0x140557aac]
cmp r9d, r8d
jl 0x140356b5e
lea rcx, [fcn.140356a50]
add ecx, ecx
add ecx, 0x3e80
mov r9d, ecx
not r9d
nop
mov r8d, dword [0x14045ca3c]
test r9d, ecx
jne 0x140356b50
jmp 0x140356b1b
mov r8, qword [rdi]
cmp r8, qword [rdi + 8]
je 0x140356d36
mov r8, qword [0x140578588]
cmp qword [r8 + 0x498], 0
je 0x140356d36
mov qword [rbp + 0x210], rdx
mov qword [rbp + 0x218], r8
mov rdx, qword [r8 + 0x4a0]
mov qword [rbp + 0x220], rdx
mov r8d, dword [0x140557140]
lea r9d, [r8 + 1]
mov r10d, dword [0x14057868c]
cmp r10d, 0x61
jge 0x140356bd0
mov dword [0x140557140], r9d
mov r10d, dword [0x140578688]
lea r11d, [r10 - 1]
imul r11d, r10d
test r11b, 1
je 0x140356bd9
mov dword [0x140557140], r9d
jmp 0x140356bb4
mov r10d, r8d
not r10d
mov r11d, 0x563f8f5f
lea rsi, [fcn.140356a50]
add esi, esi
add esi, 0x3340
nop word cs:[rax + rax]
mov r14d, dword [0x140557aac]
mov r15d, dword [0x140578688]
mov r12d, r15d
sub r12d, r14d
inc r12d
imul r12d, r15d
test r12b, 1
je 0x140356c38
mov edx, dword [0x140557aac]
add edx, r11d
mov r14d, esi
xor r14d, edx
not r14d
test r14d, edx
jmp 0x140356c00
add r14d, 0x563f8f5d
xor r14d, r9d
mov r11d, r9d
xor r11d, r9d
not r11d
and r11d, r8d
xor r11d, r9d
xor r10d, r14d
not r14d
and r14d, r8d
or r14d, r10d
not r14d
mov r8d, r11d
and r8d, r14d
xor r14d, r11d
xor r14d, r8d
xor r13d, r13d
xor r14d, 0xffffffff
mov esi, 0
jne 0x140356c90
xor r8d, r8d
mov r13d, 0
mov esi, 0
test ecx, ecx
jg 0x140356e3a
cmp qword [rbp + 0x220], 0
je 0x140356d36
mov dword [rsp + 0x20], 0x16845dd8
lea rcx, [rbp + 0x1d8]
mov rdx, qword [rbp + 0x210]
mov r8d, 0xbdcbe650
mov r9d, 0xc6ff4f20
call fcn.14035cb40
mov rax, qword [rbp + 0x218]
mov rax, qword [rax + 0x4a0]
lea r15, [rbp + 0x1e0]
cmp qword [rbp + 0x1f8], 8
mov rdx, r15
jb 0x140356cee
mov rdx, qword [rbp + 0x1e0]
xor ecx, ecx
xor r8d, r8d
call qword [case.0x14013cbc3.0]
test eax, eax
je 0x140357186
lea rcx, [rbx + 0x630]
mov qword [rbp + 0x220], rcx
mov eax, eax
mov r12, qword [rbx + 0x630]
mov rcx, qword [rbx + 0x638]
mov rdx, rcx
sub rdx, r12
cmp rdx, rax
jbe 0x140356d4e
add r12, rax
mov qword [rbx + 0x638], r12
jmp 0x140356d76
xor ebx, ebx
mov eax, ebx
add rsp, 0x2b8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
jae 0x140356d76
mov r8, qword [rbx + 0x640]
sub r8, r12
cmp r8, rax
jae 0x140356fa3
lea r8, [rbp - 0x50]
mov rcx, qword [rbp + 0x220]
mov rdx, rax
call fcn.1401e6bb0
mov rax, qword [rbp + 0x218]
mov rax, qword [rax + 0x4a8]
mov rcx, qword [rbx + 0x630]
mov edx, dword [rbx + 0x638]
sub edx, ecx
mov r8d, dword [0x140575a38]
xor edx, r8d
mov r9d, edx
not r9d
and r8d, r9d
add r8d, r8d
mov r10d, r8d
xor r10d, r9d
xor r9d, edx
and r9d, r8d
xor r9d, edx
and r10d, r8d
lea r9d, [r9 + r10*2]
add r9d, dword [0x140575be0]
cmp qword [rbp + 0x1f8], 8
jb 0x140356dd7
mov r15, qword [rbp + 0x1e0]
mov r10, qword [case.0x14013cbc3.0]
mov qword [rsp + 0x20], rcx
xor ecx, ecx
mov rdx, r15
xor r8d, r8d
call r10
test eax, eax
je 0x140357186
mov qword [rbp + 0x200], 0
mov dword [rbp + 0x22c], 0
mov rax, qword [rbp + 0x218]
mov rax, qword [rax + 0x4b0]
mov rcx, qword [rbx + 0x630]
cmp qword [rbx + 0x5e0], 8
jb 0x140356eff
mov rdx, qword [rbx + 0x5c8]
jmp 0x140356f06
mov r9b, 1
xor r13d, r13d
xor esi, esi
jmp 0x140356e8d
mov rdx, r13
not rdx
mov r15, rsi
not r15
and r15, r11
not r11
and rdx, r10
not r10
xor rsi, r11
xor r13, r10
not r13
not rsi
and rsi, r11
or rsi, r15
and r13, r10
or r13, rdx
add r8d, 0x10
cmp r8d, ecx
jge 0x140356c90
movsxd r11, r8d
mov r10, qword [rax + r11]
mov r11, qword [rax + r11 + 8]
mov r15d, dword [0x140578688]
mov edx, dword [0x140557aac]
mov r12d, edx
not r12d
add r12d, r15d
imul r12d, r15d
and r12d, 1
add edx, 0x563f8f5e
cmp r12d, edx
jne 0x140356ee0
nop word cs:[rax + rax]
test r9b, r9b
jne 0x140356e50
nop dword [rax]
mov edx, dword [0x140578688]
mov r15d, dword [0x140557aac]
add r15d, edx
dec r15d
imul r15d, edx
test r15b, 1
jne 0x140356ee0
jmp 0x140356ed0
lea rdx, [rbx + 0x5c8]
lea r8, [rbp + 0x200]
lea r9, [rbp + 0x22c]
call qword [case.0x14013cbc3.0]
test eax, eax
je 0x140357186
mov rcx, qword [rbp + 0x200]
movzx eax, word [rcx + 2]
movzx r9d, word [rcx]
cmp qword [rbx + 0x608], 8
jb 0x140356f44
mov r8, qword [rbx + 0x5f0]
jmp 0x140356f4b
lea r8, [rbx + 0x5f0]
mov dword [rsp + 0x20], eax
lea rcx, [rbp - 0x50]
mov edx, 0x200
call fcn.140357390
xor edx, edx
test r14d, r14d
setne dl
xor eax, eax
add rdx, 0xffffffffffffffff
mov r8d, 0
adc r8, 0xffffffffffffffff
sub r13, qword [0x14045ca28]
sbb rsi, qword [0x14045ca30]
mov rcx, r13
neg rcx
sbb rax, rsi
add r13, 0xffffffffffffffff
adc rsi, 0xffffffffffffffff
mov r9d, dword [0x14057868c]
cmp r9d, 0x37
jge 0x140356fd0
jmp 0x140356fb9
sub rax, rdx
lea r12, [rax + rcx]
xor edx, edx
mov r8, rax
call fcn.14041da70
jmp 0x140356d2d
movabs r9, 0x77b9e20a65750e7
add r9, qword [0x140557ab0]
cmp rbx, r9
jne 0x140356fdf
nop
mov r9d, dword [0x14057868c]
cmp r9d, 0x48
jge 0x140356fd0
jmp 0x140356fb9
xor rsi, r8
xor r13, rdx
mov r9, rcx
xor r9, rdx
mov r10, rax
xor r10, r8
and rcx, rdx
xor rcx, r13
or rcx, r9
and rax, r8
xor rax, rsi
or rax, r10
not rcx
not rax
lea rdx, [fcn.140356a50]
add edx, edx
add edx, 0x10e0
mov r11, qword [rbp + 0x218]
nop
mov r8d, dword [0x140557aac]
mov r9d, r8d
xor r9d, 0x4d05e361
and r8d, 0x4d05e361
lea r8d, [r9 + r8*2]
add r8d, 0x939abfe
test edx, r8d
jne 0x140357020
mov rdx, rcx
not rdx
mov r8, rax
not r8
mov r9, rcx
xor r9, rax
mov r10, rdx
and r10, r8
or r10, r9
not r10
and rdx, rax
and r8, rcx
or r8, rdx
or r8, r10
movzx ecx, byte [0x140557ab0]
add cl, 7
mov rax, r8
shr rax, cl
or eax, r8d
mov ecx, dword [0x140575a38]
mov edx, ecx
not edx
mov r8d, eax
not r8d
mov r9d, r8d
xor r9d, edx
xor edx, eax
and eax, ecx
and ecx, r8d
or ecx, edx
not ecx
and r9d, r8d
or r9d, ecx
lea eax, [r9 + rax*2]
mov dword [0x140575a38], eax
mov qword [rbp + 0x208], 0
mov rax, qword [r11 + 0x4b0]
mov rcx, qword [rbp + 0x220]
mov rcx, qword [rcx]
lea rdx, [rbp - 0x50]
lea r8, [rbp + 0x208]
lea r9, [rbp + 0x22c]
call qword [case.0x14013cbc3.0]
test eax, eax
je 0x140357186
mov rdx, qword [rbp + 0x208]
lea rcx, [rbp + 0x1b0]
call fcn.140273760
mov rsi, qword [rbx + 0x538]
mov r15, qword [rbx + 0x540]
cmp rsi, r15
je 0x140357144
lea r14, [rbp + 0x1b8]
nop
add rsi, 0x28
lea rdx, [rsi - 0x20]
xor ebx, ebx
mov rcx, r14
xor r8d, r8d
call fcn.14027a250
cmp rax, 0xffffffffffffffff
jne 0x140357248
cmp rsi, r15
jne 0x140357120
mov rsi, qword [rdi]
cmp rsi, qword [rdi + 8]
je 0x14035717f
lea rbx, [rbp + 0x1b8]
nop word cs:[rax + rax]
add rsi, 0x28
lea rdx, [rsi - 0x20]
mov rcx, rbx
xor r8d, r8d
call fcn.14027a250
cmp rax, 0xffffffffffffffff
jne 0x1403571dd
cmp rsi, qword [rdi + 8]
jne 0x140357160
xor ebx, ebx
jmp 0x140357248
xor ebx, ebx
mov rax, qword [rbp + 0x1f8]
cmp rax, 8
jb 0x140356d38
mov rcx, qword [rbp + 0x1e0]
lea rdx, [rax + rax]
add rdx, 2
cmp rdx, 0x1000
jb 0x1403571d3
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x1403572a5
add rax, rax
add rax, 0x29
mov rdx, rax
mov rcx, r8
call fcn.1400a87c0
jmp 0x140356d38
cmp qword [0x1405785b0], 0
mov rsi, qword [rbp + 0x210]
jne 0x14035722d
mov ecx, 0x30
call fcn.1403f542c
mov qword [rax + 0x28], 0xf
lea rcx, [0x1404388f8]
mov qword [rax + 8], rcx
mov dword [rax], 0
mov qword [rax + 0x20], 0
movzx ecx, byte [0x140557aa8]
add cl, 0xc3
mov byte [rax + 0x10], cl
mov qword [0x1405785b0], rax
mov rcx, qword [0x1405785b0]
mov dword [rcx], 0x15
add rcx, 8
mov bl, 1
mov rdx, rsi
call fcn.140270da0
mov rax, qword [rbp + 0x1d0]
cmp rax, 0x10
jb 0x140357188
mov rcx, qword [rbp + 0x1b8]
mov r8, qword [0x140557ab0]
add r8, rax
movabs rdx, 0x77b9e20a65750e8
add rdx, r8
cmp rdx, 0x1000
jb 0x14035729b
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x1403572aa
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400a87c0
jmp 0x140357188
call fcn.1403d599c
call fcn.1403d599c
int3