Function at 0x140289b30
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xe8
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x50], xmm6
mov qword [rbp + 0x48], 0xfffffffffffffffe
mov ebx, r8d
mov r15, rdx
mov qword [rbp], rcx
mov rsi, qword [rdx + 0x18]
mov rax, qword [0x140523f78]
movabs r12, 0x9efc545778704324
movabs rcx, 0x1efc545778704324
and rcx, rax
xor rax, r12
lea rax, [rax + rcx*2]
cmp qword [rdx + 0x20], rax
jbe 0x140289b96
mov r15, qword [r15 + 8]
jmp 0x140289b9a
add r15, 8
lea r14, [rbp - 0x50]
cmp rsi, 0xf
ja 0x140289bb7
movups xmm0, xmmword [r15]
movups xmmword [r14], xmm0
mov r13d, 0xf
jmp 0x140289c38
mov r13, rsi
or r13, 0xf
movabs rax, 0x7fffffffffffffff
cmp r13, rax
cmovae r13, rax
cmp r13, 0xfff
jb 0x140289c0b
lea rcx, [r13 + 0x28]
mov r9d, dword [0x140523f80]
lea edx, [r9 + 0x416fbe27]
lea r8d, [r9 - 0x71e616a]
add r9d, 0x160fddd
call fcn.1400a9550
lea rcx, [rax + 0x27]
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
jmp 0x140289c28
lea rcx, [r13 + 1]
mov edx, 0x869b2ba6
mov r8d, 0x3e0d0c15
mov r9d, 0x468c6b5c
call fcn.1400a9550
mov rcx, rax
mov qword [rbp - 0x50], rcx
lea r8, [rsi + 1]
mov rdx, r15
call fcn.14040cc90
mov qword [rbp - 0x40], rsi
mov qword [rbp - 0x38], r13
lea rax, [0x140427b38]
mov qword [rbp - 0x58], rax
mov byte [rbp - 0x30], bl
lea rcx, [rbp - 0x28]
call fcn.14028a990
mov rcx, qword [rbp - 0x28]
mov r15, qword [rcx + 8]
mov rax, qword [rcx + 0x10]
cmp r15, rax
mov qword [rbp + 0x38], rcx
je 0x140289c9e
xorps xmm0, xmm0
movups xmmword [r15 + 0x18], xmm0
cmp r13, 0x10
jb 0x140289c7e
mov r14, qword [rbp - 0x50]
lea rdi, [r15 + 8]
cmp rsi, 0xf
ja 0x140289d6b
movups xmm0, xmmword [r14]
movups xmmword [rdi], xmm0
mov r12d, 0xf
jmp 0x140289dd5
mov rcx, qword [rcx]
mov rdi, r15
sub rdi, rcx
sar rdi, 4
movabs rdx, 0xaaaaaaaaaaaaaaab
imul rdi, rdx
lea r10, [rdi + 1]
sub rax, rcx
sar rax, 4
imul rax, rdx
mov rcx, rax
shr rcx, 1
movabs rdx, 0x555555555555555
mov r8, rdx
sub r8, rcx
mov r9, rcx
xor r9, rax
and rcx, rax
lea r9, [r9 + rcx*2]
cmp r9, r10
mov rcx, r10
mov qword [rbp - 0x10], r10
cmovbe r9, r10
cmp rax, r8
cmova r9, rdx
movabs rax, 0xa451a9accdc5986a
add rax, qword [0x140523f78]
cmp r9, rax
ja 0x14028a511
mov rax, r9
shl rax, 4
lea rcx, [rax + rax*2]
cmp r9, 0x56
mov qword [rbp + 0x30], r9
jb 0x140289daa
cmp r9, rdx
jae 0x14028a51b
add rcx, 0x27
call fcn.1403e4d2c
mov r8, rax
add r8, 0x27
movabs rcx, 0x9efc5457787042f5
add rcx, qword [0x140523f78]
xor r8, rcx
not r8
and r8, rcx
mov qword [r8 - 8], rax
jmp 0x140289e00
add r12, qword [0x140523f78]
or r12, rsi
movabs rax, 0x7fffffffffffffff
cmp r12, rax
cmovae r12, rax
cmp r12, 0xfff
jb 0x140289db9
lea rcx, [r12 + 0x28]
call fcn.1403e4d2c
mov rcx, rax
add rcx, 0x27
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
jmp 0x140289dc6
test r9, r9
je 0x140289dfd
call fcn.1403e4d2c
mov r8, rax
jmp 0x140289e00
lea rcx, [r12 + 1]
call fcn.1403e4d2c
mov rcx, rax
mov qword [rdi], rcx
lea r8, [rsi + 1]
mov rdx, r14
call fcn.14040cc90
mov rax, qword [rbp]
mov qword [r15 + 0x18], rsi
mov qword [r15 + 0x20], r12
lea rcx, [0x140427b38]
mov qword [r15], rcx
mov byte [r15 + 0x28], bl
mov rcx, qword [rbp + 0x38]
add qword [rcx + 8], 0x30
jmp 0x14028a2e8
xor r8d, r8d
lea rdi, [rdi + rdi*2]
shl rdi, 4
xorps xmm0, xmm0
movups xmmword [r8 + rdi + 0x18], xmm0
add r12, qword [0x140523f78]
cmp r13, r12
jbe 0x140289e21
mov r14, qword [rbp - 0x50]
lea rdx, [r8 + rdi]
add rdx, 0x30
cmp rsi, 0xf
mov qword [rbp + 0x40], r8
mov qword [rbp + 8], rdx
ja 0x140289e47
movups xmm0, xmmword [r14]
movups xmmword [rdx - 0x28], xmm0
mov r12d, 0xf
jmp 0x140289ebd
mov r12, rsi
or r12, 0xf
movabs rax, 0x7fffffffffffffff
cmp r12, rax
cmovae r12, rax
cmp r12, 0xfff
jb 0x140289e94
lea rcx, [r12 + 0x28]
mov qword [rbp + 0x28], rdx
call fcn.1403e4d2c
mov rdx, rax
add rdx, 0x27
mov ecx, edx
not ecx
xor rdx, 0xffffffffffffffe0
and ecx, 0x1f
or rcx, rdx
not rcx
mov qword [rcx - 8], rax
jmp 0x140289ea5
lea rcx, [r12 + 1]
mov qword [rbp + 0x28], rdx
call fcn.1403e4d2c
mov rcx, rax
mov rax, qword [rbp + 8]
mov qword [rax - 0x28], rcx
lea r8, [rsi + 1]
mov rdx, r14
call fcn.14040cc90
mov r8, qword [rbp + 0x40]
lea rcx, [r8 + rdi]
mov qword [rcx + 0x18], rsi
mov qword [rcx + 0x20], r12
lea rax, [0x140427b38]
mov qword [rcx], rax
mov byte [r8 + rdi + 0x28], bl
mov rax, qword [rbp + 0x38]
mov rbx, qword [rax]
mov rdx, qword [rax + 8]
cmp rdx, r15
je 0x14028a3c2
mov qword [rbp + 0x28], rcx
mov rcx, rbx
mov rdx, r15
call fcn.14028baa0
mov rax, qword [rbp + 0x38]
mov rdx, qword [rax + 8]
mov rax, qword [rbp + 0x40]
mov qword [rbp + 0x28], rax
mov rcx, r15
mov r8, qword [rbp + 8]
call fcn.14028baa0
mov rsi, qword [rbp + 0x38]
mov rbx, qword [rsi]
mov rdi, qword [rbp + 0x30]
mov r8, qword [rbp + 0x40]
test rbx, rbx
je 0x14028a2bf
mov qword [rbp + 0x20], r13
mov rsi, qword [rsi + 8]
mov rax, qword [0x140523dd8]
movsxd rcx, dword [rax]
mov r14d, dword [0x140436150]
cmp rbx, rsi
je 0x14028a27b
mov rdx, rcx
xor rdx, rax
and rcx, rax
lea r15, [rdx + rcx*2]
mov edi, 0xbad49282
lea r13, [fcn.140289b30]
xor r12d, r12d
mov qword [rbp + 0x18], rsi
jmp 0x140289fcf
add al, dil
mov byte [0x14055c122], al
cmp r8, r11
jae 0x14028a50c
add r9, 0x28
mov rdx, r9
mov r8, qword [rbp + 0x10]
mov rsi, qword [rbp + 0x18]
mov edi, 0xbad49282
mov rcx, r8
call fcn.1400a7e90
mov qword [rbx + 0x18], 0
mov qword [rbx + 0x20], 0xf
mov byte [rbx + 8], 0
add rbx, 0x30
cmp rbx, rsi
je 0x14028a27b
mov ecx, dword [0x140523dd4]
lea edx, [rcx + 1]
mov dword [0x140523dd4], edx
not ecx
not edx
mov eax, edx
xor eax, ecx
and eax, edx
or eax, ecx
xor eax, 0xffffffff
jne 0x14028a001
mov ecx, dword [0x140523f80]
mov edx, 0xbad49281
add ecx, edx
cmp ecx, r14d
jl 0x14028a020
xor ecx, ecx
mov edx, dword [0x140523f80]
add edx, edi
lea r8d, [r13 + r13 + 0xbe0]
xor r8d, edx
not r8d
test r8d, edx
jne 0x14028a080
jmp 0x14028a060
mov edx, 2
xor ecx, ecx
nop word [rax + rax]
lea r8d, [rdx - 2]
movsxd r8, r8d
movzx r8d, word [r15 + r8]
not ecx
mov r9d, ecx
and r9d, r8d
or ecx, r8d
not ecx
or ecx, r9d
cmp edx, r14d
jge 0x14028a003
add edx, 2
jmp 0x14028a030
mov edx, dword [0x14055d2c8]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
je 0x14028a0a0
nop word cs:[rax + rax]
mov edx, dword [0x14055d2c8]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
jne 0x14028a080
jmp 0x14028a060
mov r9, qword [rbx + 0x20]
cmp r9, 0xf
jbe 0x140289fae
mov r8, qword [rbx + 8]
lea rdx, [r9 + 1]
cmp rdx, 0x1000
jb 0x140289fa6
mov rdx, qword [r8 - 8]
mov r11, qword [0x140523f78]
add r8, r11
mov qword [rbp + 0x10], rdx
sub r8, rdx
movabs rdx, 0x9efc54577870430d
add r8, rdx
movabs rdx, 0x9efc545778704335
add r11, rdx
mov edx, dword [0x14055d2c8]
lea esi, [rdx - 1]
imul esi, edx
test sil, 1
jne 0x14028a180
nop word cs:[rax + rax]
movzx edx, word [0x140436158]
mov esi, dword [0x140523f80]
lea edi, [rsi - 0x452b6d7e]
lea r10d, [r13 + r13 + 0xa60]
xor edi, r10d
not edi
and edi, r10d
add esi, 0xbad49281
cmp edi, esi
jne 0x14028a180
cmp eax, 1
mov eax, 0
sbb eax, eax
mov r10d, edx
xor r10d, 0xffff9442
and edx, 0x1442
lea edi, [r10 + rdx*2]
sub edi, ecx
add edi, 0x6bbe
and edi, eax
mov eax, dword [0x14055d2cc]
cmp eax, 0x4d
jg 0x14028a1e0
jmp 0x14028a1b0
movzx edx, word [0x140436158]
mov edx, dword [0x14055d2c8]
mov r10d, dword [0x140523f80]
neg r10d
add r10d, edx
add r10d, 0xbad49282
imul r10d, edx
test r10b, 1
jne 0x14028a180
jmp 0x14028a110
movzx ecx, byte [0x140523f88]
add cl, 5
movzx esi, di
shr esi, cl
mov ecx, dword [0x14055d2c8]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, dword [0x140523f80]
mov edx, 0xbad49283
add ecx, edx
xor edx, edx
div ecx
test edx, edx
je 0x14028a220
mov ecx, dword [0x14055d2c8]
mov edx, dword [0x140523f80]
mov eax, ecx
sub eax, edx
add eax, 0x452b6d7e
imul eax, ecx
mov ecx, edx
xor ecx, 0xbad49283
and edx, 0x3ad49283
lea ecx, [rcx + rdx*2]
xor edx, edx
div ecx
test edx, edx
jne 0x14028a1e0
jmp 0x14028a1b0
mov eax, edi
and al, sil
xor dil, sil
xor dil, al
movzx eax, byte [0x14055c122]
nop word cs:[rax + rax]
test r12b, r12b
je 0x140289f80
mov ecx, dword [0x140523f80]
mov edx, 0x452b6d7d
sub edx, ecx
add ecx, 0xbad49282
lea r10d, [r13 + r13 + 0x43c0]
xor ecx, r10d
not r10d
and r10d, edx
or r10d, ecx
cmp r10d, 0xffffffff
jne 0x14028a240
jmp 0x140289f80
mov rsi, qword [rbp + 0x38]
mov rcx, qword [rsi]
mov rdx, qword [rsi + 0x10]
sub rdx, rcx
cmp rdx, 0x1000
jb 0x14028a2ae
mov rax, qword [rcx - 8]
sub rcx, rax
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x14028a520
add rdx, 0x27
mov rcx, rax
mov r13, qword [rbp + 0x20]
mov rdi, qword [rbp + 0x30]
call fcn.1400a7e90
mov r8, qword [rbp + 0x40]
mov qword [rsi], r8
mov rax, qword [rbp - 0x10]
lea rax, [rax + rax*2]
shl rax, 4
add rax, r8
mov qword [rsi + 8], rax
lea rax, [rdi + rdi*2]
shl rax, 4
add rax, r8
mov qword [rsi + 0x10], rax
mov rax, qword [rbp]
mov rax, qword [rax]
inc qword [rax + 8]
cmp byte [rbp - 0x18], 0
je 0x14028a2fe
mov rcx, qword [rbp - 0x20]
call fcn.1403e60f4
cmp r13, 0x10
jb 0x14028a388
mov rcx, qword [rbp - 0x50]
mov rax, qword [0x140523f78]
movabs rdx, 0x9efc545778705313
xor rdx, rax
movabs r8, 0x1efc545778705313
and r8, rax
lea rax, [rdx + r8*2]
cmp r13, rax
jbe 0x14028a3a0
mov rax, qword [rcx - 8]
mov rdx, qword [0x140523f78]
movabs r8, 0x9efc54577870430d
xor r8, rdx
movabs r9, 0x1efc54577870430d
and r9, rdx
lea rdx, [r8 + r9*2]
add rdx, rcx
sub rdx, rax
cmp rdx, 0x20
jae 0x14028a516
add r13, qword [0x140523f78]
movabs rcx, 0x9efc54577870433d
add r13, rcx
mov rcx, rax
jmp 0x14028a3a3
movaps xmm6, xmmword [rbp + 0x50]
add rsp, 0xe8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
inc r13
mov rdx, r13
movaps xmm6, xmmword [rbp + 0x50]
add rsp, 0xe8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
jmp fcn.1400a7e90
cmp rbx, rdx
je 0x14028a4f6
mov qword [rbp - 8], rcx
lea r15, [rbx + 0x30]
add rbx, 8
mov r9d, 0x30
xorps xmm6, xmm6
mov ecx, 0x30
mov qword [rbp + 0x20], rdx
nop dword [rax]
mov rsi, r13
movups xmmword [r8 + r9 - 0x18], xmm6
cmp qword [rbx + 0x18], 0x10
mov r14, rbx
jb 0x14028a406
mov r14, qword [rbx]
lea r12, [r8 + r9]
add r12, 0xffffffffffffffd8
mov r13, qword [rbx + 0x10]
cmp r13, 0xf
ja 0x14028a430
movups xmm0, xmmword [r14]
movups xmmword [r12], xmm0
mov edi, 0xf
jmp 0x14028a4ac
mov qword [rbp + 0x18], r9
mov qword [rbp + 0x10], rcx
mov rdi, r13
or rdi, 0xf
movabs rax, 0x7fffffffffffffff
cmp rdi, rax
cmovae rdi, rax
cmp rdi, 0xfff
jb 0x14028a480
lea rcx, [rdi + 0x28]
call fcn.1403e4d2c
mov rcx, rax
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x14028a489
lea rcx, [rdi + 1]
call fcn.1403e4d2c
mov qword [r12], rax
lea r8, [r13 + 1]
mov rcx, rax
mov rdx, r14
call fcn.14040cc90
mov r8, qword [rbp + 0x40]
mov rcx, qword [rbp + 0x10]
mov rdx, qword [rbp + 0x20]
mov r9, qword [rbp + 0x18]
mov qword [r8 + r9 - 0x18], r13
mov qword [r8 + r9 - 0x10], rdi
lea rax, [0x140427b38]
mov qword [r8 + r9 - 0x30], rax
movzx eax, byte [0x14055c122]
add al, byte [rbx + 0x20]
mov byte [r8 + r9 - 8], al
cmp r15, rdx
mov r13, rsi
je 0x140289f17
add rcx, 0xffffffffffffffd0
add r15, 0x30
add rbx, 0x30
add r9, 0x30
mov r8, qword [rbp + 0x40]
jmp 0x14028a3f0
mov rsi, qword [rbp + 0x38]
mov rdi, qword [rbp + 0x30]
test rbx, rbx
jne 0x140289f2f
jmp 0x14028a2bf
call fcn.1403c4adc
call fcn.140083100
call fcn.1403c4adc
call fcn.140083100
call fcn.1403c4adc
int3