Function at 0x18001daf0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xb8]
sub rsp, 0x1b8
movaps xmmword [rsp + 0x1a0], xmm6
mov rax, qword [0x18007f060]
xor rax, rsp
mov qword [rbp + 0x90], rax
mov r13d, r9d
mov r12, r8
mov rsi, rdx
mov r15, rcx
xor r14d, r14d
mov ebx, r14d
mov dword [rsp + 0x40], ebx
mov qword [rsp + 0x70], r14
mov qword [rbp - 0x80], r14
mov qword [rbp - 0x78], 0xf
mov byte [rsp + 0x70], bl
mov qword [rbp + 0x30], r14
mov qword [rbp + 0x40], r14
mov qword [rbp + 0x48], 0xf
mov byte [rbp + 0x30], r14b
mov r8d, dword [rdx]
mov rdx, qword [rcx]
mov r10, qword [rdx]
test r10, r10
je 0x18001e51b
lea rcx, [r8 + 1]
mov eax, dword [rdx + 0x10]
cmp rcx, rax
jae 0x18001e51b
movzx eax, word [r8 + r10]
mov word [rsp + 0x68], ax
test ax, ax
je 0x18001e51b
lea eax, [r8 + 2]
mov r9, qword [rdx]
test r9, r9
je 0x18001e51b
mov r10d, eax
lea rcx, [rax + 1]
mov eax, dword [rdx + 0x10]
cmp rcx, rax
jae 0x18001e51b
movzx eax, word [r10 + r9]
mov word [rsp + 0x6a], ax
lea eax, [r8 + 4]
mov r10, qword [rdx]
test r10, r10
je 0x18001e51b
mov r9d, eax
lea rcx, [rax + 1]
mov eax, dword [rdx + 0x10]
cmp rcx, rax
jae 0x18001e51b
movzx eax, word [r9 + r10]
mov word [rsp + 0x6c], ax
lea edi, [r8 + 6]
mov dword [rsi], edi
mov dword [rsp + 0x44], 6
mov dword [rsp + 0x40], r14d
lea r9, [rsp + 0x40]
lea r8, [rsp + 0x70]
mov rdx, rsi
mov rcx, r15
call fcn.18001f260
test al, al
je 0x18001e51b
mov r8d, r13d
lea rdx, [rbp + 0x30]
call fcn.18001ea00
test al, al
je 0x18001e51b
lea eax, [r13 - 2]
cmp eax, 1
ja 0x18001dd21
lea r8, [rbp + 0x30]
lea rdx, [rsp + 0x68]
mov rcx, r15
call fcn.18002c130
test al, al
je 0x18001e51b
cmp r13d, 3
jne 0x18001dd21
lea rcx, [rsp + 0x70]
cmp qword [rbp - 0x78], 0x10
cmovae rcx, qword [rsp + 0x70]
xor edx, edx
lea r8d, [r14 + 0x10]
call fcn.18003dfd0
mov eax, eax
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
lea r8, [0x1800804a8]
cmp qword [0x1800804c0], 0x10
cmovae r8, qword [0x1800804a8]
mov ecx, r14d
mov edx, r14d
mov r9, qword [0x1800804b8]
test r9, r9
je 0x18001dcdc
nop word [rax + rax]
movzx eax, byte [rdx + r8]
add ecx, eax
imul ecx, ecx, 0x401
mov eax, ecx
shr eax, 6
xor ecx, eax
inc rdx
cmp rdx, r9
jne 0x18001dcc0
lea ecx, [rcx + rcx*8]
mov eax, ecx
shr eax, 0xb
xor ecx, eax
imul r8d, ecx, 0x8001
mov eax, 0x446f8657
mul r8d
mov eax, r8d
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 7
imul eax, eax, 0xca
sub r8d, eax
add r8d, 0x36
mov rax, qword [r15 + 0x278]
addss xmm0, dword [rax + r8*4]
movss dword [rax + r8*4], xmm0
mov edx, dword [rsi]
test dl, 3
je 0x18001dd3b
movzx eax, dl
and al, 3
mov ecx, 4
sub cl, al
movzx eax, cl
add edx, eax
mov dword [rsi], edx
sub edx, edi
mov ecx, dword [rsp + 0x44]
add ecx, edx
mov dword [rsp + 0x44], ecx
movzx eax, word [rsp + 0x68]
movabs r8, 0x7fffffffffffffff
movss xmm6, dword [0x180074be8]
cmp ecx, eax
jb 0x18001dfbe
cmp r13d, 4
jne 0x18001dfbe
mov rcx, qword [0x1800808b8]
mov rdx, qword [0x180080398]
mov rax, r8
sub rax, rcx
cmp rax, rdx
jb 0x18001e658
lea r9, [0x1800808a8]
cmp qword [0x1800808c0], 0x10
cmovae r9, qword [0x1800808a8]
lea rax, [0x180080388]
cmp qword [0x1800803a0], 0x10
cmovae rax, qword [0x180080388]
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
lea rcx, [rbp - 0x30]
call fcn.18001a4e0
nop
lea rdx, [0x180080a08]
cmp qword [0x180080a20], 0x10
cmovae rdx, qword [0x180080a08]
mov r8, qword [0x180080a18]
lea rcx, [rbp - 0x30]
call fcn.180018a50
xor edi, edi
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x60], rdi
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x48], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x58], xmm1
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], 0xf
mov byte [rax], dil
lea rdx, [rsp + 0x70]
cmp qword [rbp - 0x78], 0x10
cmovae rdx, qword [rsp + 0x70]
mov r8, qword [rbp - 0x80]
lea rcx, [rsp + 0x48]
call fcn.180018a50
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x70], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x60], xmm1
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], 0xf
mov byte [rax], dil
lea ebx, [rdi + 0x1c]
mov rdx, qword [rsp + 0x60]
cmp rdx, 0x10
jb 0x18001dea8
inc rdx
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18001dea3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18001e65e
call fcn.180034ec0
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x60], 0xf
mov byte [rsp + 0x48], 0
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x18001def6
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18001def1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18001e664
call fcn.180034ec0
lea r8, [rbp - 0x70]
mov r9, qword [rbp - 0x70]
mov r11, qword [rbp - 0x58]
cmp r11, 0x10
cmovae r8, r9
mov ecx, edi
mov rdx, rdi
mov r10, qword [rbp - 0x60]
test r10, r10
je 0x18001df3c
nop dword [rax + rax]
movzx eax, byte [rdx + r8]
add ecx, eax
imul ecx, ecx, 0x401
mov eax, ecx
shr eax, 6
xor ecx, eax
inc rdx
cmp rdx, r10
jne 0x18001df20
lea ecx, [rcx + rcx*8]
mov eax, ecx
shr eax, 0xb
xor ecx, eax
imul r8d, ecx, 0x8001
mov eax, 0x446f8657
mul r8d
mov eax, r8d
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 7
imul eax, eax, 0xca
sub r8d, eax
add r8d, 0x36
mov rax, qword [r15 + 0x278]
movss xmm0, dword [rax + r8*4]
addss xmm0, xmm6
movss dword [rax + r8*4], xmm0
cmp r11, 0x10
jb 0x18001dfc0
lea rdx, [r11 + 1]
mov rax, r9
cmp rdx, 0x1000
jb 0x18001dfb4
add rdx, 0x27
mov r9, qword [r9 - 8]
sub rax, r9
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18001e694
mov rcx, r9
call fcn.180034ec0
jmp 0x18001dfc0
xor edi, edi
movzx eax, word [rsp + 0x68]
cmp dword [rsp + 0x44], eax
jae 0x18001e643
cmp r13d, 4
jne 0x18001e4ff
mov qword [rsp + 0x48], rdi
mov rax, rdi
mov qword [rsp + 0x58], rax
mov ecx, 0xf
mov qword [rsp + 0x60], rcx
mov byte [rsp + 0x48], 0
mov r14d, dword [rsi]
cmp word [rsp + 0x6a], 0
jbe 0x18001e02b
mov dword [rsp + 0x40], edi
lea r9, [rsp + 0x40]
lea r8, [rsp + 0x48]
mov rdx, rsi
mov rcx, r15
call fcn.18001f260
test al, al
je 0x18001e5c3
mov rcx, qword [rsp + 0x60]
mov rax, qword [rsp + 0x58]
mov qword [rbp - 0x10], rdi
mov qword [rbp], rdi
mov qword [rbp + 8], 0xf
mov r8d, 0x30
cmp rax, r8
cmovb r8, rax
lea rdx, [rsp + 0x48]
cmp rcx, 0x10
cmovae rdx, qword [rsp + 0x48]
lea rcx, [rbp - 0x10]
call fcn.180006570
or ebx, 0x20
mov dword [rsp + 0x40], ebx
mov rdx, qword [rsp + 0x60]
cmp rdx, 0x10
jb 0x18001e0a4
inc rdx
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18001e09f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18001e68e
call fcn.180034ec0
movups xmm0, xmmword [rbp - 0x10]
movups xmmword [rsp + 0x48], xmm0
movups xmm1, xmmword [rbp]
movups xmmword [rsp + 0x58], xmm1
movq rcx, xmm1
test rcx, rcx
jne 0x18001e0ef
mov qword [rbp + 0x10], rdi
mov qword [rbp + 0x20], rdi
mov qword [rbp + 0x28], 0xf
mov byte [rbp + 0x10], cl
xor r8d, r8d
lea rdx, [0x180072abb]
lea rcx, [rbp + 0x10]
call fcn.180006570
lea rdi, [rbp + 0x10]
or ebx, 1
jmp 0x18001e142
movabs rax, 0x7fffffffffffffff
sub rax, rcx
cmp rax, 1
jb 0x18001e6a0
lea rax, [rsp + 0x48]
cmp qword [rbp + 8], 0x10
cmovae rax, qword [rbp - 0x10]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 1
lea r9, [0x18007499c]
lea rcx, [rbp + 0x70]
call fcn.18001a4e0
or ebx, 0x40
lea rdi, [rbp + 0x70]
or ebx, 2
mov dword [rsp + 0x40], ebx
mov rcx, qword [0x1800808b8]
mov rdx, qword [0x180080398]
movabs rax, 0x7fffffffffffffff
sub rax, rcx
cmp rax, rdx
jb 0x18001e69a
lea r9, [0x1800808a8]
cmp qword [0x1800808c0], 0x10
cmovae r9, qword [0x1800808a8]
lea rax, [0x180080388]
cmp qword [0x1800803a0], 0x10
cmovae rax, qword [0x180080388]
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
lea rcx, [rbp - 0x70]
call fcn.18001a4e0
bts ebx, 7
mov dword [rsp + 0x40], ebx
lea rdx, [0x180080a08]
cmp qword [0x180080a20], 0x10
cmovae rdx, qword [0x180080a08]
mov r8, qword [0x180080a18]
lea rcx, [rbp - 0x70]
call fcn.180018a50
xor ecx, ecx
mov qword [rbp - 0x50], rcx
mov qword [rbp - 0x40], rcx
mov qword [rbp - 0x38], rcx
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x50], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x40], xmm1
mov qword [rax + 0x10], rcx
mov qword [rax + 0x18], 0xf
mov byte [rax], cl
bts ebx, 8
mov dword [rsp + 0x40], ebx
lea rdx, [rsp + 0x70]
cmp qword [rbp - 0x78], 0x10
cmovae rdx, qword [rsp + 0x70]
mov r8, qword [rbp - 0x80]
lea rcx, [rbp - 0x50]
call fcn.180018a50
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x50], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x60], xmm1
mov qword [rax + 0x10], 0
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
bts ebx, 9
mov dword [rsp + 0x40], ebx
mov r9, rdi
lea r8, [rbp + 0x50]
lea rcx, [rbp - 0x30]
call fcn.180030cf0
bts ebx, 0xa
mov rdx, qword [rbp + 0x68]
cmp rdx, 0x10
jb 0x18001e2a9
inc rdx
mov rcx, qword [rbp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18001e2a3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18001e670
call fcn.180034ec0
nop
mov rdx, qword [rbp - 0x38]
cmp rdx, 0x10
jb 0x18001e2e4
inc rdx
mov rcx, qword [rbp - 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18001e2df
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18001e676
call fcn.180034ec0
xor edi, edi
mov qword [rbp - 0x40], rdi
mov qword [rbp - 0x38], 0xf
mov byte [rbp - 0x50], dil
mov rdx, qword [rbp - 0x58]
cmp rdx, 0x10
jb 0x18001e331
inc rdx
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18001e32c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18001e67c
call fcn.180034ec0
mov qword [rbp - 0x60], rdi
mov qword [rbp - 0x58], 0xf
mov byte [rbp - 0x70], 0
test bl, 2
je 0x18001e388
and ebx, 0xfffffffd
mov rdx, qword [rbp + 0x88]
cmp rdx, 0x10
jb 0x18001e388
inc rdx
mov rcx, qword [rbp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18001e382
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18001e682
call fcn.180034ec0
nop
test bl, 1
je 0x18001e3cb
and ebx, 0xfffffffe
mov rdx, qword [rbp + 0x28]
cmp rdx, 0x10
jb 0x18001e3cb
inc rdx
mov rcx, qword [rbp + 0x10]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18001e3c6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18001e688
call fcn.180034ec0
lea r8, [rbp - 0x30]
mov r9, qword [rbp - 0x30]
mov r11, qword [rbp - 0x18]
cmp r11, 0x10
cmovae r8, r9
mov ecx, edi
mov rdx, rdi
mov r10, qword [rbp - 0x20]
test r10, r10
je 0x18001e40c
nop dword [rax]
movzx eax, byte [rdx + r8]
add ecx, eax
imul ecx, ecx, 0x401
mov eax, ecx
shr eax, 6
xor ecx, eax
inc rdx
cmp rdx, r10
jne 0x18001e3f0
lea ecx, [rcx + rcx*8]
mov eax, ecx
shr eax, 0xb
xor ecx, eax
imul r8d, ecx, 0x8001
mov eax, 0x446f8657
mul r8d
mov eax, r8d
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 7
imul eax, eax, 0xca
sub r8d, eax
add r8d, 0x36
mov rax, qword [r15 + 0x278]
movss xmm0, dword [rax + r8*4]
addss xmm0, xmm6
movss dword [rax + r8*4], xmm0
mov edx, dword [rsi]
test dl, 3
je 0x18001e46f
movzx eax, dl
and al, 3
mov ecx, 4
sub cl, al
movzx eax, cl
add edx, eax
mov dword [rsi], edx
mov eax, edx
sub eax, r14d
add dword [rsp + 0x44], eax
cmp edx, r14d
je 0x18001e5c7
cmp r11, 0x10
jb 0x18001e4b9
lea rdx, [r11 + 1]
mov rax, r9
cmp rdx, 0x1000
jb 0x18001e4b0
add rdx, 0x27
mov r9, qword [r9 - 8]
sub rax, r9
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18001e68e
mov rcx, r9
call fcn.180034ec0
nop
mov rdx, qword [rsp + 0x60]
cmp rdx, 0x10
jb 0x18001dfc0
inc rdx
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18001e4f5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18001e694
call fcn.180034ec0
jmp 0x18001dfc0
lea r9d, [r13 + 1]
lea r8, [rsp + 0x44]
mov rdx, rsi
mov rcx, r15
call fcn.18001daf0
test al, al
jne 0x18001dfc0
xor bl, bl
mov rdx, qword [rbp + 0x48]
cmp rdx, 0x10
jb 0x18001e559
inc rdx
mov rcx, qword [rbp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18001e553
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18001e66a
call fcn.180034ec0
nop
mov rdx, qword [rbp - 0x78]
cmp rdx, 0x10
jb 0x18001e595
inc rdx
mov rcx, qword [rsp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18001e590
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18001e652
call fcn.180034ec0
movzx eax, bl
mov rcx, qword [rbp + 0x90]
xor rcx, rsp
call fcn.180034ea0
movaps xmm6, xmmword [rsp + 0x1a0]
add rsp, 0x1b8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
xor bl, bl
jmp 0x18001e601
mov bl, 1
cmp r11, 0x10
jb 0x18001e601
lea rdx, [r11 + 1]
mov rax, r9
cmp rdx, 0x1000
jb 0x18001e5f8
add rdx, 0x27
mov r9, qword [r9 - 8]
sub rax, r9
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18001e68e
mov rcx, r9
call fcn.180034ec0
nop
mov rdx, qword [rsp + 0x60]
cmp rdx, 0x10
jb 0x18001e51d
inc rdx
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18001e639
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18001e694
call fcn.180034ec0
jmp 0x18001e51d
mov eax, dword [rsp + 0x44]
add dword [r12], eax
mov bl, 1
jmp 0x18001e51d
call fcn.18003b6f4
nop
call fcn.180005f70
nop
call fcn.18003b6f4
nop
call fcn.18003b6f4
nop
call fcn.18003b6f4
nop
call fcn.18003b6f4
nop
call fcn.18003b6f4
nop
call fcn.18003b6f4
nop
call fcn.18003b6f4
nop
call fcn.18003b6f4
int3
call fcn.18003b6f4
nop
call fcn.18003b6f4
nop
call fcn.180005f70
nop
call fcn.180005f70
int3