Function at 0x180038150
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x100
mov rax, qword [0x1800dbea8]
xor rax, rsp
mov qword [rsp + 0xf0], rax
mov r12, qword [rsp + 0x160]
mov r13d, edx
mov r15, qword [rsp + 0x168]
mov r14, r8
mov qword [rsp + 0x48], r9
mov rdx, rcx
mov qword [rsp + 0x38], rcx
lea eax, [r13 + 0xd]
mov dword [rsp + 0x24], eax
mov edi, dword [rsp + 0x24]
cmp r13d, eax
jae case.0x18003820f.100
mov r8, qword [rsp + 0x38]
xor ebx, ebx
movzx r10d, byte [rsp + 0x20]
mov r11, qword [rsp + 0x38]
mov ecx, dword [rsp + 0x24]
mov esi, dword [rsp + 0x24]
mov ebp, dword [rsp + 0x24]
mov qword [rsp + 0x28], r8
mov byte [rsp + 0x20], r10b
mov qword [rsp + 0x40], r11
mov dword [rsp + 0x30], ecx
lea eax, [r13 - 0x63]
cmp eax, 0x2a
ja case.0x18003820f.101
lea rcx, [0x180000000]
movzx eax, byte [rcx + rax + 0x38554]
mov ecx, dword [rcx + rax*4 + 0x3851c]
lea rax, [0x180000000]
add rcx, rax
jmp rcx
lea r8, [r14 + 0x10]
mov qword [rsp + 0x28], r8
jmp case.0x18003820f.101
test r10b, r10b
je 0x180038242
mov edx, 0x10
mov rcx, r11
call qword [sym.imp.WINMM.dll_mmioClose]
mov r8, qword [rsp + 0x28]
movzx r10d, byte [rsp + 0x20]
mov r11, qword [rsp + 0x40]
mov edx, 0x66
cmp edx, 0x66
je 0x18003827f
cmp edx, 0x4554
je 0x180038277
cmp edx, 0x8a42
jne 0x1800382a4
mov eax, dword [r14]
cmp esi, eax
jne 0x1800382a4
cmp eax, 0x40
jae 0x1800382a4
mov rax, qword [r15]
mov ecx, esi
mov qword [r14 + rcx*8 + 8], rax
inc dword [r14]
jmp 0x1800382a4
mov r13d, 0x8d
jmp 0x1800382a4
mov ecx, dword [r14]
mov esi, ebx
test ecx, ecx
je 0x18003829f
mov rdx, qword [r15]
nop dword [rax + rax]
mov eax, esi
cmp qword [r14 + rax*8 + 8], rdx
je 0x18003829f
inc esi
cmp esi, ecx
jb 0x180038290
mov edx, 0x66
add edx, 0x44ee
cmp edx, 0xceca
jbe 0x180038247
jmp case.0x18003820f.101
mov ebp, ebx
jmp case.0x18003820f.101
movups xmm0, xmmword [str.trustedTimesta_pRoot]
movzx eax, word [0x1800d2680]
mov r10b, 1
movups xmm1, xmmword [0x1800d2668]
mov word [rsp + 0xe8], ax
xor eax, eax
movups xmmword [rsp + 0xc0], xmm0
mov byte [rsp + 0x20], r10b
movsd xmm0, qword [0x1800d2678]
movsd qword [rsp + 0xe0], xmm0
xorps xmm0, xmm0
movups xmmword [rsp + 0x50], xmm0
mov dword [rsp + 0xb0], eax
movups xmmword [rsp + 0x60], xmm0
movups xmmword [rsp + 0x70], xmm0
movups xmmword [rsp + 0x80], xmm0
movups xmmword [rsp + 0x90], xmm0
movups xmmword [rsp + 0xa0], xmm0
movups xmmword [rsp + 0xd0], xmm1
jmp case.0x18003820f.101
mov dword [r14], ebx
mov dword [rsp + 0x30], ebx
jmp case.0x18003820f.101
movzx eax, byte [r14]
test al, al
je 0x180038372
mov edx, eax
nop dword [rax]
mov ecx, ebp
mov eax, ebp
shl eax, 5
shr ecx, 0x1b
mov ebp, ecx
xor ebp, eax
movsx eax, byte [r8]
xor ebp, eax
inc r8
sub rdx, 1
jne 0x180038350
mov qword [rsp + 0x28], r8
cmp dword [r14 + 4], ebx
jne case.0x18003820f.101
mov r8d, dword [r14 + 8]
test r8d, r8d
je 0x1800383ac
add r8d, 3
mov rdx, r15
shr r8d, 2
test r8d, r8d
je 0x1800383ac
mov ecx, ebp
lea rdx, [rdx + 4]
mov eax, ebp
shr ecx, 0x10
shl eax, 0x10
mov ebp, ecx
xor ebp, eax
xor ebp, dword [rdx - 4]
sub r8d, 1
jne 0x180038391
mov r8, qword [rsp + 0x28]
inc r13d
cmp r13d, dword [rsp + 0x24]
jae case.0x18003820f.100
mov r9, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x38]
jmp 0x1800381e2
mov eax, dword [r12]
test eax, eax
je 0x1800383fe
nop word [rax + rax]
dec dword [r12]
mov rax, qword [r14]
mov qword [r15], rax
movsxd rax, dword [rdx]
add r15, rax
movsxd rax, dword [r9]
add r14, rax
cmp dword [r12], ebx
jne 0x1800383e0
mov eax, ebx
dec eax
mov dword [r12], eax
jmp case.0x18003820f.101
mov r8d, dword [rsp + 0x30]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0xc0]
call qword [sym.imp.WINMM.dll_mmioOpenW]
mov r8, qword [rsp + 0x28]
mov r11, rax
mov qword [rsp + 0x40], rax
test rax, rax
jne 0x18003843d
xor r10b, r10b
mov byte [rsp + 0x20], r10b
jmp case.0x18003820f.101
movzx r10d, byte [rsp + 0x20]
jmp case.0x18003820f.101
cmp dword [r9], 0x40
jne case.0x18003820f.101
cmp dword [rdx], 0x40
jne case.0x18003820f.101
mov eax, dword [r12]
mov rcx, r15
cdq
and edx, 7
add eax, edx
mov rdx, r14
sar eax, 3
movsxd r8, eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [r12]
jmp 0x1800384ee
mov rax, qword [r14]
mov ecx, dword [r15]
mov edx, dword [rax + 0x28]
cmp ecx, edx
ja 0x1800384e1
cmp edx, 0x40000
ja 0x1800384e1
test cl, 3
jne 0x1800384e1
cmp ecx, 0x10000
jb 0x1800384d8
cmp ecx, edx
jne 0x1800384bd
cmp edx, 0x10000
mov eax, 0xffff
mov edi, ebx
cmovne ax, bx
mov word [r9 + 4], ax
jmp case.0x18003820f.101
mov eax, ecx
mov edi, ebx
shr eax, 0x10
xor ax, cx
and ax, 3
xor ax, cx
mov word [r9 + 4], ax
jmp case.0x18003820f.101
mov word [r9 + 4], cx
mov eax, ebx
jmp 0x1800384ee
mov eax, 0x16
jmp 0x1800384ee
mov eax, ebp
jmp 0x1800384ee
mov eax, edi
mov rcx, qword [rsp + 0xf0]
xor rcx, rsp
call fcn.1800c0ae0
mov rbx, qword [rsp + 0x148]
add rsp, 0x100
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret