Function at 0x140106460
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xb8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x30], 0xfffffffffffffffe
mov r14, rdx
mov rdi, rcx
mov rcx, qword [rcx + 0x108]
lea r9, [rdx + 0xc150]
mov edx, dword [rdx + 0xc154]
mov r8d, dword [r14 + 0xc158]
add rdx, qword [rdi + 0x198]
mov dword [rsp + 0x38], 0xf16c8ae1
mov dword [rsp + 0x30], 0xb49e8864
mov dword [rsp + 0x28], 0x9b696940
mov byte [rsp + 0x20], 1
call fcn.14010ef20
test al, al
jne 0x1401068e5
mov byte [rbp + 0x2f], al
movzx edx, word [r14 + 0xc5d9]
mov rcx, qword [rdi + 0x190]
mov r8d, 0x9e005d4a
mov r9d, 0x53da4cb5
call fcn.1400aca70
mov r15, rax
test rax, rax
lea rsi, [0x140489d28]
cmove r15, rsi
mov eax, dword [0x1405d081c]
cmp eax, 0x41
jge 0x140106526
movsxd rax, dword [0x14048b3b4]
mov ecx, dword [0x1405d081c]
cmp ecx, 0x40
jle 0x14010652e
mov eax, dword [0x14048b3b4]
jmp 0x140106514
mov ecx, dword [0x1405d081c]
lea rcx, [0x14048b3b4]
add rax, rcx
movabs rcx, 0xcd0392339f1a9480
add rcx, rax
movabs rax, 0x32fc6dcc60e56b80
mov rdx, rcx
xor rdx, rax
and rcx, rax
lea r9, [rdx + rcx*2]
nop word cs:[rax + rax]
mov eax, dword [0x1405d081c]
mov ecx, dword [0x14055e6ec]
mov edx, ecx
xor edx, 0x4765e89
and ecx, 0x4765e89
lea ecx, [rdx + rcx*2]
cmp eax, ecx
jge 0x140106570
jmp 0x1401065db
mov eax, dword [0x14048b3d4]
mov ecx, dword [0x1405d0818]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, dword [0x14055e6ec]
mov edx, ecx
xor edx, 0x4765e3c
mov r8d, ecx
and r8d, 0x4765e3c
lea r8d, [rdx + r8*2]
xor edx, edx
div r8d
add ecx, 0x4765e3a
cmp edx, ecx
mov ebx, dword [0x14048b3d4]
mov eax, dword [0x1405d081c]
cmp eax, 0x18
jg 0x1401065a0
mov qword [rbp - 0x30], r9
mov rax, qword [0x14055e6f0]
movabs r12, 0xe9c5a30f9afb576
lea rcx, [rax + r12]
mov qword [rbp + 0x18], rcx
movabs rcx, 0xe9c5a30f9afb585
add rcx, rax
mov qword [rbp + 0x20], rcx
movzx eax, byte [0x14055e6e8]
mov ecx, eax
xor cl, 0x87
and al, 7
add al, al
add al, cl
mov byte [rbp + 8], al
mov edx, 0xf5258b75
add edx, dword [0x14055e6ec]
mov rcx, r15
call fcn.14010d9b0
mov r13, rax
cmp rax, 0xf
jbe 0x14010665c
lea rcx, [rbp + 8]
mov rdx, r13
mov r9, r15
call fcn.140088ec0
jmp 0x14010667d
mov qword [rbp + 0x18], r13
lea rcx, [rbp + 8]
mov rdx, r15
mov r8, r13
call fcn.14046c800
movzx eax, byte [0x14055e6e8]
add al, 0x87
mov byte [rbp + r13 + 8], al
lea r15, [0x140489448]
mov qword [rbp], r15
movzx edx, word [r14 + 0xc5e9]
mov rcx, qword [rdi + 0x190]
call fcn.140269130
test rax, rax
cmovne rsi, rax
add r12, qword [0x14055e6f0]
lea rdi, [rbp - 0x20]
mov qword [rbp - 0x10], r12
mov qword [rbp - 8], 0xf
mov byte [rbp - 0x20], 0
mov rcx, rsi
mov edx, 0xf0af2d3b
call fcn.14010d9b0
mov r14, rax
cmp rax, 0xf
jbe 0x1401066e4
mov rcx, rdi
mov rdx, r14
mov r9, rsi
call fcn.140088ec0
jmp 0x1401066fc
mov qword [rbp - 0x10], r14
mov rcx, rdi
mov rdx, rsi
mov r8, r14
call fcn.14046c800
mov byte [rbp + r14 - 0x20], 0
mov qword [rbp - 0x28], r15
lea rcx, [rbp - 0x38]
lea rdx, [rbp - 0x28]
mov r8, rbp
call fcn.14011dd10
mov rax, qword [rbp - 8]
cmp rax, 0x10
mov r12, qword [rbp - 0x30]
jb 0x140106777
mov rcx, qword [rbp - 0x20]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x140106772
mov r8, qword [rcx - 8]
sub rcx, qword [0x14055e6f0]
sub rcx, r8
movabs rdx, 0xf163a5cf06504a82
add rdx, rcx
cmp rdx, 0x20
jae 0x1401069b4
mov rcx, rax
xor rcx, 0x28
movabs rdx, 0x7fffffffffffffd7
xor rdx, rax
and rdx, rax
lea rdx, [rcx + rdx*2]
mov rcx, r8
call fcn.1400a8fb0
mov r8, qword [rbp + 0x20]
cmp r8, 0x10
jb 0x1401068e1
mov ecx, 0x4765e62
nop word [rax + rax]
mov eax, dword [0x1405d081c]
mov edx, dword [0x14055e6ec]
add edx, ecx
cmp eax, edx
jge 0x1401067bb
mov eax, dword [0x1405d07c4]
mov edx, dword [0x14055e6ec]
mov r9d, dword [0x1405d081c]
cmp r9d, 0x19
jle 0x1401067c8
mov eax, dword [0x1405d081c]
cmp eax, 0x39
jge 0x140106790
jmp 0x1401067a2
mov ecx, edx
xor ecx, 0x39436d81
and edx, 0x39436d81
lea ecx, [rcx + rdx*2]
add ecx, eax
inc ecx
add ecx, 0xcb32f0b9
mov dword [0x1405d07c4], ecx
mov r9d, eax
xor r9d, ecx
not ecx
nop word cs:[rax + rax]
mov edx, dword [0x1405d0818]
lea r10d, [rdx - 1]
imul r10d, edx
test r10b, 1
jne 0x140106800
xor eax, ecx
and eax, ecx
or r9d, eax
xor r10d, r10d
xor r9d, 0xffffffff
mov r11d, 0
jne 0x140106840
xor ecx, ecx
mov r10d, 0
mov r11d, 0
test ebx, ebx
jg 0x1401068f9
mov rcx, qword [rbp + 8]
mov rax, r8
xor rax, 1
mov edx, r8d
and edx, 1
lea rdx, [rax + rdx*2]
cmp rdx, 0xfff
jbe 0x1401068dc
mov rax, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
jae 0x1401069b9
xor ecx, ecx
test r9d, r9d
setne cl
mov rdx, qword [0x14048b3c8]
xor r9d, r9d
add rcx, 0xffffffffffffffff
adc r9, 0xffffffffffffffff
mov rsi, qword [0x14048b3c0]
sub rsi, r10
sbb rdx, r11
xor r9, rdx
xor rcx, rsi
not r9
not rcx
and rcx, rsi
and r9, rdx
or r9, rcx
setne cl
or cl, byte [0x1405d0830]
mov dl, 1
test dl, dl
jne 0x1401068c9
mov edx, ecx
and dl, 1
mov byte [0x1405d0830], dl
add r8, 0x28
and cl, 1
mov byte [0x1405d0830], cl
mov rdx, r8
mov rcx, rax
call fcn.1400a8fb0
movzx eax, byte [rbp + 0x2f]
add rsp, 0xb8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov esi, 0x4765e3c
xor edi, edi
xor r10d, r10d
xor r11d, r11d
jmp 0x14010691b
add edi, r14d
cmp edi, ebx
jge 0x140106840
movsxd rax, edi
mov rdx, qword [r12 + rax]
mov rax, qword [r12 + rax + 8]
mov r14d, dword [0x1405d081c]
cmp r14d, 0x38
mov r14d, dword [0x1405d0818]
mov r15d, dword [0x14055e6ec]
add r15d, r14d
inc r15d
imul r15d, r14d
test r15b, 1
jne 0x140106932
mov r14, rax
xor r14, rax
mov r15, rdx
xor r15, rdx
not r15
and r10, r15
xor r10, rdx
not r14
and r11, r14
xor r11, rax
mov r14d, edi
xor r14d, 0x10
and edi, 0x10
add edi, edi
nop word [rax + rax]
test cl, cl
jne 0x1401069a7
mov edx, dword [0x1405d0818]
lea eax, [rdx - 1]
imul eax, edx
mov r15d, dword [0x14055e6ec]
add r15d, esi
xor edx, edx
div r15d
test edx, edx
je 0x140106910
mov eax, dword [0x1405d081c]
cmp eax, 0x19
jge 0x140106980
jmp 0x140106984
call fcn.140424a4c
call fcn.140424a4c
int3