Function at 0x140110980
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov rdi, r8
mov rbx, rdx
mov qword [rsp + 0x28], rcx
mov rax, qword [0x140554790]
xor rax, rsp
mov qword [rsp + 0x40], rax
movabs rsi, 0xffdfa172a9d42ffc
movabs r15, 0xdfaae8508f22adb0
movabs r12, 0x9eed4407aa542227
movabs r13, 0x794b16577a040bd7
xor eax, eax
test al, al
jne 0x140110a04
mov rax, rdi
sub rax, rbx
sar rax, 3
lea rbp, [rbx + rax*4]
lea r8, [rdi - 4]
mov rcx, rbx
mov rdx, rbp
call fcn.140111230
mov eax, dword [0x1405640dc]
cmp eax, 0x20
jl 0x140110ad6
movabs rbp, 0xd614fcdcfeeb755a
lea r14, [rdi - 4]
nop word cs:[rax + rax]
mov eax, edi
sub eax, ebx
imul eax, ebx
mov ecx, edi
sub ecx, eax
imul ecx, eax
mov rax, rdi
shl rax, cl
mov ecx, edi
sub ecx, eax
imul ecx, eax
mov rax, rdi
shl rax, cl
sub rax, rdi
add rax, rsi
add rax, qword [0x140501b90]
mov rcx, rbp
sub rcx, rax
mov rax, rcx
xor rax, rsi
and rcx, rsi
lea rax, [rax + rcx*2]
lea rax, [rax + rax*2]
mov r8d, 3
sub r8, rax
mov eax, r8d
xor eax, r13d
mov ecx, r12d
sub ecx, r8d
mov edx, r8d
and edx, r13d
lea eax, [rax + rdx*2]
add eax, r15d
sub eax, r13d
sub eax, r15d
lea eax, [rax + rax*2]
sub ecx, r12d
add ecx, eax
add cl, 0xf7
mov rax, r8
shl rax, cl
mov ecx, eax
shl r8, cl
mov rdx, r8
shl rdx, cl
mov ecx, edx
sar r8, cl
lea rdx, [rbx + r8*4]
mov rcx, rbx
mov r8, r14
call fcn.140111230
mov eax, dword [0x1405640d8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x140110a20
jmp 0x1401109d8
mov r8, rbp
jmp 0x140110ae8
lea r8, [rax - 4]
cmp edx, ecx
jne 0x140110b38
mov rax, r8
cmp r8, rbx
jbe 0x140110b38
mov ecx, dword [0x1405640dc]
cmp ecx, 0x26
jg 0x140110b20
nop dword [rax + rax]
mov ecx, dword [rax - 4]
mov edx, dword [rax]
mov r8d, dword [0x1405640d8]
lea r9d, [r8 - 1]
imul r9d, r8d
test r9b, 1
je 0x140110ae0
nop word [rax + rax]
mov ecx, dword [0x1405640dc]
cmp ecx, 0x2e
jge 0x140110b20
jmp 0x140110b00
cmp edx, ecx
jne 0x140110be3
mov ecx, dword [0x1405640d8]
mov edx, dword [0x140501b88]
add edx, ecx
add edx, 0x50756f54
jmp 0x140110b59
mov ecx, dword [0x1405640d8]
lea edx, [rcx + 1]
imul edx, ecx
test dl, 1
jne 0x140110b50
mov ecx, dword [0x1405640d8]
mov edx, ecx
not edx
imul edx, ecx
test dl, 1
jne 0x140110b50
add rbp, 4
cmp rbp, rdi
jae 0x140110be3
mov ecx, dword [0x1405640dc]
cmp ecx, 0x23
jg 0x140110bd0
nop word [rax + rax]
mov ecx, dword [rbp]
mov edx, dword [rax]
mov r8d, dword [0x1405640d8]
lea r9d, [r8 - 1]
imul r9d, r8d
and r9d, 1
mov r8d, dword [0x140501b88]
mov r10d, r8d
xor r10d, 0xe3cf9ea3
and r8d, 0x63cf9ea3
lea r8d, [r10 + r8*2]
cmp r9d, r8d
je 0x140110b30
nop dword [rax]
mov ecx, dword [0x1405640d8]
lea edx, [rcx + 1]
imul edx, ecx
test dl, 1
jne 0x140110bd0
jmp 0x140110b90
mov r15d, 0xe3cf9ea3
mov r12b, 1
lea r9, [rsp + 0x38]
mov r13d, 0xe3cf9ea5
mov r14, rbp
mov rcx, rax
jmp 0x140110c08
add rbp, 4
add r14, 4
cmp r14, rdi
jae 0x140110ccd
mov edx, dword [rax]
mov r8d, dword [r14]
cmp edx, r8d
jb 0x140110c04
ja 0x140110ccd
cmp rbp, r14
je 0x140110caa
nop word [rax + rax]
mov edx, dword [0x1405640d8]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
jne 0x140110c30
mov edx, dword [0x1405640d8]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
jne 0x140110c30
cmp r9, rbp
je 0x140110c64
mov edx, dword [rbp]
mov dword [rsp + 0x38], edx
mov edx, dword [r14]
mov dword [rbp], edx
cmp r9, r14
je 0x140110c80
mov edx, dword [rsp + 0x38]
mov dword [r14], edx
nop word cs:[rax + rax]
mov edx, dword [0x1405640dc]
cmp edx, 0x61
jg 0x140110ca3
mov edx, dword [0x1405640d8]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
je 0x140110c00
test r12b, r12b
je 0x140110c80
jmp 0x140110c8b
mov edx, dword [0x1405640d8]
mov r8d, edx
sub r8d, dword [0x140501b88]
imul r8d, edx
test r8b, 1
jne 0x140111010
jmp 0x140110fe0
cmp rcx, rbx
jbe 0x140110e5a
mov rdx, rcx
mov rsi, rax
nop dword [rax]
lea rcx, [rdx - 4]
mov eax, dword [rdx - 4]
mov r8d, dword [rsi]
cmp eax, r8d
jb 0x140110e23
mov r9d, dword [0x1405640d8]
lea r10d, [r9 - 1]
imul r10d, r9d
test r10b, 1
cmp r8d, eax
setb r9b
mov r10d, dword [0x140501b88]
mov r11d, 0xe3cf9ea4
add r10d, r11d
lea r11, [fcn.140110980]
add r11d, r11d
add r11d, 0x480
xor r10d, r11d
not r10d
test r10d, r11d
jne 0x140110d06
or r9b, byte [0x1405640e1]
test r9b, 1
jne 0x140110fc1
lea rax, [rsi - 4]
cmp rsi, rdx
je 0x140110e20
mov edx, dword [0x1405640dc]
cmp edx, 0x3c
jg 0x140110d80
nop word cs:[rax + rax]
test r12b, r12b
jne 0x140110d90
nop word cs:[rax + rax]
cmp dword [0x140501b88], 0x1c30615d
jne 0x140110d80
jmp 0x140110d70
lea r8, [rsp + 0x38]
cmp r8, rax
je 0x140110da0
mov edx, dword [rax]
mov dword [rsp + 0x38], edx
mov edx, dword [rcx]
mov dword [rax], edx
cmp r8, rcx
je 0x140110e20
nop dword [rax]
mov edx, dword [0x1405640d8]
mov r8d, dword [0x140501b88]
mov r9d, r8d
xor r9d, 0xc2
and r8d, 0x7658e4c2
lea r8d, [r9 + r8*2]
add r8d, edx
add r8d, 0x6d76b9e2
imul r8d, edx
test r8b, 1
jne 0x140110df7
mov edx, dword [rsp + 0x38]
mov dword [rcx], edx
mov edx, dword [0x1405640dc]
cmp edx, 0x51
jle 0x140110e20
mov edx, dword [rsp + 0x38]
mov dword [rcx], edx
mov edx, dword [0x1405640d8]
lea r8d, [rdx + 1]
imul r8d, edx
test r8b, 1
jne 0x140110db0
jmp 0x140110de6
mov rsi, rax
cmp rcx, rbx
setbe dl
seta al
movzx r8d, byte [0x1405640e0]
xor al, r8b
not r8b
and r8b, dl
or r8b, al
mov rdx, rcx
test r8b, 1
je 0x140110ce0
mov rdx, rcx
test al, 1
jne 0x140110ce0
jmp 0x140110e5d
mov rsi, rax
cmp rcx, rbx
jne 0x140110e6b
cmp r14, rdi
je 0x1401111f8
cmp rcx, rbx
je 0x140110f2b
lea r15, [rcx - 4]
cmp r14, rdi
lea r9, [rsp + 0x38]
je 0x140110f7f
cmp r9, r14
je 0x140110e92
mov eax, dword [r14]
mov dword [rsp + 0x38], eax
mov qword [rsp + 0x30], rbp
cmp r14, r15
mov r8d, 0x9275412c
je 0x140110f0b
nop word cs:[rax + rax]
mov eax, dword [0x140501b88]
add eax, r8d
mov ecx, eax
xor ecx, 0x515a5d77
and eax, 0x515a5d77
add eax, eax
add eax, ecx
jne 0x140110ed8
mov eax, dword [r15]
mov dword [r14], eax
xor eax, eax
test al, al
je 0x140110f0b
mov eax, dword [r15]
mov dword [r14], eax
mov ecx, dword [0x1405640d8]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, dword [0x140501b88]
mov edx, ecx
xor edx, 0xe3cf9ea5
and ecx, 0x63cf9ea5
lea ecx, [rdx + rcx*2]
xor edx, edx
div ecx
test edx, edx
jne 0x140110eb0
jmp 0x140110ecc
mov eax, dword [0x1405640dc]
cmp eax, 0x4c
lea r13, [0x140111710]
mov ebp, 0xe3cf9ea5
jg 0x140111190
jmp 0x140111173
cmp rbp, r14
lea r9, [rsp + 0x38]
mov r8d, 0x87e2fa10
je 0x140110f6b
cmp r9, rsi
je 0x140110f46
mov eax, dword [rsi]
mov dword [rsp + 0x38], eax
cmp rsi, rbp
je 0x140110f50
mov eax, dword [rbp]
mov dword [rsi], eax
xor eax, eax
test al, al
mov eax, dword [0x1405640dc]
cmp eax, 0x18
jg 0x140110f54
cmp r9, rbp
je 0x140110f6b
mov eax, dword [rsp + 0x38]
mov dword [rbp], eax
mov eax, dword [0x1405640dc]
cmp eax, 0x4f
jg 0x140111050
jmp 0x140111017
lea rax, [rsi - 4]
cmp rcx, rsi
je 0x140110fa9
cmp r9, r15
je 0x140110f94
mov edx, dword [r15]
mov dword [rsp + 0x38], edx
cmp rcx, rsi
je 0x140110f9e
mov ecx, dword [rax]
mov dword [r15], ecx
cmp r9, rax
je 0x140110fa9
mov ecx, dword [rsp + 0x38]
mov dword [rax], ecx
cmp r9, rax
je 0x1401110fd
xor ecx, ecx
test cl, cl
jne 0x1401110e0
jmp 0x1401110ca
mov rcx, rdx
cmp rcx, rbx
je 0x140110e62
jmp 0x140110e6b
mov edx, dword [0x1405640d8]
mov r8d, edx
not r8d
imul r8d, edx
and r8d, 1
mov edx, dword [0x140501b88]
add edx, r15d
cmp r8d, edx
je 0x140110c00
nop word cs:[rax + rax]
test r12b, r12b
je 0x140111010
jmp 0x140110fe0
mov eax, dword [0x1405640dc]
cmp eax, 0x38
jge 0x140111050
cmp r9, rsi
je 0x14011102d
mov eax, dword [rsi]
mov dword [rsp + 0x38], eax
cmp rsi, r14
je 0x140111037
mov eax, dword [r14]
mov dword [rsi], eax
add rbp, 4
mov eax, dword [0x1405640d8]
lea edx, [rax + 1]
imul edx, eax
test dl, 1
jne 0x140111090
jmp 0x14011105d
mov eax, dword [0x1405640dc]
cmp eax, 0x5b
jge 0x140111050
jmp 0x140111017
mov edx, dword [0x1405640d8]
lea eax, [rdx - 1]
imul eax, edx
mov r8d, dword [0x140501b88]
add r8d, r13d
xor edx, edx
div r8d
mov r8d, 0x87e2fa10
test edx, edx
je 0x1401110ae
nop word cs:[rax + rax]
mov eax, dword [0x140501b88]
add eax, r8d
mov edx, eax
xor edx, 0x5beca493
and eax, 0x5beca493
add eax, eax
add eax, edx
jne 0x140111090
jmp 0x14011105d
cmp r9, r14
je 0x1401110ba
mov eax, dword [rsp + 0x38]
mov dword [r14], eax
add rsi, 4
add r14, 4
mov rax, rsi
jmp 0x140110c08
mov ecx, dword [rax]
mov dword [rsp + 0x38], ecx
test r12b, r12b
jne 0x1401110fd
nop word cs:[rax + rax]
mov ecx, dword [rax]
mov dword [rsp + 0x38], ecx
mov ecx, dword [0x1405640d8]
mov edx, 0xfd10a689
sub edx, ecx
imul edx, ecx
test dl, 1
jne 0x1401110e0
jmp 0x1401110ca
lea rcx, [rbp - 4]
nop word cs:[rax + rax]
xor edx, edx
test dl, dl
jne 0x140111121
mov edx, dword [0x1405640dc]
cmp edx, 0x5f
jle 0x14011114e
mov edx, dword [0x140501b88]
mov r8d, 0xe3cf9ea4
add edx, r8d
lea r8, [fcn.140110980]
add r8d, r8d
add r8d, 0x3440
xor r8d, edx
not r8d
test r8d, edx
jne 0x140111110
jmp 0x140111116
cmp rsi, rbp
je 0x140111157
mov edx, dword [rcx]
mov dword [rax], edx
cmp r9, rcx
je 0x140111162
mov edx, dword [rsp + 0x38]
mov dword [rcx], edx
mov rbp, rcx
mov rcx, r15
mov r15d, 0xe3cf9ea3
jmp 0x140110c08
mov eax, dword [0x1405640d8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x1401111c7
nop word cs:[rax + rax]
mov ecx, 0xb
call fcn.1403c3d24
mov qword [0x1405640c8], rax
mov rcx, r13
call fcn.1403e45e0
mov ecx, dword [0x1405640d8]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, dword [0x140501b88]
add ecx, ebp
xor edx, edx
div ecx
test edx, edx
jne 0x140111190
jmp 0x140111173
lea r9, [rsp + 0x38]
cmp r9, r15
je 0x1401111d8
mov eax, dword [rsp + 0x38]
mov dword [r15], eax
add r14, 4
mov rax, rsi
mov rcx, r15
mov r15d, 0xe3cf9ea3
mov r13d, 0xe3cf9ea5
mov rbp, qword [rsp + 0x30]
jmp 0x140110c08
mov rdi, qword [rsp + 0x28]
mov qword [rdi], rsi
mov qword [rdi + 8], rbp
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.1403e4010
mov rax, rdi
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret