Function at 0x180037920
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x70]
sub rsp, 0x170
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
mov rax, qword [section..data]
xor rax, rsp
mov qword [rbp + 0x40], rax
mov rax, qword [rcx + 0x40]
mov r13, rcx
mov rbx, qword [rcx + 0x88]
mov qword [rsp + 0x68], r9
mov qword [rsp + 0x60], rcx
mov byte [rbp - 0x10], 0x80
cmp rax, 0x38
jae 0x180037983
mov edi, 0x40
sub rdi, rax
inc rbx
jmp 0x18003798f
mov edi, 0x80
sub rdi, rax
add rbx, 2
lea r8, [rdi - 9]
xor edx, edx
lea rcx, [rbp - 0xf]
call fcn.180082af0
rol rbx, 0x20
mov r8, rdi
mov rdx, rbx
mov rax, rbx
shr rdx, 0x10
shl rax, 0x10
xor rdx, rax
shl rbx, 0x10
movabs rax, 0xffff0000ffff
and rdx, rax
xor rdx, rbx
mov rcx, rdx
mov rax, rdx
shr rcx, 8
shl rax, 8
xor rcx, rax
shl rdx, 8
movabs rax, 0xff00ff00ff00ff
and rcx, rax
xor rcx, rdx
lea rdx, [rbp - 0x10]
mov qword [rbp + rdi - 0x18], rcx
mov rcx, r13
call fcn.1800361f0
movups xmm0, xmmword [r13 + 0x48]
mov r12d, 0x20
lea r8, [0x180000000]
movups xmm1, xmmword [r13 + 0x58]
movaps xmmword [rbp - 0x50], xmm0
movups xmm0, xmmword [r13 + 0x68]
movaps xmmword [rbp - 0x40], xmm1
movups xmm1, xmmword [r13 + 0x78]
movaps xmmword [rbp - 0x30], xmm0
movups xmm0, xmmword [r13 + 0x48]
movaps xmmword [rbp - 0x20], xmm1
movups xmm1, xmmword [r13 + 0x58]
movaps xmmword [rsp + 0x70], xmm0
movups xmm0, xmmword [r13 + 0x68]
movaps xmmword [rbp - 0x80], xmm1
movups xmm1, xmmword [r13 + 0x78]
xor r13d, r13d
movaps xmmword [rbp - 0x70], xmm0
movaps xmmword [rbp - 0x60], xmm1
nop dword [rax]
mov r15, qword [rsp + 0x70]
lea rax, [r12 - 0x20]
xor r15, rax
mov rdi, qword [rsp + 0x78]
mov r11, qword [rbp - 0x78]
lea rax, [r12 - 0x10]
mov r10, qword [rbp - 0x70]
xor rdi, rax
mov r9, qword [rbp - 0x68]
lea rax, [r12 + 0x10]
mov r14, qword [rbp - 0x60]
xor r11, rax
mov rsi, qword [rbp - 0x58]
lea rax, [r12 + 0x20]
mov rbx, qword [rbp - 0x80]
xor r10, rax
xor rbx, r12
movd xmm7, r13d
lea rax, [r12 + 0x30]
pshufd xmm7, xmm7, 0
xor r9, rax
lea rax, [r12 + 0x40]
xor r14, rax
lea rax, [r12 + 0x50]
xor rsi, rax
mov rax, r14
shr rax, 0x30
movzx edx, al
mov rax, r9
shr rax, 0x28
movzx ecx, al
mov rax, r10
shr rax, 0x20
mov r8, qword [r8 + rdx*8 + 0xa24f0]
lea rdx, [0x180000000]
xor r8, qword [rdx + rcx*8 + 0xa54f0]
movzx ecx, al
mov rax, r11
shr rax, 0x18
xor r8, qword [rdx + rcx*8 + 0xa5cf0]
movzx ecx, al
mov rax, rbx
shr rax, 0x10
xor r8, qword [rdx + rcx*8 + 0xa3cf0]
movzx ecx, al
mov rax, rdi
shr rax, 8
xor r8, qword [rdx + rcx*8 + 0xa4cf0]
movzx ecx, al
mov rax, rsi
shr rax, 0x38
xor r8, qword [rdx + rcx*8 + 0xa34f0]
xor r8, qword [rdx + rax*8 + 0xa44f0]
movzx eax, r15b
xor r8, qword [rdx + rax*8 + 0xa2cf0]
mov rax, rsi
shr rax, 0x30
movzx edx, al
mov rax, r14
shr rax, 0x28
movzx ecx, al
mov rax, r9
shr rax, 0x20
mov qword [rsp + 0x20], r8
lea r8, [0x180000000]
mov r8, qword [r8 + rdx*8 + 0xa24f0]
lea rdx, [0x180000000]
xor r8, qword [rdx + rcx*8 + 0xa54f0]
movzx ecx, al
mov rax, r10
shr rax, 0x18
xor r8, qword [rdx + rcx*8 + 0xa5cf0]
movzx ecx, al
mov rax, r11
shr rax, 0x10
xor r8, qword [rdx + rcx*8 + 0xa3cf0]
movzx ecx, al
mov rax, rbx
xor r8, qword [rdx + rcx*8 + 0xa4cf0]
shr rax, 8
movzx ecx, al
xor r8, qword [rdx + rcx*8 + 0xa34f0]
mov rax, r15
shr rax, 0x38
xor r8, qword [rdx + rax*8 + 0xa44f0]
movzx eax, dil
xor r8, qword [rdx + rax*8 + 0xa2cf0]
mov rax, rsi
shr rax, 0x28
movzx edx, al
mov rax, r14
shr rax, 0x20
movzx ecx, al
mov rax, r9
shr rax, 0x18
mov qword [rsp + 0x28], r8
lea r8, [0x180000000]
mov r8, qword [r8 + rdx*8 + 0xa54f0]
lea rdx, [0x180000000]
xor r8, qword [rdx + rcx*8 + 0xa5cf0]
movzx ecx, al
mov rax, r10
shr rax, 0x10
xor r8, qword [rdx + rcx*8 + 0xa3cf0]
movzx ecx, al
mov rax, r11
shr rax, 8
xor r8, qword [rdx + rcx*8 + 0xa4cf0]
movzx ecx, al
mov rax, r15
shr rax, 0x30
xor r8, qword [rdx + rcx*8 + 0xa34f0]
movzx ecx, al
mov rax, rdi
shr rax, 0x38
xor r8, qword [rdx + rcx*8 + 0xa24f0]
xor r8, qword [rdx + rax*8 + 0xa44f0]
movzx eax, bl
xor r8, qword [rdx + rax*8 + 0xa2cf0]
mov rax, rsi
shr rax, 0x20
movzx edx, al
mov rax, r14
shr rax, 0x18
movzx ecx, al
mov rax, r9
shr rax, 0x10
mov qword [rsp + 0x30], r8
lea r8, [0x180000000]
mov r8, qword [r8 + rdx*8 + 0xa5cf0]
lea rdx, [0x180000000]
xor r8, qword [rdx + rcx*8 + 0xa3cf0]
movzx ecx, al
mov rax, r10
shr rax, 8
xor r8, qword [rdx + rcx*8 + 0xa4cf0]
movzx ecx, al
mov rax, rdi
shr rax, 0x30
xor r8, qword [rdx + rcx*8 + 0xa34f0]
movzx ecx, al
mov rax, r15
shr rax, 0x28
xor r8, qword [rdx + rcx*8 + 0xa24f0]
movzx ecx, al
mov rax, rbx
shr rax, 0x38
xor r8, qword [rdx + rcx*8 + 0xa54f0]
xor r8, qword [rdx + rax*8 + 0xa44f0]
movzx eax, r11b
xor r8, qword [rdx + rax*8 + 0xa2cf0]
mov rax, rsi
shr rax, 0x18
movzx edx, al
mov rax, r14
mov qword [rsp + 0x38], r8
lea r8, [0x180000000]
shr rax, 0x10
movzx ecx, al
mov r8, qword [r8 + rdx*8 + 0xa3cf0]
lea rdx, [0x180000000]
xor r8, qword [rdx + rcx*8 + 0xa4cf0]
mov rax, r9
shr rax, 8
movzx ecx, al
mov rax, rbx
shr rax, 0x30
xor r8, qword [rdx + rcx*8 + 0xa34f0]
movzx ecx, al
mov rax, rdi
shr rax, 0x28
xor r8, qword [rdx + rcx*8 + 0xa24f0]
movzx ecx, al
mov rax, r15
shr rax, 0x20
xor r8, qword [rdx + rcx*8 + 0xa54f0]
movzx ecx, al
mov rax, r11
shr rax, 0x38
xor r8, qword [rdx + rcx*8 + 0xa5cf0]
xor r8, qword [rdx + rax*8 + 0xa44f0]
movzx eax, r10b
xor r8, qword [rdx + rax*8 + 0xa2cf0]
mov rax, rsi
shr rax, 0x10
movzx edx, al
mov rax, r14
shr rax, 8
movzx ecx, al
mov rax, r11
shr rax, 0x30
mov qword [rsp + 0x40], r8
lea r8, [0x180000000]
mov r8, qword [r8 + rdx*8 + 0xa4cf0]
lea rdx, [0x180000000]
xor r8, qword [rdx + rcx*8 + 0xa34f0]
movzx ecx, al
mov rax, rbx
shr rax, 0x28
xor r8, qword [rdx + rcx*8 + 0xa24f0]
movzx ecx, al
mov rax, rdi
shr rax, 0x20
xor r8, qword [rdx + rcx*8 + 0xa54f0]
movzx ecx, al
mov rax, r15
shr rax, 0x18
xor r8, qword [rdx + rcx*8 + 0xa5cf0]
movzx ecx, al
mov rax, r10
shr rax, 0x38
xor r8, qword [rdx + rcx*8 + 0xa3cf0]
xor r8, qword [rdx + rax*8 + 0xa44f0]
movzx eax, r9b
xor r8, qword [rdx + rax*8 + 0xa2cf0]
mov rax, rsi
shr rax, 8
movzx edx, al
mov rax, r10
shr rax, 0x30
movzx ecx, al
mov rax, r11
shr rax, 0x28
mov qword [rsp + 0x48], r8
lea r8, [0x180000000]
mov r8, qword [r8 + rdx*8 + 0xa34f0]
lea rdx, [0x180000000]
xor r8, qword [rdx + rcx*8 + 0xa24f0]
movzx ecx, al
mov rax, rbx
shr rax, 0x20
xor r8, qword [rdx + rcx*8 + 0xa54f0]
movzx ecx, al
mov rax, rdi
shr rax, 0x18
xor r8, qword [rdx + rcx*8 + 0xa5cf0]
movzx ecx, al
mov rax, r15
shr rax, 0x10
xor r8, qword [rdx + rcx*8 + 0xa3cf0]
movzx ecx, al
mov rax, r9
xor r8, qword [rdx + rcx*8 + 0xa4cf0]
movaps xmm0, xmmword [rsp + 0x20]
movaps xmm1, xmmword [rsp + 0x30]
shr rax, 0x38
shr r9, 0x30
movzx ecx, r9b
lea r9, [0x180000000]
shr r10, 0x28
xor r8, qword [rdx + rax*8 + 0xa44f0]
movzx eax, r14b
shr r11, 0x20
shr rbx, 0x18
shr rdi, 0x10
xor r8, qword [rdx + rax*8 + 0xa2cf0]
mov rdx, qword [r9 + rcx*8 + 0xa24f0]
movzx eax, r10b
shr r15, 8
shr r14, 0x38
mov qword [rsp + 0x50], r8
xor rdx, qword [r9 + rax*8 + 0xa54f0]
movzx eax, r11b
movups xmmword [rsp + 0x70], xmm0
movaps xmm0, xmmword [rsp + 0x40]
xor rdx, qword [r9 + rax*8 + 0xa5cf0]
movzx eax, bl
movups xmmword [rbp - 0x80], xmm1
movups xmmword [rbp - 0x70], xmm0
xor rdx, qword [r9 + rax*8 + 0xa3cf0]
movzx eax, dil
xor rdx, qword [r9 + rax*8 + 0xa4cf0]
movzx eax, r15b
xor rdx, qword [r9 + rax*8 + 0xa34f0]
xor rdx, qword [r9 + r14*8 + 0xa44f0]
movzx eax, sil
xor rdx, qword [r9 + rax*8 + 0xa2cf0]
cmp dword [0x1800e1018], 2
mov qword [rsp + 0x58], rdx
movaps xmm1, xmmword [rsp + 0x50]
movups xmmword [rbp - 0x60], xmm1
jl 0x18003805d
movdqa xmm4, xmmword [0x1800da910]
mov eax, 4
movdqa xmm6, xmmword [0x1800da8e0]
xor r10d, r10d
mov edx, r10d
movd xmm5, eax
lea rax, [rbp - 0x80]
nop dword [rax]
movd xmm2, edx
lea ecx, [rdx + 2]
pshufd xmm2, xmm2, 0
lea rax, [rax + 0x20]
movq xmm0, xmm4
movd xmm3, ecx
paddd xmm2, xmm0
pshufd xmm3, xmm3, 0
movq xmm1, xmm5
movq xmm0, xmm6
pslld xmm2, xmm1
movq xmm1, xmm7
add edx, 4
paddd xmm2, xmm0
paddd xmm2, xmm1
movq xmm1, xmm5
movdqu xmm0, xmmword [rax - 0x30]
pmovsxdq xmm2, xmm2
pxor xmm2, xmm0
movq xmm0, xmm4
paddd xmm3, xmm0
movq xmm0, xmm6
movdqu xmmword [rax - 0x30], xmm2
pslld xmm3, xmm1
movq xmm1, xmm7
paddd xmm3, xmm0
paddd xmm3, xmm1
movdqu xmm0, xmmword [rax - 0x20]
pmovsxdq xmm2, xmm3
pxor xmm2, xmm0
movdqu xmmword [rax - 0x20], xmm2
cmp edx, 8
jl 0x180037fd0
jmp 0x180038084
lea rax, [rsp + 0x70]
mov edx, 8
lea rcx, [r12 - 0x1f]
nop dword [rax]
xor qword [rax], rcx
lea rax, [rax + 8]
add rcx, 0x10
sub rdx, 1
jne 0x180038070
xor r10d, r10d
movzx eax, byte [rsp + 0x79]
mov r8, qword [rbp - 0x58]
mov rcx, r8
shr rcx, 0x38
mov rdx, qword [r9 + rcx*8 + 0xa44f0]
xor rdx, qword [r9 + rax*8 + 0xa34f0]
movzx eax, byte [rbp - 0x7e]
mov rcx, qword [rsp + 0x70]
xor rdx, qword [r9 + rax*8 + 0xa4cf0]
movzx eax, byte [rbp - 0x75]
xor rdx, qword [r9 + rax*8 + 0xa3cf0]
movzx eax, byte [rbp - 0x6c]
xor rdx, qword [r9 + rax*8 + 0xa5cf0]
movzx eax, byte [rbp - 0x63]
xor rdx, qword [r9 + rax*8 + 0xa54f0]
movzx eax, cl
shr rcx, 0x38
xor rdx, qword [r9 + rax*8 + 0xa2cf0]
movzx eax, byte [rbp - 0x5a]
xor rdx, qword [r9 + rax*8 + 0xa24f0]
movzx eax, byte [rbp - 0x7f]
mov qword [rsp + 0x20], rdx
mov rdx, qword [r9 + rcx*8 + 0xa44f0]
mov rcx, qword [rsp + 0x78]
xor rdx, qword [r9 + rax*8 + 0xa34f0]
movzx eax, byte [rbp - 0x76]
xor rdx, qword [r9 + rax*8 + 0xa4cf0]
movzx eax, byte [rbp - 0x6d]
xor rdx, qword [r9 + rax*8 + 0xa3cf0]
movzx eax, byte [rbp - 0x64]
xor rdx, qword [r9 + rax*8 + 0xa5cf0]
movzx eax, byte [rbp - 0x5b]
xor rdx, qword [r9 + rax*8 + 0xa54f0]
movzx eax, byte [rbp - 0x52]
xor rdx, qword [r9 + rax*8 + 0xa24f0]
movzx eax, cl
shr rcx, 0x38
xor rdx, qword [r9 + rax*8 + 0xa2cf0]
movzx eax, byte [rbp - 0x77]
mov qword [rsp + 0x28], rdx
mov rdx, qword [r9 + rcx*8 + 0xa44f0]
mov rcx, qword [rbp - 0x80]
xor rdx, qword [r9 + rax*8 + 0xa34f0]
movzx eax, byte [rbp - 0x6e]
xor rdx, qword [r9 + rax*8 + 0xa4cf0]
movzx eax, byte [rbp - 0x65]
xor rdx, qword [r9 + rax*8 + 0xa3cf0]
movzx eax, byte [rbp - 0x5c]
xor rdx, qword [r9 + rax*8 + 0xa5cf0]
movzx eax, byte [rbp - 0x53]
xor rdx, qword [r9 + rax*8 + 0xa54f0]
movzx eax, byte [rsp + 0x76]
xor rdx, qword [r9 + rax*8 + 0xa24f0]
movzx eax, cl
shr rcx, 0x38
xor rdx, qword [r9 + rax*8 + 0xa2cf0]
movzx eax, byte [rbp - 0x6f]
mov qword [rsp + 0x30], rdx
mov rdx, qword [r9 + rcx*8 + 0xa44f0]
mov rcx, qword [rbp - 0x78]
xor rdx, qword [r9 + rax*8 + 0xa34f0]
movzx eax, byte [rbp - 0x66]
xor rdx, qword [r9 + rax*8 + 0xa4cf0]
movzx eax, byte [rbp - 0x5d]
xor rdx, qword [r9 + rax*8 + 0xa3cf0]
movzx eax, byte [rbp - 0x54]
xor rdx, qword [r9 + rax*8 + 0xa5cf0]
movzx eax, byte [rsp + 0x75]
xor rdx, qword [r9 + rax*8 + 0xa54f0]
movzx eax, byte [rsp + 0x7e]
xor rdx, qword [r9 + rax*8 + 0xa24f0]
movzx eax, cl
shr rcx, 0x38
xor rdx, qword [r9 + rax*8 + 0xa2cf0]
movzx eax, byte [rbp - 0x67]
mov qword [rsp + 0x38], rdx
mov rdx, qword [r9 + rcx*8 + 0xa44f0]
xor rdx, qword [r9 + rax*8 + 0xa34f0]
movzx eax, byte [rbp - 0x5e]
xor rdx, qword [r9 + rax*8 + 0xa4cf0]
movzx eax, byte [rbp - 0x55]
xor rdx, qword [r9 + rax*8 + 0xa3cf0]
add r13d, 2
movzx eax, byte [rsp + 0x74]
add r12, 2
mov rcx, qword [rbp - 0x70]
movaps xmm0, xmmword [rsp + 0x20]
movaps xmm1, xmmword [rsp + 0x30]
xor rdx, qword [r9 + rax*8 + 0xa5cf0]
movzx eax, byte [rsp + 0x7d]
xor rdx, qword [r9 + rax*8 + 0xa54f0]
movzx eax, byte [rbp - 0x7a]
xor rdx, qword [r9 + rax*8 + 0xa24f0]
movzx eax, cl
shr rcx, 0x38
xor rdx, qword [r9 + rax*8 + 0xa2cf0]
movzx eax, byte [rbp - 0x5f]
mov qword [rsp + 0x40], rdx
mov rdx, qword [r9 + rcx*8 + 0xa44f0]
mov rcx, qword [rbp - 0x68]
xor rdx, qword [r9 + rax*8 + 0xa34f0]
movzx eax, byte [rbp - 0x56]
xor rdx, qword [r9 + rax*8 + 0xa4cf0]
movzx eax, byte [rsp + 0x73]
xor rdx, qword [r9 + rax*8 + 0xa3cf0]
movzx eax, byte [rsp + 0x7c]
xor rdx, qword [r9 + rax*8 + 0xa5cf0]
movzx eax, byte [rbp - 0x7b]
xor rdx, qword [r9 + rax*8 + 0xa54f0]
movzx eax, byte [rbp - 0x72]
xor rdx, qword [r9 + rax*8 + 0xa24f0]
movzx eax, cl
shr rcx, 0x38
xor rdx, qword [r9 + rax*8 + 0xa2cf0]
movzx eax, byte [rbp - 0x57]
mov qword [rsp + 0x48], rdx
mov rdx, qword [r9 + rcx*8 + 0xa44f0]
mov rcx, qword [rbp - 0x60]
xor rdx, qword [r9 + rax*8 + 0xa34f0]
movzx eax, byte [rsp + 0x72]
xor rdx, qword [r9 + rax*8 + 0xa4cf0]
movzx eax, byte [rsp + 0x7b]
xor rdx, qword [r9 + rax*8 + 0xa3cf0]
movzx eax, byte [rbp - 0x7c]
xor rdx, qword [r9 + rax*8 + 0xa5cf0]
movzx eax, byte [rbp - 0x73]
xor rdx, qword [r9 + rax*8 + 0xa54f0]
movzx eax, byte [rbp - 0x6a]
xor rdx, qword [r9 + rax*8 + 0xa24f0]
movzx eax, cl
shr rcx, 0x38
xor rdx, qword [r9 + rax*8 + 0xa2cf0]
movzx eax, byte [rsp + 0x71]
mov qword [rsp + 0x50], rdx
mov rdx, qword [r9 + rcx*8 + 0xa44f0]
xor rdx, qword [r9 + rax*8 + 0xa34f0]
movzx eax, byte [rsp + 0x7a]
movups xmmword [rsp + 0x70], xmm0
movaps xmm0, xmmword [rsp + 0x40]
xor rdx, qword [r9 + rax*8 + 0xa4cf0]
movzx eax, byte [rbp - 0x7d]
xor rdx, qword [r9 + rax*8 + 0xa3cf0]
movzx eax, byte [rbp - 0x74]
movups xmmword [rbp - 0x80], xmm1
xor rdx, qword [r9 + rax*8 + 0xa5cf0]
movzx eax, byte [rbp - 0x6b]
xor rdx, qword [r9 + rax*8 + 0xa54f0]
movzx eax, byte [rbp - 0x62]
movups xmmword [rbp - 0x70], xmm0
xor rdx, qword [r9 + rax*8 + 0xa24f0]
movzx eax, r8b
lea r8, [0x180000000]
xor rdx, qword [r9 + rax*8 + 0xa2cf0]
mov qword [rsp + 0x58], rdx
movaps xmm1, xmmword [rsp + 0x50]
movups xmmword [rbp - 0x60], xmm1
cmp r13d, 0xa
jl 0x180037a60
mov r13, qword [rsp + 0x60]
mov rax, r10
nop dword [rax]
movdqu xmm0, xmmword [rbp + rax - 0x50]
movdqu xmm1, xmmword [rsp + rax + 0x70]
pxor xmm1, xmm0
movdqu xmmword [rbp + rax - 0x50], xmm1
movdqu xmm0, xmmword [rbp + rax - 0x40]
movdqu xmm1, xmmword [rbp + rax - 0x80]
pxor xmm1, xmm0
movdqu xmmword [rbp + rax - 0x40], xmm1
add rax, 0x20
cmp rax, 0x40
jb 0x180038420
mov rax, qword [rbp - 0x30]
mov qword [rbp - 0x10], rax
mov rax, qword [rbp - 0x28]
mov qword [rbp - 8], rax
mov rax, qword [rbp - 0x20]
movaps xmm0, xmmword [rbp - 0x10]
mov qword [rbp], rax
mov rax, qword [rbp - 0x18]
mov qword [rbp + 8], rax
mov rax, qword [rsp + 0x68]
movaps xmm1, xmmword [rbp]
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm1
mov qword [r13 + 0x40], r10
movabs rax, 0x1000000000000
mov qword [r13 + 0x48], r10
mov qword [r13 + 0x50], r10
mov qword [r13 + 0x58], r10
mov qword [r13 + 0x60], r10
mov qword [r13 + 0x68], r10
mov qword [r13 + 0x70], r10
mov qword [r13 + 0x78], r10
mov qword [r13 + 0x80], rax
mov qword [r13 + 0x88], r10
mov rcx, qword [rbp + 0x40]
xor rcx, rsp
call fcn.1800810a0
lea r11, [rsp + 0x170]
mov rbx, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret