Function at 0x4020e0
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 0x410836
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0xc8
mov eax, dword [0x418040]
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 0x402def
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 0x402de9
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0
push eax
push 0x4111b0
push 1
push 0
push 0x4111c0
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x402de9
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 - 0xa0]
push eax
call edi
mov dword [ebp - 4], 0
lea eax, [ebp - 0x70]
movups xmm0, xmmword [ebp - 0xa0]
push eax
movups xmmword [ebp - 0xb0], xmm0
call edi
movups xmm0, xmmword [ebp - 0x70]
lea eax, [ebp - 0x80]
push eax
movups xmmword [ebp - 0xc0], xmm0
call edi
movups xmm0, xmmword [ebp - 0x80]
lea eax, [ebp - 0x90]
push eax
movups xmmword [ebp - 0xd0], 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 - 0xd0]
movups xmmword [eax], xmm0
mov eax, esp
movups xmm0, xmmword [ebp - 0x90]
push dword [ebp - 0x20]
movups xmmword [eax], xmm0
call esi
mov edi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov esi, eax
lea eax, [ebp - 0x90]
push eax
call edi
lea eax, [ebp - 0x80]
push eax
call edi
lea eax, [ebp - 0x70]
push eax
call edi
lea eax, [ebp - 0xa0]
mov dword [ebp - 4], 0xffffffff
push eax
call edi
mov eax, dword [ebp - 0x20]
test esi, esi
js 0x402de3
mov dword [ebp - 0x1c], 0
mov eax, dword [eax]
push 0xc
mov edi, dword [eax + 0x1c]
call fcn.00403cf8
mov esi, eax
add esp, 4
mov dword [ebp - 0x50], esi
mov dword [ebp - 4], 4
test esi, esi
je 0x4022aa
xorps xmm0, xmm0
movq qword [esi], xmm0
mov dword [esi + 8], 0
push 0x415fbc
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 0x402e0d
jmp 0x4022ac
xor esi, esi
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x50], esi
test esi, esi
je 0x402e0d
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 0x40231f
mov ecx, dword [esi]
test ecx, ecx
je 0x4022fa
push ecx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x402311
push eax
call fcn.00403cf3
add esp, 4
mov dword [esi + 4], 0
push 0xc
push esi
call fcn.00403d28
mov eax, dword [ebp - 0x4c]
add esp, 8
test eax, eax
jns 0x40232b
mov eax, dword [ebp - 0x20]
jmp 0x402de3
cmp byte [0x418911], 0
mov eax, dword [ebp - 0x1c]
movaps xmm6, xmmword [0x4164d0]
mov eax, dword [eax]
mov esi, dword [eax + 0x3c]
mov eax, dword [0x418d30]
je 0x4024a4
xor edx, edx
mov dword [ebp - 0x4c], edx
cmp eax, 2
jl 0x402471
movaps xmm0, xmmword [0x4164f0]
movaps xmm4, xmmword [0x4164a0]
movaps xmm3, xmmword [0x416500]
movaps xmm5, xmmword [0x4164c0]
movaps xmmword [ebp - 0x70], xmm0
mov ecx, dword [ebp - 0x70]
nop dword [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
paddd xmm1, xmm2
psrad xmm1, 5
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._PFZEXM]
xorps xmm2, xmm0
movd xmm0, eax
movd dword [edx + str._PFZEXM], 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
paddd xmm1, xmm2
psrad xmm1, 5
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 + 0x4188f4]
xorps xmm2, xmm0
movd dword [edx + 0x4188f4], xmm2
add edx, 8
cmp edx, 0x20
jl 0x402380
mov dword [ebp - 0x4c], edx
cmp edx, 0x22
jge 0x4024a4
mov eax, 0x8fb823ef
imul edx
add edx, dword [ebp - 0x4c]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x4c]
movsx eax, al
mov cl, dl
imul eax, eax, 0x39
sub cl, al
add cl, 0x31
xor byte [edx + str._PFZEXM], cl
inc edx
mov dword [ebp - 0x4c], edx
cmp edx, 0x22
jl 0x402471
push str._PFZEXM
lea ecx, [ebp - 0x4c]
call fcn.00401010
mov dword [ebp - 4], 6
mov eax, dword [eax]
test eax, eax
je 0x4024c2
mov eax, dword [eax]
jmp 0x4024c4
xor eax, eax
push 0
push eax
push dword [ebp - 0x1c]
call esi
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x4c]
test esi, esi
je 0x40251d
mov eax, edi
lock xadd dword [esi + 8], eax
dec eax
jne 0x40251d
test esi, esi
je 0x40251d
mov eax, dword [esi]
test eax, eax
je 0x4024fb
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x402512
push eax
call fcn.00403cf3
add esp, 4
mov dword [esi + 4], 0
push 0xc
push esi
call fcn.00403d28
add esp, 8
cmp byte [0x418911], 0
jne 0x402694
xor edx, edx
cmp dword [0x418d30], 2
mov dword [ebp - 0x4c], edx
jl 0x402661
movaps xmm0, xmmword [0x4164f0]
movaps xmm4, xmmword [0x4164a0]
movaps xmm3, xmmword [0x416500]
movaps xmm5, xmmword [0x4164c0]
movaps xmm6, xmmword [0x4164d0]
movaps xmmword [ebp - 0x70], xmm0
mov ecx, dword [ebp - 0x70]
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
paddd xmm1, xmm2
psrad xmm1, 5
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._PFZEXM]
xorps xmm2, xmm0
movd xmm0, eax
movd dword [edx + str._PFZEXM], 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
paddd xmm1, xmm2
psrad xmm1, 5
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 + 0x4188f4]
xorps xmm2, xmm0
movd dword [edx + 0x4188f4], xmm2
add edx, 8
cmp edx, 0x20
jl 0x402570
mov dword [ebp - 0x4c], edx
cmp edx, 0x22
jge 0x402694
mov eax, 0x8fb823ef
imul edx
add edx, dword [ebp - 0x4c]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x4c]
movsx eax, al
mov cl, dl
imul eax, eax, 0x39
sub cl, al
add cl, 0x31
xor byte [edx + str._PFZEXM], cl
inc edx
mov dword [ebp - 0x4c], edx
cmp edx, 0x22
jl 0x402661
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 0x4026c1
mov eax, dword [ebp - 0x1c]
jmp 0x402de3
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 0x4026ea
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x18]
jmp 0x402de3
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 0x40270d
mov ecx, dword [ebp - 0x44]
push 1
push ecx
mov eax, dword [ecx]
call dword [eax + 0x48]
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
mov esi, dword [eax + 0x28]
mov al, byte [0x418912]
test al, al
je 0x402725
xor al, 0x31
mov byte [0x418912], al
push 0x418912
lea ecx, [ebp - 0x4c]
call fcn.00401010
mov dword [ebp - 4], 7
mov eax, dword [eax]
test eax, eax
je 0x402743
mov eax, dword [eax]
jmp 0x402745
xor eax, eax
push eax
push dword [ebp - 0x28]
call esi
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x4c]
mov dword [ebp - 0x50], eax
test esi, esi
je 0x4027a0
mov ecx, edi
lock xadd dword [esi + 8], ecx
dec ecx
jne 0x4027a0
test esi, esi
je 0x4027a0
mov eax, dword [esi]
test eax, eax
je 0x40277d
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x402794
push eax
call fcn.00403cf3
add esp, 4
mov dword [esi + 4], 0
push 0xc
push esi
call fcn.00403d28
add esp, 8
nop
mov eax, dword [ebp - 0x28]
mov byte [0x418912], 0
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
cmp dword [ebp - 0x50], 0
jl 0x4026d9
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 0x4026d9
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 0x4026d9
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 0x4026d9
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 0x4026d9
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 0x4026d9
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 0x4026d9
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 0x4026d9
mov ecx, dword [ebp - 0x38]
lea edx, [ebp - 0x2c]
push edx
mov dword [ebp - 0x2c], 0
push 0x4111d0
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 0x4026d9
mov eax, dword [ebp - 0x2c]
push 0xc
mov eax, dword [eax]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0x50], eax
call fcn.00403cf8
mov esi, eax
add esp, 4
mov dword [ebp - 0x54], esi
mov dword [ebp - 4], 8
test esi, esi
je 0x402916
xorps xmm0, xmm0
movq qword [esi], xmm0
mov dword [esi + 8], 0
push 0x415fc0
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 0x402e17
jmp 0x402918
xor esi, esi
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x54], esi
test esi, esi
je 0x402e0d
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 0x402982
mov ecx, dword [esi]
test ecx, ecx
je 0x402960
push ecx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x402977
push eax
call fcn.00403cf3
add esp, 4
mov dword [esi + 4], 0
push 0xc
push esi
call fcn.00403d28
add esp, 8
mov eax, dword [ebp - 0x2c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
cmp dword [ebp - 0x50], 0
jl 0x4026d9
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 0x4026d9
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 0x4026d9
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 0x4026d9
mov eax, dword [ebp - 0x30]
push 0xc
mov eax, dword [eax]
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0x50], eax
call fcn.00403cf8
mov esi, eax
add esp, 4
mov dword [ebp - 0x54], esi
mov dword [ebp - 4], 0xa
test esi, esi
je 0x402a60
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 0x402a62
cmp dword [ebp - 0x58], eax
jne 0x402e21
jmp 0x402a62
xor esi, esi
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x54], esi
test esi, esi
je 0x402e0d
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 0x402acc
mov ecx, dword [esi]
test ecx, ecx
je 0x402aaa
push ecx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x402ac1
push eax
call fcn.00403cf3
add esp, 4
mov dword [esi + 4], 0
push 0xc
push esi
call fcn.00403d28
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 0x4026dc
mov esi, dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [ebp - 0x48], 0
mov eax, dword [eax]
push 0x415fd4
mov eax, dword [eax + 0x44]
mov dword [ebp - 0x50], eax
mov eax, 8
mov word [ebp - 0x90], ax
call esi
mov dword [ebp - 0x88], eax
test eax, eax
je 0x402e2b
mov dword [ebp - 4], 0xc
lea eax, [ebp - 0xa0]
movups xmm0, xmmword [ebp - 0x90]
push eax
movups xmmword [ebp - 0xd0], xmm0
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov byte [ebp - 4], 0xd
mov eax, 8
movups xmm0, xmmword [ebp - 0xa0]
push str.S_1_5_32_544
mov word [ebp - 0x80], ax
movups xmmword [ebp - 0xc0], xmm0
call esi
mov dword [ebp - 0x78], eax
test eax, eax
je 0x402e35
mov byte [ebp - 4], 0xe
cmp byte [0x418911], 0
movups xmm0, xmmword [ebp - 0x80]
mov esi, dword [ebp - 0x18]
movups xmmword [ebp - 0xb0], xmm0
je 0x402ce6
xor edx, edx
cmp dword [0x418d30], 2
mov dword [ebp - 0x4c], edx
jl 0x402cb3
movaps xmm0, xmmword [0x4164f0]
movaps xmm4, xmmword [0x4164a0]
movaps xmm3, xmmword [0x416500]
movaps xmm5, xmmword [0x4164c0]
movaps xmm6, xmmword [0x4164d0]
movaps xmmword [ebp - 0x70], xmm0
mov ecx, dword [ebp - 0x70]
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
paddd xmm1, xmm2
psrad xmm1, 5
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._PFZEXM]
xorps xmm2, xmm0
movd xmm0, eax
movd dword [edx + str._PFZEXM], 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
paddd xmm1, xmm2
psrad xmm1, 5
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 + 0x4188f4]
xorps xmm2, xmm0
movd dword [edx + 0x4188f4], xmm2
add edx, 8
cmp edx, 0x20
jl 0x402bc2
mov dword [ebp - 0x4c], edx
cmp edx, 0x22
jge 0x402ce6
mov eax, 0x8fb823ef
imul edx
add edx, dword [ebp - 0x4c]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x4c]
movsx eax, al
mov cl, dl
imul eax, eax, 0x39
sub cl, al
add cl, 0x31
xor byte [edx + str._PFZEXM], cl
inc edx
mov dword [ebp - 0x4c], edx
cmp edx, 0x22
jl 0x402cb3
push str._PFZEXM
lea ecx, [ebp - 0x58]
call fcn.00401010
mov byte [ebp - 4], 0xf
mov eax, dword [eax]
test eax, eax
je 0x402d01
mov ecx, dword [eax]
jmp 0x402d03
xor ecx, ecx
movups xmm0, xmmword [ebp - 0xd0]
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 - 0x58]
test esi, esi
je 0x402d8f
lock xadd dword [esi + 8], edi
dec edi
jne 0x402d88
test esi, esi
je 0x402d88
mov eax, dword [esi]
test eax, eax
je 0x402d66
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x402d7d
push eax
call fcn.00403cf3
add esp, 4
mov dword [esi + 4], 0
push 0xc
push esi
call fcn.00403d28
add esp, 8
mov dword [ebp - 0x58], 0
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea eax, [ebp - 0x80]
push eax
call esi
lea eax, [ebp - 0xa0]
push eax
call esi
lea eax, [ebp - 0x90]
mov dword [ebp - 4], 0xffffffff
push eax
call esi
mov eax, dword [ebp - 0x1c]
xorps xmm0, xmm0
movups xmmword [str._PFZEXM], xmm0
mov word [0x418910], 0
movups xmmword [0x418900], xmm0
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.00403ce5
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push 0x8007000e
call fcn.00403980
push 0x8007000e
call fcn.00403980
push 0x8007000e
call fcn.00403980
push 0x8007000e
call fcn.00403980
push 0x8007000e
call fcn.00403980
int3