Function at 0x1400038d0
Capabilities:
Encode data using xor

Disassembly:
mov r11, rsp
mov qword [r11 + 8], rbx
mov qword [r11 + 0x10], rsi
mov qword [r11 + 0x18], rdi
mov qword [r11 + 0x20], r12
push r13
push r14
push r15
sub rsp, 0x130
movaps xmmword [r11 - 0x28], xmm6
movaps xmmword [r11 - 0x38], xmm7
movaps xmmword [r11 - 0x48], xmm8
movaps xmmword [r11 - 0x58], xmm9
movaps xmmword [r11 - 0x68], xmm10
mov rax, qword [0x140030040]
xor rax, rsp
mov qword [rsp + 0xd0], rax
mov r14, r8
mov dword [rsp + 0x70], edx
xorps xmm0, xmm0
movups xmmword [rsp + 0xb8], xmm0
lea r12, [rsp + 0x148]
movabs r15, 0x7a5db90d33787107
mov qword [r11 - 0x88], r15
mov qword [r11 - 0x80], r12
mov r13, qword [r12]
xor r13, r15
mov qword [r11 - 0x90], r13
xor edi, edi
mov qword [r12], rdi
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitialize]
mov r9d, eax
mov esi, dword [0x140030010]
movdqa xmm8, xmmword [0x14002c530]
movdqa xmm6, xmmword [0x14002c5e0]
movdqa xmm9, xmmword [0x14002c560]
movdqa xmm7, xmmword [0x14002c5f0]
movdqa xmm10, xmmword [0x14002c5b0]
test eax, eax
je 0x140003b3a
movups xmm0, xmmword [0x140028aa8]
movups xmmword [rsp + 0x38], xmm0
movups xmm1, xmmword [0x140028ab8]
movups xmmword [rsp + 0x48], xmm1
movsd xmm0, qword [0x140028ac8]
movsd qword [rsp + 0x58], xmm0
mov eax, dword [0x140028ad0]
mov dword [rsp + 0x60], eax
mov ecx, edi
cmp esi, 2
jl 0x140003aea
movdqa xmmword [rsp + 0x80], xmm7
lea rdx, [rsp + 0x3c]
mov r8d, dword [rsp + 0x80]
nop dword [rax]
nop word [rax + rax]
movd xmm2, ecx
pshufd xmm2, xmm2, 0
paddd xmm2, xmm8
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm6
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm6
shufps xmm1, xmm0, 0xdd
psrad xmm1, 1
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm9
psubd xmm2, xmm0
andps xmm2, xmm10
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, xmm8
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm6
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm6
shufps xmm1, xmm0, 0xdd
psrad xmm1, 1
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm9
psubd xmm2, xmm0
andps xmm2, xmm10
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
lea rdx, [rdx + 8]
cmp ecx, 0x28
jl 0x140003a00
cmp ecx, 0x2c
jge 0x140003b2d
movsxd rax, ecx
lea r8, [rsp + 0x38]
add r8, rax
nop word [rax + rax]
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dl
shl al, 3
add dl, al
movzx eax, cl
sub al, dl
add al, 0x43
xor byte [r8], al
inc ecx
lea r8, [r8 + 1]
cmp ecx, 0x2c
jl 0x140003b00
mov edx, r9d
lea rcx, [rsp + 0x38]
call fcn.140001010
mov qword [rsp + 0xa0], rdi
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x20], rax
lea r9, [0x140028520]
xor edx, edx
mov r8d, 0x404
lea rcx, [0x140028530]
call qword [sym.imp.ole32.dll_CoCreateInstance]
mov ebx, eax
mov dword [rsp + 0x30], eax
test eax, eax
js 0x140004207
mov rcx, qword [rsp + 0xa0]
mov rax, qword [rcx]
lea r8, [rsp + 0xa8]
xor edx, edx
call qword [rax + 0x18]
mov dword [rsp + 0xb0], edi
mov ebx, 0x80070002
mov dword [rsp + 0x30], ebx
nop dword [rax]
nop word [rax + rax]
mov qword [rsp + 0x90], rdi
mov rcx, qword [rsp + 0xa8]
mov rax, qword [rcx]
lea r9, [rsp + 0xb0]
lea r8, [rsp + 0x98]
mov edx, 1
call qword [rax + 0x18]
mov edi, eax
test eax, eax
js 0x1400041f3
mov eax, dword [rsp + 0xb0]
cmp eax, 1
jne 0x1400041e6
mov rcx, qword [rsp + 0x98]
mov rax, qword [rcx]
lea rdx, [rsp + 0x90]
call qword [rax + 0x38]
mov edi, eax
test eax, eax
jne 0x140004005
cmp dword [rsp + 0x70], eax
je 0x140003def
mov rax, qword [rsp + 0x90]
mov r9, qword [rax + 0x18]
mov rax, r9
mov r8, r14
sub r8, r9
movzx edx, word [rax]
movzx ecx, word [rax + r8]
sub edx, ecx
jne 0x140003c48
add rax, 2
test ecx, ecx
jne 0x140003c34
test edx, edx
jne 0x140003def
movups xmm0, xmmword [0x140028a60]
movups xmmword [rsp + 0x38], xmm0
movsd xmm0, qword [0x140028a70]
movsd qword [rsp + 0x48], xmm0
mov eax, dword [0x140028a78]
mov dword [rsp + 0x50], eax
movzx eax, byte [0x140028a7c]
mov byte [rsp + 0x54], al
xor ecx, ecx
cmp esi, 2
jl 0x140003d8a
movdqa xmmword [rsp + 0x80], xmm7
lea rdx, [rsp + 0x3c]
mov r8d, dword [rsp + 0x80]
movd xmm2, ecx
pshufd xmm2, xmm2, 0
paddd xmm2, xmm8
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm6
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm6
shufps xmm1, xmm0, 0xdd
psrad xmm1, 1
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm9
psubd xmm2, xmm0
andps xmm2, xmm10
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, xmm8
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm6
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm6
shufps xmm1, xmm0, 0xdd
psrad xmm1, 1
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm9
psubd xmm2, xmm0
andps xmm2, xmm10
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
lea rdx, [rdx + 8]
cmp ecx, 0x18
jl 0x140003ca0
cmp ecx, 0x1d
jge 0x140003dcd
movsxd rax, ecx
lea r8, [rsp + 0x38]
add r8, rax
nop word [rax + rax]
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dl
shl al, 3
add dl, al
movzx eax, cl
sub al, dl
add al, 0x43
xor byte [r8], al
inc ecx
lea r8, [r8 + 1]
cmp ecx, 0x1d
jl 0x140003da0
mov rdx, r9
lea rcx, [rsp + 0x38]
call fcn.140001010
mov rcx, qword [rsp + 0x98]
mov rax, qword [rcx]
call qword [rax + 0x18]
mov ebx, eax
jmp 0x140003fca
mov rax, qword [rsp + 0x90]
mov r9, qword [rax + 0x18]
mov rax, r9
mov r8, r14
sub r8, r9
movzx edx, word [rax]
movzx ecx, word [rax + r8]
sub edx, ecx
jne 0x140003e18
add rax, 2
test ecx, ecx
jne 0x140003e04
test edx, edx
jne 0x140003fce
movups xmm0, xmmword [0x140028ad8]
movups xmmword [rsp + 0x38], xmm0
movsd xmm0, qword [0x140028ae8]
movsd qword [rsp + 0x48], xmm0
mov eax, dword [0x140028af0]
mov dword [rsp + 0x50], eax
movzx eax, word [0x140028af4]
mov word [rsp + 0x54], ax
cmp byte [0x140028af5], dl
je 0x140003fad
xor ecx, ecx
cmp esi, 2
jl 0x140003f6a
movdqa xmmword [rsp + 0x80], xmm7
lea rdx, [rsp + 0x3c]
mov r8d, dword [rsp + 0x80]
nop dword [rax]
movd xmm2, ecx
pshufd xmm2, xmm2, 0
paddd xmm2, xmm8
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm6
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm6
shufps xmm1, xmm0, 0xdd
psrad xmm1, 1
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm9
psubd xmm2, xmm0
andps xmm2, xmm10
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, xmm8
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm6
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm6
shufps xmm1, xmm0, 0xdd
psrad xmm1, 1
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm9
psubd xmm2, xmm0
andps xmm2, xmm10
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
lea rdx, [rdx + 8]
cmp ecx, 0x18
jl 0x140003e80
cmp ecx, 0x1e
jge 0x140003fad
movsxd rax, ecx
lea r8, [rsp + 0x38]
add r8, rax
nop word [rax + rax]
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dl
shl al, 3
add dl, al
movzx eax, cl
sub al, dl
add al, 0x43
xor byte [r8], al
inc ecx
lea r8, [r8 + 1]
cmp ecx, 0x1e
jl 0x140003f80
mov rdx, r9
lea rcx, [rsp + 0x38]
call fcn.140001010
mov rcx, qword [rsp + 0x98]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov ebx, eax
mov dword [rsp + 0x30], eax
mov rcx, qword [rsp + 0x90]
mov rcx, qword [rcx + 0x10]
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov rcx, qword [rsp + 0x90]
mov rcx, qword [rcx + 0x18]
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov rcx, qword [rsp + 0x90]
call qword [sym.imp.ole32.dll_CoTaskMemFree]
jmp 0x1400041b9
test ebx, ebx
jns 0x1400041b9
cmp ebx, 0x800704d5
je 0x1400041b9
movups xmm0, xmmword [0x1400288c8]
movups xmmword [rsp + 0x38], xmm0
movups xmm1, xmmword [0x1400288d8]
movups xmmword [rsp + 0x48], xmm1
movups xmm0, xmmword [0x1400288e8]
movups xmmword [rsp + 0x58], xmm0
mov eax, dword [0x1400288f8]
mov dword [rsp + 0x68], eax
movzx eax, word [0x1400288fc]
mov word [rsp + 0x6c], ax
xor ecx, ecx
cmp esi, 2
jl 0x14000416a
movdqa xmmword [rsp + 0x80], xmm7
lea rdx, [rsp + 0x3c]
mov r8d, dword [rsp + 0x80]
nop dword [rax]
nop dword [rax + rax]
movd xmm2, ecx
pshufd xmm2, xmm2, 0
paddd xmm2, xmm8
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm6
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm6
shufps xmm1, xmm0, 0xdd
psrad xmm1, 1
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm9
psubd xmm2, xmm0
andps xmm2, xmm10
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, xmm8
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm6
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm6
shufps xmm1, xmm0, 0xdd
psrad xmm1, 1
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm9
psubd xmm2, xmm0
andps xmm2, xmm10
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
lea rdx, [rdx + 8]
cmp ecx, 0x30
jl 0x140004080
cmp ecx, 0x36
jge 0x1400041ad
movsxd rax, ecx
lea r8, [rsp + 0x38]
add r8, rax
nop word [rax + rax]
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dl
shl al, 3
add dl, al
movzx eax, cl
sub al, dl
add al, 0x43
xor byte [r8], al
inc ecx
lea r8, [r8 + 1]
cmp ecx, 0x36
jl 0x140004180
mov edx, ebx
lea rcx, [rsp + 0x38]
call fcn.140001010
mov rcx, qword [rsp + 0x98]
test rcx, rcx
je 0x1400041d8
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [rsp + 0x98], 0
test edi, edi
js 0x1400041f3
mov eax, dword [rsp + 0xb0]
cmp eax, 1
mov edi, 0
je 0x140003bb0
jmp 0x1400041f9
mov ebx, edi
mov dword [rsp + 0x30], ebx
mov rcx, qword [rsp + 0xa8]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0xa0]
test rcx, rcx
je 0x14000421a
mov rax, qword [rcx]
call qword [rax + 0x10]
call qword [sym.imp.ole32.dll_CoUninitialize]
nop
jmp 0x14000423f
xor r15, r13
mov qword [r12], r15
mov eax, ebx
mov rcx, qword [rsp + 0xd0]
xor rcx, rsp
call fcn.140026270
lea r11, [rsp + 0x130]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov r12, qword [r11 + 0x38]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
mov rsp, r11
pop r15
pop r14
pop r13
ret