Function at 0x18002f3b0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x70
mov rax, qword [0x1800e3040]
xor rax, rsp
mov qword [rsp + 0x60], rax
mov rdi, r8
mov r14, rdx
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x58], r8
mov rax, qword [0x1800f3520]
mov qword [rsp + 0x28], rax
mov r10, rdx
mov rbx, qword [rdx + 0x18]
cmp rbx, 0xf
jbe 0x18002f3ff
mov r10, qword [rdx]
mov r15, qword [rdx + 0x10]
xor r9d, r9d
lea r11, [r15 + r10]
cmp r10, r11
je 0x18002f444
nop
movzx r8d, byte [r10]
lea edx, [r8 - 0x41]
lea eax, [r8 + 0x20]
movzx ecx, al
cmp dl, 0x19
cmova ecx, r8d
movsx eax, cl
add eax, r9d
imul r9d, eax, 0x401
mov eax, r9d
shr eax, 6
xor r9d, eax
inc r10
cmp r10, r11
jne 0x18002f410
lea ecx, [r9 + r9*8]
mov eax, ecx
shr eax, 0xb
xor ecx, eax
imul r13d, ecx, 0x8001
movabs rcx, 0x7fffffffffffffff
mov rax, rcx
sub rax, r15
cmp rax, 0x13
jb 0x18002f8b9
mov r12, r14
cmp rbx, 0xf
jbe 0x18002f47c
mov r12, qword [r14]
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
lea rbp, [r15 + 0x13]
mov ebx, 0xf
lea rsi, [rsp + 0x30]
cmp rbp, rbx
jbe 0x18002f51a
mov rbx, rbp
or rbx, 0xf
cmp rbx, rcx
jbe 0x18002f4dc
mov rbx, rcx
movabs rax, 0x8000000000000000
add rax, 0x27
mov rcx, rax
call fcn.180090410
test rax, rax
je 0x18002f5f4
lea rsi, [rax + 0x27]
and rsi, 0xffffffffffffffe0
mov qword [rsi - 8], rax
jmp 0x18002f515
mov eax, 0x16
cmp rbx, rax
cmovb rbx, rax
lea rcx, [rbx + 1]
cmp rcx, 0x1000
jb 0x18002f504
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x18002f8bf
jmp 0x18002f4bd
test rcx, rcx
je 0x18002f513
call fcn.180090410
mov rsi, rax
jmp 0x18002f515
xor esi, esi
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x48], rbx
movups xmm0, xmmword [str.platform:_textures_]
movups xmmword [rsi], xmm0
movzx eax, word [0x1800cc560]
mov word [rsi + 0x10], ax
movzx eax, byte [0x1800cc562]
mov byte [rsi + 0x12], al
lea rcx, [rsi + 0x13]
mov r8, r15
mov rdx, r12
call sub.VCRUNTIME140.dll_memcpy
mov byte [rsi + rbp], 0
lea r10, [rsp + 0x30]
mov r11, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x48]
cmp rsi, 0xf
cmova r10, r11
xor r9d, r9d
mov rbx, qword [rsp + 0x40]
add rbx, r10
cmp r10, rbx
je 0x18002f5b4
nop dword [rax]
movzx r8d, byte [r10]
lea edx, [r8 - 0x41]
lea eax, [r8 + 0x20]
movzx ecx, al
cmp dl, 0x19
cmova ecx, r8d
movsx eax, cl
add eax, r9d
imul r9d, eax, 0x401
mov eax, r9d
shr eax, 6
xor r9d, eax
inc r10
cmp r10, rbx
jne 0x18002f580
lea ecx, [r9 + r9*8]
mov eax, ecx
shr eax, 0xb
xor ecx, eax
imul ebx, ecx, 0x8001
mov dword [rsp + 0x24], ebx
cmp rsi, 0xf
jbe 0x18002f603
lea rdx, [rsi + 1]
mov rax, r11
cmp rdx, 0x1000
jb 0x18002f5fb
add rdx, 0x27
mov r11, qword [r11 - 8]
sub rax, r11
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18002f5fb
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, r11
call fcn.180090970
mov edx, r13d
mov rcx, qword [rsp + 0x28]
call fcn.18002f330
test rax, rax
je 0x18002f68e
movzx r13d, word [rax + 0x28]
movzx ebp, r13w
test r13w, r13w
je 0x18002f68e
mov r12, qword [rax + 0x30]
test r12, r12
je 0x18002f684
cmp bp, r13w
jge 0x18002f684
movsx rax, bp
mov r15, qword [r12 + rax*8]
test r15, r15
je 0x18002f684
mov rdx, qword [r15 + 0x28]
mov rbx, 0xffffffffffffffff
nop dword [rax + rax]
inc rbx
cmp byte [rdx + rbx], 0
jne 0x18002f650
mov rsi, qword [rdi + 0x10]
mov rcx, rdi
cmp qword [rdi + 0x18], 0xf
jbe 0x18002f66a
mov rcx, qword [rdi]
mov r8, rsi
cmp rbx, rsi
cmovb r8, rbx
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x18002f684
cmp rsi, rbx
jb 0x18002f684
jbe 0x18002f6f3
sub bp, 1
jne 0x18002f628
mov ebx, dword [rsp + 0x24]
mov r8, qword [rsp + 0x28]
mov r10d, dword [r8 + 0x48]
mov edx, r10d
test r10d, r10d
je 0x18002f7f4
mov r9, qword [r8 + 0x40]
test r9, r9
je 0x18002f6e9
cmp edx, r10d
jae 0x18002f6e9
mov ecx, edx
movzx eax, byte [r9 + rcx]
shr al, 7
not al
test al, 1
je 0x18002f6e9
lea rcx, [rcx + rcx*2]
mov rax, qword [r8 + 0x38]
lea r8, [rax + rcx*8]
mov rax, qword [r8]
test rax, rax
je 0x18002f6e4
test r8, r8
je 0x18002f6e4
cmp dword [r8 + 0xc], ebx
je 0x18002f780
mov r8, qword [rsp + 0x28]
add edx, 0xffffffff
jne 0x18002f6a7
jmp 0x18002f7f4
mov rdx, qword [r14 + 0x18]
cmp rdx, 0xf
jbe 0x18002f72d
inc rdx
cmp rdx, 0x1000
mov rcx, qword [r14]
jb 0x18002f728
mov r8, qword [rcx - 8]
sub rcx, r8
add rdx, 0x27
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x18002f8ab
mov rcx, r8
call fcn.180090970
xor ebx, ebx
mov byte [r14], bl
mov qword [r14 + 0x18], 0xf
mov qword [r14 + 0x10], rbx
mov rdx, qword [rdi + 0x18]
cmp rdx, 0xf
jbe 0x18002f778
inc rdx
cmp rdx, 0x1000
mov rcx, qword [rdi]
jb 0x18002f773
add rdx, 0x27
mov rax, qword [rcx - 8]
sub rcx, rax
add rcx, 0xfffffffffffffff8
cmp rcx, 0x1f
ja 0x18002f8b2
mov rcx, rax
call fcn.180090970
mov rax, r15
jmp 0x18002f877
movzx r13d, word [rax + 0x28]
movzx ebp, r13w
test r13w, r13w
je 0x18002f7f4
mov r12, qword [rax + 0x30]
test r12, r12
je 0x18002f7ee
cmp bp, r13w
jge 0x18002f7ee
movsx rax, bp
mov r15, qword [r12 + rax*8]
test r15, r15
je 0x18002f7ee
mov rdx, qword [r15 + 0x28]
mov rbx, 0xffffffffffffffff
inc rbx
cmp byte [rdx + rbx], 0
jne 0x18002f7b6
mov rsi, qword [rdi + 0x10]
mov rcx, rdi
cmp qword [rdi + 0x18], 0xf
jbe 0x18002f7d0
mov rcx, qword [rdi]
mov r8, rsi
cmp rbx, rsi
cmovb r8, rbx
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x18002f7ee
cmp rsi, rbx
jb 0x18002f7ee
jbe 0x18002f6f3
sub bp, 1
jne 0x18002f793
mov rdx, qword [r14 + 0x18]
cmp rdx, 0xf
jbe 0x18002f82e
mov rcx, qword [r14]
inc rdx
cmp rdx, 0x1000
jb 0x18002f829
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x18002f8ab
mov rcx, r8
call fcn.180090970
xor ebx, ebx
mov qword [r14 + 0x10], rbx
mov qword [r14 + 0x18], 0xf
mov byte [r14], bl
mov rdx, qword [rdi + 0x18]
cmp rdx, 0xf
jbe 0x18002f875
inc rdx
mov rcx, qword [rdi]
cmp rdx, 0x1000
jb 0x18002f870
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x18002f8b2
mov rcx, r8
call fcn.180090970
xor eax, eax
mov byte [rdi], 0
mov qword [rdi + 0x18], 0xf
mov qword [rdi + 0x10], rbx
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.1800903f0
mov rbx, qword [rsp + 0xb0]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call fcn.180002b20
int3
call fcn.180002900
int3