Function at 0x140290990
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xf8
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x60], xmm6
mov qword [rbp + 0x58], 0xfffffffffffffffe
mov byte [rbp + 0x38], r8b
mov r15, rdx
mov qword [rbp + 8], rcx
mov r12, qword [0x140562d48]
movsxd r14, dword [r12]
mov ebx, dword [0x14047184c]
mov rsi, qword [rdx + 0x18]
mov rax, qword [0x1405633a8]
movabs r8, 0x4bf2a45cd01eb407
mov rcx, rax
xor rcx, r8
mov rdx, rax
and rdx, r8
lea rcx, [rcx + rdx*2]
cmp qword [r15 + 0x20], rcx
jbe 0x140290a04
mov r15, qword [r15 + 8]
jmp 0x140290a08
add r15, 8
lea r8, [rbp - 0x50]
movabs rcx, 0x4bf2a45cd01eb408
mov rdx, rax
xor rdx, rcx
and rax, rcx
lea rax, [rdx + rax*2]
mov qword [rbp + 0x10], rax
cmp rsi, rax
mov qword [rbp + 0x48], r8
jae 0x140290a42
movups xmm0, xmmword [r15]
movups xmmword [r8], xmm0
mov edi, 0xf
jmp 0x140290ace
mov rdi, rsi
or rdi, 0xf
movabs rax, 0x7fffffffffffffff
cmp rdi, rax
cmovae rdi, rax
cmp rdi, 0xfff
jb 0x140290a8b
lea rcx, [rdi + 0x28]
mov edx, 0x25f76926
mov r8d, 0x7265ca7a
mov r9d, 0x79a78460
call fcn.1400a8fb0
lea rcx, [rax + 0x27]
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
jmp 0x140290aa8
lea rcx, [rdi + 1]
mov edx, 0x25f76926
mov r8d, 0x7265ca7a
mov r9d, 0x79a78460
call fcn.1400a8fb0
mov rcx, rax
mov qword [rbp - 0x50], rcx
mov eax, esi
not eax
and eax, 1
mov rdx, rsi
and rdx, 0xfffffffffffffffe
or rdx, rax
mov eax, esi
and eax, 1
lea r8, [rdx + rax*2]
mov rdx, r15
call fcn.140446180
mov qword [rbp - 0x40], rsi
mov qword [rbp - 0x38], rdi
lea r13, [0x140463118]
mov qword [rbp - 0x58], r13
movzx eax, byte [rbp + 0x38]
mov byte [rbp - 0x30], al
lea rcx, [rbp - 0x28]
call fcn.140291e40
mov rcx, qword [rbp - 0x28]
mov r15, qword [rcx + 8]
mov rax, qword [rcx + 0x10]
cmp r15, rax
mov qword [rbp + 0x28], rcx
je 0x140290b3d
xorps xmm0, xmm0
movups xmmword [r15 + 0x18], xmm0
mov r14, rdi
cmp rdi, 0x10
jb 0x140290b1f
mov rax, qword [rbp - 0x50]
mov qword [rbp + 0x48], rax
lea rdi, [r15 + 8]
cmp rsi, qword [rbp + 0x10]
jae 0x140290b95
mov rax, qword [rbp + 0x48]
movups xmm0, xmmword [rax]
movups xmmword [rdi], xmm0
mov ebx, 0xf
jmp 0x140290c22
mov rdx, qword [rcx]
mov rcx, r15
sub rcx, rdx
sar rcx, 4
movabs r8, 0xaaaaaaaaaaaaaaab
imul r8, rcx
mov rcx, r8
mov qword [rbp + 0x30], r8
lea rcx, [r8 + 1]
mov qword [rbp - 8], rcx
movabs rcx, 0x4bf2a45cd01eb428
add rcx, qword [0x1405633a8]
sub rax, rdx
mov rdx, rax
or rdx, rcx
shr rdx, 0x20
je 0x140290c4a
cqo
idiv rcx
jmp 0x140290c4e
mov rax, rsi
not rax
mov rcx, rsi
xor rcx, 0xf
and rax, 0xfffffffffffffff0
or rax, rcx
mov rbx, rsi
xor rbx, 0xfffffffffffffff0
mov rcx, rbx
xor rcx, rax
or rbx, rax
not rbx
or rbx, rcx
movabs rax, 0x7fffffffffffffff
cmp rbx, rax
cmovae rbx, rax
cmp rbx, 0xfff
jb 0x140290bfc
lea rcx, [rbx + 0x28]
call fcn.14041e25c
mov rcx, rax
xor rcx, 0x27
mov edx, eax
and edx, 0x27
lea rcx, [rcx + rdx*2]
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
jmp 0x140290c12
mov rax, qword [0x1405aac90]
lea rcx, [rbx + rax]
inc rcx
call fcn.14041e25c
mov rcx, rax
mov qword [rdi], rcx
lea r8, [rsi + 1]
mov rdx, qword [rbp + 0x48]
call fcn.140446180
mov rax, qword [rbp + 8]
mov qword [r15 + 0x18], rsi
mov qword [r15 + 0x20], rbx
mov qword [r15], r13
movzx ecx, byte [rbp + 0x38]
mov byte [r15 + 0x28], cl
mov rcx, qword [rbp + 0x28]
add qword [rcx + 8], 0x30
mov rsi, r14
jmp 0x140291178
xor edx, edx
div ecx
mov rcx, rax
shr rcx, 1
movabs r9, 0x555555555555555
mov rdx, r9
sub rdx, rcx
neg rcx
mov r8, rax
neg r8
mov r10, rcx
xor r10, r8
and r8, rcx
lea r13, [r10 + r8*2]
neg r13
mov rcx, qword [rbp - 8]
cmp r13, rcx
cmovbe r13, rcx
cmp rax, rdx
cmova r13, r9
movabs rax, 0x555555555555556
cmp r13, rax
jae 0x140290db4
mov qword [rbp + 0x18], rdi
add r14, r12
mov rax, r13
shl rax, 4
lea r8, [rax + rax*2]
mov ecx, dword [0x1405aac84]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, 0x68f55aae
add ecx, dword [0x1405633b4]
jmp 0x140290d34
mov eax, dword [0x140562d44]
lea ecx, [rax - 1]
shl eax, cl
sub eax, ecx
imul eax, ecx
sub eax, ecx
imul eax, ecx
sub eax, ecx
imul eax, ecx
mov edx, eax
shl edx, cl
mov ecx, edx
sub ecx, eax
mov eax, ecx
neg eax
dec ecx
xor ecx, eax
and ecx, edx
xor ecx, eax
and eax, edx
lea eax, [rcx + rax*2]
add eax, edx
mov dword [0x140562d44], eax
mov ecx, dword [0x1405aac84]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, dword [0x1405633b4]
mov edx, ecx
xor edx, 0x4c4f521e
and ecx, 0x4c4f521e
lea ecx, [rdx + rcx*2]
add ecx, 0x1ca60890
xor edx, edx
div ecx
test edx, edx
jne 0x140290cd0
mov ecx, dword [0x140562d44]
mov eax, ecx
xor eax, 1
mov r10d, ecx
not r10d
mov edx, r10d
and edx, 0x7ffffffe
or edx, eax
not edx
lea r12d, [rax + rdx*2]
mov dword [0x140562d44], r12d
mov eax, dword [0x1405aac88]
cmp eax, 0x1a
jge 0x140290cd0
mov edx, dword [0x1405aac84]
mov r11d, dword [0x1405633b4]
mov eax, edx
sub eax, r11d
add eax, 0x970aa553
imul eax, edx
mov edx, r11d
xor edx, 0x68f55aae
and r11d, 0x68f55aae
lea r11d, [rdx + r11*2]
xor edx, edx
div r11d
test edx, edx
jne 0x140291540
jmp 0x140291512
call fcn.1400867d0
movabs rax, 0x555555555555555
cmp r13, rax
jae 0x140290df5
add r8, 0x27
mov rcx, r8
call fcn.14041e25c
mov rcx, rax
xor rcx, 0x27
mov edx, eax
and edx, 0x27
lea rdx, [rcx + rdx*2]
and rdx, 0xffffffffffffffe0
mov rcx, rdx
mov qword [rbp + 0x50], rdx
mov qword [rdx - 8], rax
jmp 0x140290e2b
call fcn.1400867d0
xor eax, eax
mov qword [rbp + 0x50], rax
cmp byte [0x1405a9714], 0
jne 0x140290e2f
movabs rax, 0x4bf2a45cd01eb3f8
add rax, qword [0x1405633a8]
cmp r13, rax
je 0x140290e2f
mov rcx, r8
call fcn.14041e25c
mov qword [rbp + 0x50], rax
mov r13, qword [rbp + 0x40]
mov rax, qword [rbp + 0x30]
lea rdi, [rax + rax*2]
shl rdi, 4
xorps xmm0, xmm0
mov r8, qword [rbp + 0x50]
movups xmmword [r8 + rdi + 0x18], xmm0
cmp qword [rbp + 0x18], 0x10
jb 0x140290e57
mov rax, qword [rbp - 0x50]
mov qword [rbp + 0x48], rax
lea rdx, [r8 + rdi]
add rdx, 0x30
cmp rsi, qword [rbp + 0x10]
mov qword [rbp + 0x30], rdx
jae 0x140290e7e
mov rax, qword [rbp + 0x48]
movups xmm0, xmmword [rax]
movups xmmword [rdx - 0x28], xmm0
mov ebx, 0xf
jmp 0x140290f29
mov rbx, rsi
or rbx, 0xf
movabs rax, 0x7fffffffffffffff
cmp rbx, rax
cmovae rbx, rax
cmp rbx, 0xfff
jb 0x140290ed5
lea rcx, [rbx + 0x28]
mov qword [rbp + 0x20], rdx
call fcn.14041e25c
mov rdx, rax
add rdx, 0x27
mov rcx, rdx
not rcx
mov r8, rcx
and r8, 0xffffffffffffffe0
and edx, 0x1f
or rdx, r8
and ecx, 0x1f
or rcx, rdx
not rcx
mov qword [rcx - 8], rax
jmp 0x140290ee5
lea rcx, [rbx + 1]
mov qword [rbp + 0x20], rdx
call fcn.14041e25c
mov rcx, rax
mov rax, qword [rbp + 0x30]
mov qword [rax - 0x28], rcx
movabs rax, 0xea134900c45087ce
xor rax, rsi
movabs rdx, 0x6a134900c45087ce
and rdx, rsi
lea rax, [rax + rdx*2]
movabs r8, 0x15ecb6ff3baf7833
add r8, rax
mov rdx, qword [rbp + 0x48]
call fcn.140446180
mov r13, qword [rbp + 0x40]
mov r8, qword [rbp + 0x50]
lea rcx, [r8 + rdi]
mov qword [rcx + 0x18], rsi
mov qword [rcx + 0x20], rbx
lea rax, [0x140463118]
mov qword [rcx], rax
movzx eax, byte [rbp + 0x38]
mov byte [r8 + rdi + 0x28], al
mov rdi, qword [rbp + 0x28]
mov rbx, qword [rdi]
mov rdx, qword [rdi + 8]
cmp rdx, r15
je 0x140291240
mov qword [rbp + 0x20], rcx
mov rcx, rbx
mov rdx, r15
call fcn.140292f50
mov rax, qword [rbp + 0x28]
mov rdx, qword [rax + 8]
mov rax, qword [rbp + 0x50]
mov qword [rbp + 0x20], rax
mov rcx, r15
mov r8, qword [rbp + 0x30]
call fcn.140292f50
mov rdi, qword [rbp + 0x28]
mov rbx, qword [rdi]
mov r13, qword [rbp + 0x40]
mov r8, qword [rbp + 0x50]
test rbx, rbx
mov rsi, qword [rbp + 0x18]
je 0x140291148
mov rsi, qword [rdi + 8]
cmp rbx, rsi
je 0x1402910cd
add rbx, 0x30
movabs r13, 0x4bf2a45cd01eb418
movabs r15, 0x3865ca78437cd53c
movabs rdi, 0x479a3587bc832ac4
movabs r14, 0x7fffffffffffffd8
nop dword [rax]
mov r8, qword [rbx - 0x10]
cmp r8, 0x10
jb 0x1402910a3
mov rcx, qword [rbx - 0x28]
lea rdx, [r8 + 1]
cmp rdx, 0x1000
jb 0x14029109e
mov rax, qword [rcx - 8]
movabs rdx, 0x126b49fa69c273e7
add rcx, rdx
mov rdx, rcx
xor rdx, 0xfffffffffffffff8
movabs r9, 0x7ffffffffffffff8
and rcx, r9
lea rcx, [rdx + rcx*2]
sub rcx, rax
movabs rdx, 0xed94b605963d8c19
add rcx, rdx
mov rdx, qword [0x1405633a8]
mov r9, rdx
xor r9, r13
and rdx, r13
lea rdx, [r9 + rdx*2]
cmp rcx, rdx
jae 0x1402913f4
mov rcx, qword [0x1405633a8]
movabs rdx, 0x4bf2a45cd01eb3f8
add rcx, rdx
mov rdx, rcx
movabs r9, 0xb865ca78437cd53c
xor rdx, r9
and rcx, r15
lea rcx, [rdx + rcx*2]
sub rcx, r8
add rcx, rdi
mov rdx, rcx
xor rdx, 0xffffffffffffffd8
and rcx, r14
lea rdx, [rdx + rcx*2]
neg rdx
mov rcx, rax
call fcn.1400a82c0
mov qword [rbx - 0x18], 0
mov qword [rbx - 0x10], 0xf
movzx eax, byte [0x1405633b0]
add al, 0xd3
mov byte [rbx - 0x28], al
cmp rbx, rsi
je 0x1402910cd
add rbx, 0x30
jmp 0x140290fe0
mov rdi, qword [rbp + 0x28]
mov rcx, qword [rdi]
mov rdx, qword [rdi + 0x10]
sub rdx, rcx
cmp rdx, 0x1000
jb 0x140291137
mov rax, qword [rcx - 8]
mov r8, qword [0x1405633a8]
sub r8, rax
add rcx, r8
add rcx, 0xfffffffffffffff8
movabs r8, 0x4bf2a45cd01eb3f8
add r8, rcx
cmp r8, 0x20
jae 0x14029150d
movabs rcx, 0x69a213726ced1647
mov r8, rdx
xor r8, rcx
and rdx, rcx
lea rcx, [r8 + rdx*2]
movabs rdx, 0x965dec8d9312e9e0
add rdx, rcx
mov rcx, rax
mov rsi, qword [rbp + 0x18]
mov r13, qword [rbp + 0x40]
call fcn.1400a82c0
mov r8, qword [rbp + 0x50]
mov qword [rdi], r8
mov rax, qword [rbp - 8]
lea rax, [rax + rax*2]
shl rax, 4
add rax, r8
mov qword [rdi + 8], rax
lea rax, [r13*2]
add rax, r13
shl rax, 4
add rax, r8
mov qword [rdi + 0x10], rax
mov rax, qword [rbp + 8]
mov rax, qword [rax]
inc qword [rax + 8]
cmp byte [rbp - 0x18], 0
je 0x14029118e
mov rcx, qword [rbp - 0x20]
call fcn.14041f5e4
movabs rax, 0x4bf2a45cd01eb407
add rax, qword [0x1405633a8]
cmp rsi, rax
jbe 0x1402911df
mov rcx, qword [rbp - 0x50]
mov rax, qword [0x1405633a8]
movabs rdx, 0x4bf2a45cd01ec3f6
add rdx, rax
cmp rsi, rdx
jbe 0x1402911f7
mov rax, qword [rcx - 8]
sub rcx, rax
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x140291508
add rsi, 0x28
mov rcx, rax
jmp 0x140291221
movaps xmm6, xmmword [rbp + 0x60]
add rsp, 0xf8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
movabs rdx, 0x4bf2a45cd01eb3f9
xor rdx, rax
not rax
movabs r8, 0x340d5ba32fe14c06
and r8, rax
or r8, rdx
not r8
lea rax, [rdx + r8*2]
add rsi, rax
mov rdx, rsi
movaps xmm6, xmmword [rbp + 0x60]
add rsp, 0xf8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
jmp fcn.1400a82c0
cmp rbx, rdx
je 0x140290f96
mov qword [rbp - 0x10], rcx
lea r15, [rbx + 0x30]
add rbx, 8
mov r9d, 0x30
xorps xmm6, xmm6
mov ecx, 0x30
mov qword [rbp + 0x10], rdx
nop word [rax + rax]
movups xmmword [r8 + r9 - 0x18], xmm6
cmp qword [rbx + 0x18], 0x10
mov r14, rbx
jb 0x140291283
mov r14, qword [rbx]
lea r13, [r8 + r9]
add r13, 0xffffffffffffffd8
mov rsi, qword [rbx + 0x10]
cmp rsi, 0xf
ja 0x1402912b0
movups xmm0, xmmword [r14]
movups xmmword [r13], xmm0
mov edi, 0xf
jmp 0x1402913b3
mov qword [rbp + 0x48], r9
mov qword [rbp + 0x38], rcx
mov rax, rsi
not rax
mov rcx, rsi
xor rcx, 0xf
mov rdx, rax
and rdx, 0xfffffffffffffff0
or rdx, rcx
and eax, 0xf
mov rdi, rsi
and rdi, 0xfffffffffffffff0
or rdi, rax
not rdi
mov rax, rdi
xor rax, rdx
or rdi, rdx
not rdi
or rdi, rax
movabs rax, 0x7fffffffffffffff
cmp rdi, rax
cmovae rdi, rax
cmp rdi, 0xfff
jb 0x140291350
lea rcx, [rdi + 0x28]
call fcn.14041e25c
mov rcx, rax
mov rdx, 0xffffffffffffffd8
sub rdx, rax
mov r8, rax
add r8, 0x27
mov eax, edx
and eax, 0x1f
mov r9, r8
and r9, 0xffffffffffffffe0
or r9, rax
mov rax, r9
not rax
xor r9, r8
and rax, rdx
or rax, r9
not rax
mov qword [rax - 8], rcx
jmp 0x140291359
lea rcx, [rdi + 1]
call fcn.14041e25c
mov qword [r13], rax
movabs rcx, 0x3b4ccd0311c0e189
add rcx, rsi
mov rdx, rcx
movabs r8, 0xe55523ffa7a08582
xor rdx, r8
movabs r8, 0x655523ffa7a08582
and rcx, r8
lea r8, [rdx + rcx*2]
movabs rcx, 0xdf5e0efd469e98f6
add r8, rcx
mov rcx, rax
mov rdx, r14
call fcn.140446180
mov r8, qword [rbp + 0x50]
mov rcx, qword [rbp + 0x38]
mov rdx, qword [rbp + 0x10]
mov r9, qword [rbp + 0x48]
mov qword [r8 + r9 - 0x18], rsi
mov qword [r8 + r9 - 0x10], rdi
lea rax, [0x140463118]
mov qword [r8 + r9 - 0x30], rax
movzx eax, byte [rbx + 0x20]
mov byte [r8 + r9 - 8], al
cmp r15, rdx
je 0x140290f87
add rcx, 0xffffffffffffffd0
add r15, 0x30
add rbx, 0x30
add r9, 0x30
mov r8, qword [rbp + 0x50]
jmp 0x140291270
xor eax, eax
test r12d, r12d
setne al
movzx ecx, word [0x140471840]
movzx eax, ax
dec eax
mov edx, ecx
xor edx, 0x3fcb
and ecx, 0x3fcb
lea ecx, [rdx + rcx*2]
lea rdx, [fcn.140290990]
add edx, edx
add edx, 0x34e0
nop dword [rax + rax]
cmp dword [0x1405633b4], 0x970aa554
jne 0x140291470
mov r8d, dword [0x1405633b4]
lea r9d, [r8 + 0x68f55aad]
and r9d, edx
mov r10d, r8d
xor r10d, 0x68f55aac
not r8d
and r8d, 0x170aa553
or r8d, r10d
not r8d
lea r8d, [r10 + r8*2]
cmp r9d, r8d
je 0x140291487
mov r8d, dword [0x1405aac84]
lea r9d, [r8 - 1]
imul r9d, r8d
test r9b, 1
jne 0x140291430
jmp 0x14029143c
mov edx, dword [0x1405633b8]
sub edx, dword [rbp + 4]
add ecx, edx
add ecx, 0xffff93d8
mov edx, dword [0x1405aac88]
mov r8d, 0x68f55ac6
add r8d, dword [0x1405633b4]
cmp edx, r8d
nop
mov edx, ecx
not edx
movsx r8d, ax
mov r9d, ecx
xor r9d, r8d
not r8d
and r8d, edx
or r8d, r9d
not r8d
movzx edx, r8w
add rdx, qword [0x1405aac90]
mov r8d, dword [0x1405aac88]
cmp r8d, 0x5a
jg 0x1402914b0
movabs rax, 0x5c760e0beedd121f
add rdx, rax
movabs rax, 0xa389f1f41122ede1
add rax, rdx
mov qword [0x1405aac90], rax
call fcn.1403fe3cc
call fcn.1403fe3cc
call fcn.1403fe3cc
mov edx, dword [0x1405aac84]
lea eax, [rdx - 1]
imul eax, edx
mov r11d, 0x68f55aae
add r11d, dword [0x1405633b4]
xor edx, edx
div r11d
test edx, edx
je 0x14029156c
nop word cs:[rax + rax]
mov edx, dword [0x1405aac84]
lea eax, [rdx - 1]
imul eax, edx
mov r11d, dword [0x1405633b4]
lea edi, [r11 + 0x68f55aae]
xor edx, edx
div edi
add r11d, 0x68f55aac
cmp edx, r11d
jne 0x140291540
jmp 0x140291512
mov eax, r10d
xor eax, r12d
not r12d
and ecx, r12d
or ecx, eax
not ecx
mov eax, r12d
xor eax, r10d
and eax, r12d
and r12d, r10d
or r12d, eax
or r12d, ecx
xor r12d, 0xffffffff
je 0x140291599
xor r9d, r9d
jmp 0x1402915b0
mov ecx, 0x68f55aac
add ecx, dword [0x1405633b4]
xor eax, eax
mov r9d, 0
cmp ecx, ebx
jl 0x1402915c7
cmp r13, 0x55
mov qword [rbp + 0x40], r13
mov dword [rbp + 4], r9d
ja 0x140290db9
jmp 0x140290dfa
mov ecx, 0x68f55ac4
mov edx, 0x68f55af2
xor r9d, r9d
jmp 0x1402915eb
xor r9w, word [r10]
add eax, 2
cmp eax, ebx
jge 0x1402915b0
mov r10d, dword [0x1405aac84]
nop word cs:[rax + rax]
mov r10d, dword [0x1405aac88]
cmp r10d, 0x22
jg 0x140291600
movsxd r10, eax
add r10, r14
mov r11d, dword [0x1405aac88]
mov edi, dword [0x1405633b4]
add edi, ecx
cmp r11d, edi
jge 0x140291650
nop word [rax + rax]
mov r11d, dword [0x1405aac88]
mov edi, dword [0x1405633b4]
add edi, edx
cmp r11d, edi
jl 0x1402915e0
nop word cs:[rax + rax]
mov r11d, dword [0x1405aac88]
cmp r11d, 0x46
jge 0x140291650
jmp 0x140291630