Function at 0x140095380
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r12
push r13
push r14
push r15
sub rsp, 0x40
lea rbp, [rsp + 0x20]
mov qword [rbp + 0x50], rbx
mov qword [rbp + 0x58], rsi
mov qword [rbp + 0x60], rdi
mov rax, qword [0x140479080]
xor rax, rbp
mov qword [rbp + 0x10], rax
xor edi, edi
mov rsi, rdx
xor edx, edx
mov rbx, rcx
mov r14d, edi
lea r8d, [rdi + 0x58]
call fcn.14025e440
movsxd r9, dword [rsi + 4]
test r9d, r9d
jle 0x1400953f7
mov r8, qword [rsi + 8]
mov ecx, edi
nop dword [rax]
nop word [rax + rax]
cmp byte [r8 + rcx], dil
lea eax, [r14 + 1]
cmovle eax, r14d
inc rcx
mov r14d, eax
cmp rcx, r9
jl 0x1400953e0
mov dword [rbx + 4], r9d
mov dword [rbx + 8], r14d
mov eax, dword [rsi]
mov dword [rbx], eax
test r14d, r14d
jle 0x14009598a
mov edx, dword [rsi + 4]
mov r8d, r14d
mov rcx, qword [rsi + 8]
call fcn.140094e00
movsxd r12, r14d
mov r13, rax
movabs r15, 0xffffffffffffff0
lea rcx, [r12*8]
lea rax, [rcx + 0xf]
cmp rax, rcx
ja 0x14009543f
mov rax, r15
and rax, 0xfffffffffffffff0
call fcn.14023fb30
sub rsp, rax
lea r10, [rsp + 0x20]
mov qword [rbp], r10
test r13, r13
jne 0x1400954b7
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x140095467
call fcn.1402670a8
mov rcx, qword [rbx + 0x20]
test rcx, rcx
je 0x140095475
call fcn.1402670a8
mov rcx, qword [rbx + 0x28]
test rcx, rcx
je 0x140095483
call fcn.1402670a8
mov rcx, qword [rbx + 0x30]
test rcx, rcx
je 0x140095491
call fcn.1402670a8
mov rcx, qword [rbx + 0x38]
test rcx, rcx
je 0x14009549f
call fcn.1402670a8
xor edx, edx
mov rcx, rbx
lea r8d, [rdx + 0x58]
call fcn.14025e440
mov eax, 0xffffffff
jmp 0x14009598c
mov r9d, edi
test r14d, r14d
jle 0x14009555d
mov r8, rdi
nop word [rax + rax]
mov ecx, dword [r13 + r8*4]
rol ecx, 0x10
mov eax, ecx
mov edx, ecx
shl ecx, 8
shr edx, 8
shl eax, 8
xor edx, eax
and edx, 0xff00ff
xor edx, ecx
mov ecx, edx
mov eax, edx
shr ecx, 4
shl eax, 4
xor ecx, eax
shl edx, 4
and ecx, 0xf0f0f0f
xor ecx, edx
mov edx, ecx
shr edx, 2
lea eax, [rcx*4]
xor edx, eax
lea eax, [rcx*4]
and edx, 0x33333333
xor edx, eax
mov ecx, edx
shr ecx, 1
lea eax, [rdx + rdx]
xor ecx, eax
lea eax, [rdx + rdx]
and ecx, 0x55555555
xor ecx, eax
movsxd rax, r9d
mov dword [r13 + r8*4], ecx
inc r9d
lea rcx, [rax*4]
add rcx, r13
mov qword [r10 + r8*8], rcx
inc r8
cmp r8, r12
jl 0x1400954d0
lea r9, [0x140095360]
mov r8d, 8
mov rdx, r12
mov rcx, r10
call fcn.140274c70
lea rcx, [r12*4]
lea rax, [rcx + 0xf]
mov qword [rbp + 8], rcx
cmp rax, rcx
ja 0x14009558d
mov rax, r15
and rax, 0xfffffffffffffff0
call fcn.14023fb30
sub rsp, rax
lea r15, [rsp + 0x20]
call fcn.14026737c
mov qword [rbx + 0x20], rax
mov edx, edi
test r14d, r14d
jle 0x140095609
mov r8, qword [rbp]
mov rcx, rdi
nop word [rax + rax]
mov rax, qword [r8 + rcx*8]
inc rcx
sub rax, r13
sar rax, 2
cdqe
mov dword [r15 + rax*4], edx
inc edx
cmp rcx, r12
jl 0x1400955c0
mov r9, r13
mov rdx, r15
sub r9, r15
nop dword [rax]
nop dword [rax + rax]
movsxd r8, dword [rdx]
mov eax, dword [r9 + rdx]
lea rdx, [rdx + 4]
mov rcx, qword [rbx + 0x20]
mov dword [rcx + r8*4], eax
sub r12, 1
jne 0x1400955f0
mov rcx, r13
call fcn.1402670a8
mov r8, r15
mov edx, r14d
mov rcx, rsi
call fcn.140095090
mov rcx, qword [rbp + 8]
mov qword [rbx + 0x18], rax
call fcn.14026737c
mov edx, edi
mov qword [rbx + 0x28], rax
mov r10d, edi
cmp dword [rsi + 4], edx
jle 0x140095665
mov r8, rdi
mov r9, r15
mov rax, qword [rsi + 8]
cmp byte [r8 + rax], dil
jle 0x14009565b
movsxd rcx, dword [r9]
inc r10d
mov rax, qword [rbx + 0x28]
add r9, 4
mov dword [rax + rcx*4], edx
inc edx
inc r8
cmp edx, dword [rsi + 4]
jl 0x140095640
movsxd rcx, r10d
call fcn.14026737c
mov qword [rbx + 0x30], rax
mov r14d, edi
mov dword [rbx + 0x44], edi
mov r8d, edi
cmp dword [rsi + 4], edi
jle 0x1400956ee
mov rdx, rdi
mov rax, qword [rsi + 8]
movzx r9d, byte [rdx + rax]
test r9b, r9b
jle 0x1400956b2
movsxd rcx, dword [r15]
inc r14d
mov rax, qword [rbx + 0x30]
add r15, 4
mov byte [rcx + rax], r9b
mov rax, qword [rsi + 8]
movsx ecx, byte [rdx + rax]
cmp ecx, dword [rbx + 0x44]
jle 0x1400956b2
mov dword [rbx + 0x44], ecx
inc r8d
inc rdx
cmp r8d, dword [rsi + 4]
jl 0x140095682
cmp r14d, 1
jne 0x1400956ee
cmp dword [rbx + 0x44], r14d
jne 0x1400956ee
lea edx, [r14 + 3]
mov dword [rbx + 0x40], r14d
lea ecx, [rdx - 2]
call fcn.140266cb8
mov qword [rbx + 0x38], rax
mov dword [rax + 4], r14d
mov rax, qword [rbx + 0x38]
mov dword [rax], r14d
jmp 0x14009598a
mov eax, dword [rbx + 8]
mov ecx, edi
test eax, eax
je 0x1400956fd
inc ecx
shr eax, 1
jne 0x1400956f7
add ecx, 0xfffffffc
mov dword [rbx + 0x40], ecx
cmp ecx, 5
jge 0x140095710
mov ecx, 5
mov dword [rbx + 0x40], ecx
cmp ecx, 8
jle 0x140095721
mov dword [rbx + 0x40], 8
mov ecx, 8
mov eax, 1
mov edx, 4
shl eax, cl
movsxd rcx, eax
mov dword [rbp], eax
call fcn.140266cb8
mov qword [rbx + 0x38], rax
movsxd r15, r14d
test r14d, r14d
jle 0x14009584f
mov r9, rdi
mov r11d, 1
nop dword [rax]
nop word [rax + rax]
mov r12d, dword [rbx + 0x40]
mov r10d, r12d
mov rax, qword [rbx + 0x30]
movsx r13d, byte [rax + r9]
cmp r13d, r12d
jg 0x14009583e
mov rax, qword [rbx + 0x20]
sub r12d, r13d
mov r8d, edi
mov ecx, dword [rax + r9*4]
rol ecx, 0x10
mov edx, ecx
mov eax, ecx
shr edx, 8
shl eax, 8
xor edx, eax
shl ecx, 8
and edx, 0xff00ff
xor edx, ecx
mov ecx, edx
mov eax, edx
shl eax, 4
shl edx, 4
shr ecx, 4
xor ecx, eax
and ecx, 0xf0f0f0f
xor ecx, edx
mov edx, ecx
shr edx, 2
lea eax, [rcx*4]
xor edx, eax
lea eax, [rcx*4]
and edx, 0x33333333
movzx ecx, r12b
xor edx, eax
mov esi, edx
shr esi, 1
lea eax, [rdx + rdx]
xor esi, eax
lea eax, [rdx + rdx]
and esi, 0x55555555
xor esi, eax
mov eax, 1
shl eax, cl
test eax, eax
jle 0x14009583e
nop dword [rax + rax]
mov rax, qword [rbx + 0x30]
movzx ecx, byte [r9 + rax]
mov eax, r8d
shl eax, cl
inc r8d
mov ecx, eax
mov eax, esi
or rcx, rax
mov rax, qword [rbx + 0x38]
mov dword [rax + rcx*4], r11d
mov rax, qword [rbx + 0x30]
mov r10d, dword [rbx + 0x40]
mov ecx, r10d
movsx edx, byte [rax + r9]
sub ecx, edx
mov edx, 1
shl edx, cl
cmp r8d, edx
jl 0x140095800
inc r11d
inc r9
cmp r9, r15
jl 0x140095760
jmp 0x140095853
mov r10d, dword [rbx + 0x40]
mov ecx, 0x1f
mov r12d, 0xfffffffe
sub ecx, r10d
mov r13d, edi
shl r12d, cl
mov r10d, edi
cmp dword [rbp], edi
jle 0x14009598a
mov r11, rdi
mov r9, rdi
nop dword [rax]
mov ecx, 0x20
mov esi, r13d
sub ecx, dword [rbx + 0x40]
shl esi, cl
mov ecx, esi
rol ecx, 0x10
mov eax, ecx
mov r8d, ecx
shl eax, 8
shl ecx, 8
shr r8d, 8
xor r8d, eax
and r8d, 0xff00ff
xor r8d, ecx
mov eax, r8d
mov edx, r8d
shr edx, 4
shl eax, 4
xor edx, eax
shl r8d, 4
and edx, 0xf0f0f0f
xor edx, r8d
mov ecx, edx
shr ecx, 2
lea eax, [rdx*4]
xor ecx, eax
lea eax, [rdx*4]
and ecx, 0x33333333
xor ecx, eax
mov edx, ecx
shr rdx, 1
lea eax, [rcx + rcx]
add ecx, ecx
xor rdx, rax
mov rax, qword [rbx + 0x38]
and edx, 0x55555555
xor rdx, rcx
cmp dword [rax + rdx*4], 0
lea r8, [rax + rdx*4]
jne 0x14009597d
lea ecx, [rdi + 1]
cmp ecx, r14d
jge 0x140095934
mov rdx, qword [rbx + 0x20]
add rdx, 4
lea rdx, [rdx + r11*4]
nop
cmp dword [rdx], esi
ja 0x140095934
inc edi
inc ecx
inc r11
add rdx, 4
cmp ecx, r14d
jl 0x140095920
cmp r9, r15
jge 0x140095959
mov rax, qword [rbx + 0x20]
lea rcx, [rax + r9*4]
mov eax, dword [rcx]
and eax, r12d
cmp esi, eax
jb 0x140095959
inc r10d
inc r9
add rcx, 4
cmp r9, r15
jl 0x140095941
mov edx, 0x7fff
mov ecx, r14d
sub ecx, r10d
mov eax, edi
cmp edi, edx
cmova eax, edx
cmp ecx, edx
cmova ecx, edx
or eax, 0xffff0000
shl eax, 0xf
or eax, ecx
mov dword [r8], eax
inc r13d
cmp r13d, dword [rbp]
jl 0x140095880
xor eax, eax
mov rcx, qword [rbp + 0x10]
xor rcx, rbp
call fcn.14023ed20
mov rbx, qword [rbp + 0x50]
mov rsi, qword [rbp + 0x58]
mov rdi, qword [rbp + 0x60]
lea rsp, [rbp + 0x20]
pop r15
pop r14
pop r13
pop r12
pop rbp
ret