Function at 0x180037980
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
push rbp
lea rbp, [rax - 0x5f]
sub rsp, 0xb0
movaps xmmword [rax - 0x18], xmm6
movaps xmmword [rax - 0x28], xmm7
mov rax, qword [0x180068240]
xor rax, rsp
mov qword [rbp + 0x27], rax
mov rbx, rcx
mov qword [rbp - 9], rcx
mov rax, qword [0x1800690c8]
mov rcx, qword [rax + 8]
sub rcx, qword [rax]
sar rcx, 3
cmp rcx, 1
ja 0x180037cec
movups xmm0, xmmword [0x180059c08]
movups xmmword [rbp - 0x29], xmm0
mov eax, dword [0x180059c18]
mov dword [rbp - 0x19], eax
xor ecx, ecx
mov r10d, dword [0x1800682a8]
movdqa xmm5, xmmword [0x18005a5b0]
movdqa xmm4, xmmword [0x18005a5d0]
movdqa xmm6, xmmword [0x18005a5a0]
movdqa xmm3, xmmword [0x18005a5c0]
movdqa xmm7, xmmword [0x180058d20]
cmp byte [0x180059c1b], cl
je 0x180037b6f
mov r8d, ecx
cmp r10d, 2
jl 0x180037b29
movdqa xmmword [rbp - 0x39], xmm4
lea rdx, [rbp - 0x25]
mov r9d, dword [rbp - 0x39]
nop word [rax + rax]
movd xmm2, r8d
pshufd xmm2, xmm2, 0
paddd xmm2, xmm7
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm3
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 1
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
andps xmm2, xmm5
packuswb xmm2, xmm2
packuswb xmm2, xmm2
movd xmm0, r9d
paddb xmm2, xmm0
movd xmm0, dword [rdx - 4]
xorps xmm2, xmm0
movd dword [rdx - 4], xmm2
lea eax, [r8 + 4]
movd xmm2, eax
pshufd xmm2, xmm2, 0
paddd xmm2, xmm7
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm3
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 1
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
andps xmm2, xmm5
packuswb xmm2, xmm2
packuswb xmm2, xmm2
movd xmm0, r9d
paddb xmm2, xmm0
movd xmm0, dword [rdx]
xorps xmm2, xmm0
movd dword [rdx], xmm2
add r8d, 8
lea rdx, [rdx + 8]
cmp r8d, 0x10
jl 0x180037a40
cmp r8d, 0x14
jge 0x180037b6f
movsxd rax, r8d
lea r9, [rbp - 0x29]
add r9, rax
nop dword [rax]
nop word [rax + rax]
mov eax, 0x94f2095
imul r8d
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul edx, eax, 0x37
movzx eax, r8b
sub al, dl
add al, 0x32
xor byte [r9], al
inc r8d
lea r9, [r9 + 1]
cmp r8d, 0x14
jl 0x180037b40
mov eax, dword [0x180059c00]
mov dword [rbp + 0x1f], eax
movzx eax, word [0x180059c04]
movups xmm1, xmmword [0x180059bf0]
movups xmm0, xmmword [0x180059be0]
mov word [rbp + 0x23], ax
movups xmmword [rbp + 0xf], xmm1
movups xmmword [rbp - 1], xmm0
cmp r10d, 2
jl 0x180037c96
movdqa xmmword [rbp - 0x39], xmm4
lea rdx, [rbp + 3]
mov r8d, dword [rbp - 0x39]
movd xmm2, ecx
pshufd xmm2, xmm2, 0
paddd xmm2, xmm7
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm3
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 1
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
andps xmm2, xmm5
packuswb xmm2, xmm2
packuswb xmm2, xmm2
movd xmm0, r8d
paddb xmm2, xmm0
movd xmm0, dword [rdx - 4]
xorps xmm2, xmm0
movd dword [rdx - 4], xmm2
lea eax, [rcx + 4]
movd xmm2, eax
pshufd xmm2, xmm2, 0
paddd xmm2, xmm7
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm3
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 1
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
andps xmm2, xmm5
packuswb xmm2, xmm2
packuswb xmm2, xmm2
movd xmm0, r8d
paddb xmm2, xmm0
movd xmm0, dword [rdx]
xorps xmm2, xmm0
movd dword [rdx], xmm2
add ecx, 8
mov eax, ecx
lea rdx, [rdx + 8]
cmp ecx, 0x20
jl 0x180037bb0
cmp eax, 0x26
jge 0x180037ccb
movsxd rax, ecx
lea r8, [rbp - 1]
add r8, rax
mov eax, 0x94f2095
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul edx, eax, 0x37
movzx eax, cl
sub al, dl
add al, 0x32
xor byte [r8], al
inc ecx
lea r8, [r8 + 1]
cmp ecx, 0x26
jl 0x180037ca0
lea rdx, [rbp - 1]
lea r8, [rbp - 0x29]
xor r9d, r9d
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxA]
nop
mov rcx, rbx
call fcn.18002fee0
jmp 0x18003810f
call fcn.1800304f0
test al, al
jne 0x180038014
movups xmm0, xmmword [0x180059c40]
movups xmmword [rbp - 0x29], xmm0
mov eax, dword [0x180059c50]
mov dword [rbp - 0x19], eax
xor ecx, ecx
mov r10d, dword [0x1800682a8]
movdqa xmm5, xmmword [0x18005a5b0]
movdqa xmm4, xmmword [0x18005a5d0]
movdqa xmm6, xmmword [0x18005a5a0]
movdqa xmm3, xmmword [0x18005a5c0]
movdqa xmm7, xmmword [0x180058d20]
cmp byte [0x180059c53], cl
je 0x180037e9f
mov r8d, ecx
cmp r10d, 2
jl 0x180037e59
movdqa xmmword [rbp - 0x39], xmm4
lea rdx, [rbp - 0x25]
mov r9d, dword [rbp - 0x39]
nop dword [rax]
nop dword [rax + rax]
movd xmm2, r8d
pshufd xmm2, xmm2, 0
paddd xmm2, xmm7
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm3
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 1
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
andps xmm2, xmm5
packuswb xmm2, xmm2
packuswb xmm2, xmm2
movd xmm0, r9d
paddb xmm2, xmm0
movd xmm0, dword [rdx - 4]
xorps xmm2, xmm0
movd dword [rdx - 4], xmm2
lea eax, [r8 + 4]
movd xmm2, eax
pshufd xmm2, xmm2, 0
paddd xmm2, xmm7
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm3
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 1
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
andps xmm2, xmm5
packuswb xmm2, xmm2
packuswb xmm2, xmm2
movd xmm0, r9d
paddb xmm2, xmm0
movd xmm0, dword [rdx]
xorps xmm2, xmm0
movd dword [rdx], xmm2
add r8d, 8
lea rdx, [rdx + 8]
cmp r8d, 0x10
jl 0x180037d70
cmp r8d, 0x14
jge 0x180037e9f
movsxd rax, r8d
lea r9, [rbp - 0x29]
add r9, rax
nop dword [rax]
nop word [rax + rax]
mov eax, 0x94f2095
imul r8d
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul edx, eax, 0x37
movzx eax, r8b
sub al, dl
add al, 0x32
xor byte [r9], al
inc r8d
lea r9, [r9 + 1]
cmp r8d, 0x14
jl 0x180037e70
movups xmm0, xmmword [0x180059c20]
movups xmmword [rbp - 1], xmm0
movsd xmm0, qword [0x180059c30]
movsd qword [rbp + 0xf], xmm0
mov eax, dword [0x180059c38]
mov dword [rbp + 0x17], eax
cmp byte [0x180059c3b], cl
je 0x18003800b
cmp r10d, 2
jl 0x180037fc9
movdqa xmmword [rbp - 0x39], xmm4
lea rdx, [rbp + 3]
mov r8d, dword [rbp - 0x39]
movd xmm2, ecx
pshufd xmm2, xmm2, 0
paddd xmm2, xmm7
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm3
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 1
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
andps xmm2, xmm5
packuswb xmm2, xmm2
packuswb xmm2, xmm2
movd xmm0, r8d
paddb xmm2, xmm0
movd xmm0, dword [rdx - 4]
xorps xmm2, xmm0
movd dword [rdx - 4], xmm2
lea eax, [rcx + 4]
movd xmm2, eax
pshufd xmm2, xmm2, 0
paddd xmm2, xmm7
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm3
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 1
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
andps xmm2, xmm5
packuswb xmm2, xmm2
packuswb xmm2, xmm2
movd xmm0, r8d
paddb xmm2, xmm0
movd xmm0, dword [rdx]
xorps xmm2, xmm0
movd dword [rdx], xmm2
add ecx, 8
mov eax, ecx
lea rdx, [rdx + 8]
cmp ecx, 0x18
jl 0x180037ee3
cmp eax, 0x1c
jge 0x18003800b
movsxd rax, ecx
lea r8, [rbp - 1]
add r8, rax
nop dword [rax]
nop word [rax + rax]
mov eax, 0x94f2095
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul edx, eax, 0x37
movzx eax, cl
sub al, dl
add al, 0x32
xor byte [r8], al
inc ecx
lea r8, [r8 + 1]
cmp ecx, 0x1c
jl 0x180037fe0
lea rdx, [rbp - 1]
jmp 0x180037ccf
mov dword [0x1800690f4], 1
mov rdx, rbx
lea rcx, [rbp - 0x29]
call fcn.18002fc40
mov rdx, rax
lea rcx, [rbp - 1]
call fcn.1800384e0
nop
mov byte [0x1800690d0], 1
lea rdx, [rbp - 1]
cmp qword [rbp + 0x17], 0xf
cmova rdx, qword [rbp - 1]
mov r8, qword [rbp + 0xf]
lea rcx, [0x1800681d8]
call fcn.180031b60
mov rdx, qword [0x1800690e8]
add rdx, 0xd0
lea rcx, [0x1800681f8]
cmp rcx, rdx
je 0x18003808a
mov r8, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0xf
jbe 0x180038084
mov rdx, qword [rdx]
call fcn.180031b60
nop
mov rdx, qword [rbp + 0x17]
cmp rdx, 0xf
jbe 0x1800380c9
inc rdx
mov rcx, qword [rbp - 1]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800380c3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1800380c3
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180050534
nop
mov rdx, qword [rbx + 0x18]
cmp rdx, 0xf
jbe 0x1800380ff
inc rdx
mov rcx, qword [rbx]
cmp rdx, 0x1000
jb 0x1800380fa
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x180038136
mov rcx, r8
call fcn.180050534
xor ecx, ecx
mov qword [rbx + 0x10], rcx
mov qword [rbx + 0x18], 0xf
mov byte [rbx], cl
mov rcx, qword [rbp + 0x27]
xor rcx, rsp
call fcn.180050650
lea r11, [rsp + 0xb0]
mov rbx, qword [r11 + 0x18]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop rbp
ret
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3