Function at 0x45a140
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4dfbbe
mov eax, dword fs:[0]
push eax
sub esp, 0x44
mov eax, dword [0x532d60]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, edx
mov edi, ecx
mov dword [ebp - 0x44], edi
xor bl, bl
mov dword [ebp - 0x14], 0
lea eax, [ebp - 0x14]
push eax
push 0x52053c
push 1
push 0
push 0x52052c
mov dword [ebp - 4], 0
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jns 0x45a1ca
push eax
push str.EnumScheduledTasks_CoCreateInstance__d
push esi
call fcn.00404fe0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x14]
add esp, 0xc
test eax, eax
je 0x45ab14
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x45ab14
mov eax, dword [ebp - 0x14]
test eax, eax
jne 0x45a1fc
push str.EnumScheduledTasks_pITS_null
push esi
call fcn.00404fe0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x14]
add esp, 8
test eax, eax
je 0x45ab14
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x45ab14
mov dword [ebp - 0x18], 0
lea edx, [ebp - 0x18]
mov byte [ebp - 4], 1
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x14]
mov ecx, eax
test ecx, ecx
js 0x45aae0
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x45aae0
lea edx, [ebp - 0x34]
push edx
lea edx, [ebp - 0x38]
push edx
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0
mov ecx, dword [eax]
push 1
push eax
call dword [ecx + 0xc]
test eax, eax
js 0x45aaa8
mov ebx, dword [sym.imp.ole32.dll_CoTaskMemFree]
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x45aaa8
lea ecx, [ecx]
dec eax
mov dword [ebp - 0x34], eax
mov eax, dword [0x5326d0]
mov ecx, 0x5326d0
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x2c], eax
mov eax, dword [0x5326d0]
mov ecx, 0x5326d0
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x28], eax
mov eax, dword [0x5326d0]
mov ecx, 0x5326d0
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x24], eax
mov eax, dword [0x5326d0]
mov ecx, 0x5326d0
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x34]
mov esi, dword [ecx + eax*4]
test esi, esi
jne 0x45a2c5
xor ecx, ecx
jmp 0x45a2df
mov ecx, esi
lea edx, [ecx + 2]
lea ebx, [ebx]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x45a2d0
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebp - 0x2c]
call fcn.00404a90
mov eax, dword [0x537408]
imul eax, eax
cdq
mov ecx, 0xc
idiv ecx
cmp edx, 3
jne 0x45a31c
push 0
push 0
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateFileW]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
mov dword [ebp - 0x1c], 0
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0x1c]
mov esi, dword [eax]
push ecx
mov ecx, dword [ebp - 0x34]
push 0x52054c
push dword [edx + ecx*4]
push eax
call dword [esi + 0x18]
test eax, eax
js 0x45a535
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x45a535
mov eax, dword [0x537408]
imul eax, eax
cdq
mov esi, 0x12
idiv esi
cmp edx, 0xe
jne 0x45a389
mov edi, 1
mov eax, edi
mov esi, 0x14
dec esi
lea edx, [eax + edi]
lea edi, [eax]
mov eax, edx
jns 0x45a376
mov edi, dword [ebp - 0x44]
mov dword [0x537408], edx
lea edx, [ebp - 0x30]
mov dword [ebp - 0x30], 0
mov eax, dword [ecx]
push edx
push ecx
call dword [eax + 0x84]
test eax, eax
js 0x45a3ce
mov edx, dword [ebp - 0x30]
test edx, edx
je 0x45a3ce
mov ecx, edx
lea esi, [ecx + 2]
lea ecx, [ecx]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x45a3b0
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x24]
call fcn.00404a90
push dword [ebp - 0x30]
call ebx
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 0x3c]
mov dword [ebp - 0x3c], 0
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x8c]
test eax, eax
js 0x45a413
mov edx, dword [ebp - 0x3c]
test edx, edx
je 0x45a413
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x45a3f5
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x20]
call fcn.00404a90
push dword [ebp - 0x3c]
call ebx
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 0x40]
mov dword [ebp - 0x40], 0
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x7c]
test eax, eax
js 0x45a535
cmp dword [ebp - 0x3c], 0
je 0x45a535
mov edx, dword [ebp - 0x40]
test edx, edx
jne 0x45a444
xor ecx, ecx
jmp 0x45a45f
mov ecx, edx
lea esi, [ecx + 2]
lea esp, [esp]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x45a450
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x28]
call fcn.00404a90
push dword [ebp - 0x40]
call ebx
mov eax, dword [ebp - 0x28]
cmp dword [eax - 0xc], 0
jne 0x45a486
push 0x13
push str.NT_AUTHORITYSYSTEM
lea ecx, [ebp - 0x28]
call fcn.00404a90
mov ecx, dword [0x537408]
mov ebx, 5
lea edx, [ecx + 2]
lea eax, [ecx + 1]
imul eax, edx
imul eax, ecx
cdq
idiv ebx
cmp edx, 2
jne 0x45a53b
xor esi, esi
jmp 0x45a4b0
mov edx, esi
and edx, 1
dec edx
not edx
and edx, ecx
mov eax, esi
sar eax, 1
xor edx, eax
mov eax, edx
and eax, 1
dec eax
not eax
and eax, ecx
sar edx, 1
xor eax, edx
mov edx, eax
and edx, 1
dec edx
sar eax, 1
not edx
and edx, ecx
xor edx, eax
mov eax, edx
and eax, 1
dec eax
not eax
and eax, ecx
sar edx, 1
xor eax, edx
mov edx, eax
and edx, 1
dec edx
sar eax, 1
not edx
and edx, ecx
xor edx, eax
mov eax, edx
and eax, 1
dec eax
not eax
and eax, ecx
sar edx, 1
xor eax, edx
mov edx, eax
and edx, 1
dec edx
sar eax, 1
not edx
and edx, ecx
xor edx, eax
mov eax, edx
and eax, 1
dec eax
not eax
and eax, ecx
sar edx, 1
xor eax, edx
inc esi
add ecx, eax
cmp esi, 0x100
jl 0x45a4b0
mov dword [0x537408], ecx
jmp 0x45a53b
mov ecx, dword [0x537408]
mov edx, dword [edi + 4]
lea eax, [ebp - 0x2c]
cmp eax, edx
jae 0x45a79b
mov ebx, dword [edi]
cmp ebx, eax
ja 0x45a79b
mov esi, dword [ebp - 0x44]
mov edi, eax
mov esi, dword [esi + 8]
sub edi, ebx
cmp edx, esi
jne 0x45a5b1
mov eax, esi
sub eax, edx
sar eax, 4
cmp eax, 1
jae 0x45a5b1
sub edx, ebx
sar edx, 4
mov eax, 0xfffffff
sub eax, edx
cmp eax, 1
jb 0x45aad1
sub esi, ebx
sar esi, 4
mov ecx, esi
shr ecx, 1
mov eax, 0xfffffff
sub eax, ecx
inc edx
cmp eax, esi
jae 0x45a59b
xor esi, esi
jmp 0x45a59d
add esi, ecx
mov ecx, dword [ebp - 0x44]
cmp esi, edx
cmovb esi, edx
push esi
call fcn.0045ab40
mov ecx, dword [0x537408]
mov edx, dword [ebp - 0x44]
and edi, 0xfffffff0
mov ebx, dword [edx + 4]
add edi, dword [edx]
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x4c], ebx
mov byte [ebp - 4], 4
test ebx, ebx
je 0x45a9b9
mov esi, dword [edi]
sub esi, 0x10
mov ecx, dword [esi]
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
mov ecx, eax
jl 0x45a5f4
cmp ecx, dword [esi]
jne 0x45a5f4
mov eax, 1
lock xadd dword [edx], eax
jmp 0x45a636
mov eax, dword [ecx]
push 2
push dword [esi + 4]
call dword [eax]
mov edx, eax
mov dword [ebp - 0x30], edx
test edx, edx
je 0x45aadb
mov eax, dword [esi + 4]
mov dword [edx + 4], eax
mov ecx, dword [esi + 4]
lea eax, [ecx*2 + 2]
push eax
lea eax, [esi + 0x10]
push eax
lea eax, [ecx*2 + 2]
push eax
lea eax, [edx + 0x10]
push eax
call fcn.004b8ee1
mov esi, dword [ebp - 0x30]
add esp, 0x10
lea eax, [esi + 0x10]
mov dword [ebx], eax
mov byte [ebp - 4], 5
mov esi, dword [edi + 4]
sub esi, 0x10
mov ecx, dword [esi]
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
mov ecx, eax
jl 0x45a666
cmp ecx, dword [esi]
jne 0x45a666
mov eax, 1
lock xadd dword [edx], eax
jmp 0x45a6a8
mov eax, dword [ecx]
push 2
push dword [esi + 4]
call dword [eax]
mov edx, eax
mov dword [ebp - 0x30], edx
test edx, edx
je 0x45aadb
mov eax, dword [esi + 4]
mov dword [edx + 4], eax
mov ecx, dword [esi + 4]
lea eax, [ecx*2 + 2]
push eax
lea eax, [esi + 0x10]
push eax
lea eax, [ecx*2 + 2]
push eax
lea eax, [edx + 0x10]
push eax
call fcn.004b8ee1
mov esi, dword [ebp - 0x30]
add esp, 0x10
lea eax, [esi + 0x10]
mov dword [ebx + 4], eax
mov byte [ebp - 4], 6
mov esi, dword [edi + 8]
sub esi, 0x10
mov ecx, dword [esi]
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
mov ecx, eax
jl 0x45a6d9
cmp ecx, dword [esi]
jne 0x45a6d9
mov eax, 1
lock xadd dword [edx], eax
jmp 0x45a71b
mov eax, dword [ecx]
push 2
push dword [esi + 4]
call dword [eax]
mov edx, eax
mov dword [ebp - 0x30], edx
test edx, edx
je 0x45aadb
mov eax, dword [esi + 4]
mov dword [edx + 4], eax
mov ecx, dword [esi + 4]
lea eax, [ecx*2 + 2]
push eax
lea eax, [esi + 0x10]
push eax
lea eax, [ecx*2 + 2]
push eax
lea eax, [edx + 0x10]
push eax
call fcn.004b8ee1
mov esi, dword [ebp - 0x30]
add esp, 0x10
lea eax, [esi + 0x10]
mov dword [ebx + 8], eax
mov byte [ebp - 4], 7
mov esi, dword [edi + 0xc]
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi - 4], 0
lea edx, [esi - 4]
mov ecx, eax
jl 0x45a757
cmp ecx, dword [esi - 0x10]
jne 0x45a757
lea edi, [esi - 0x10]
mov eax, 1
lock xadd dword [edx], eax
lea eax, [edi + 0x10]
mov dword [ebx + 0xc], eax
jmp 0x45a9b3
mov eax, dword [ecx]
push 2
push dword [esi - 0xc]
call dword [eax]
mov edi, eax
test edi, edi
je 0x45aadb
mov eax, dword [esi - 0xc]
mov dword [edi + 4], eax
mov ecx, dword [esi - 0xc]
lea eax, [ecx*2 + 2]
push eax
lea eax, [ecx*2 + 2]
push esi
push eax
lea eax, [edi + 0x10]
push eax
call fcn.004b8ee1
lea eax, [edi + 0x10]
add esp, 0x10
mov dword [ebx + 0xc], eax
jmp 0x45a9b3
mov esi, dword [edi + 8]
cmp edx, esi
jne 0x45a7f3
mov eax, esi
sub eax, edx
sar eax, 4
cmp eax, 1
jae 0x45a7f3
mov ecx, dword [edi]
sub edx, ecx
sar edx, 4
mov eax, 0xfffffff
sub eax, edx
cmp eax, 1
jb 0x45aad1
sub esi, ecx
sar esi, 4
mov ecx, esi
shr ecx, 1
mov eax, 0xfffffff
sub eax, ecx
inc edx
cmp eax, esi
jae 0x45a7de
xor esi, esi
jmp 0x45a7e0
add esi, ecx
cmp esi, edx
cmovb esi, edx
push esi
mov ecx, edi
call fcn.0045ab40
mov ecx, dword [0x537408]
mov edi, dword [edi + 4]
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x48], edi
mov byte [ebp - 4], 8
test edi, edi
je 0x45a9b9
mov esi, dword [ebp - 0x2c]
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi - 4], 0
lea edx, [esi - 4]
mov ecx, eax
jl 0x45a831
cmp ecx, dword [esi - 0x10]
jne 0x45a831
lea ebx, [esi - 0x10]
mov eax, 1
lock xadd dword [edx], eax
jmp 0x45a86a
mov eax, dword [ecx]
push 2
push dword [esi - 0xc]
call dword [eax]
mov ebx, eax
test ebx, ebx
je 0x45aadb
mov eax, dword [esi - 0xc]
mov dword [ebx + 4], eax
mov ecx, dword [esi - 0xc]
lea eax, [ecx*2 + 2]
push eax
lea eax, [ecx*2 + 2]
push esi
push eax
lea eax, [ebx + 0x10]
push eax
call fcn.004b8ee1
add esp, 0x10
lea eax, [ebx + 0x10]
mov dword [edi], eax
mov byte [ebp - 4], 9
mov esi, dword [ebp - 0x28]
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi - 4], 0
lea edx, [esi - 4]
mov ecx, eax
jl 0x45a89c
cmp ecx, dword [esi - 0x10]
jne 0x45a89c
lea ebx, [esi - 0x10]
mov eax, 1
lock xadd dword [edx], eax
jmp 0x45a8d5
mov eax, dword [ecx]
push 2
push dword [esi - 0xc]
call dword [eax]
mov ebx, eax
test ebx, ebx
je 0x45aadb
mov eax, dword [esi - 0xc]
mov dword [ebx + 4], eax
mov ecx, dword [esi - 0xc]
lea eax, [ecx*2 + 2]
push eax
lea eax, [ecx*2 + 2]
push esi
push eax
lea eax, [ebx + 0x10]
push eax
call fcn.004b8ee1
add esp, 0x10
lea eax, [ebx + 0x10]
mov dword [edi + 4], eax
mov byte [ebp - 4], 0xa
mov esi, dword [ebp - 0x24]
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi - 4], 0
lea edx, [esi - 4]
mov ecx, eax
jl 0x45a908
cmp ecx, dword [esi - 0x10]
jne 0x45a908
lea ebx, [esi - 0x10]
mov eax, 1
lock xadd dword [edx], eax
jmp 0x45a941
mov eax, dword [ecx]
push 2
push dword [esi - 0xc]
call dword [eax]
mov ebx, eax
test ebx, ebx
je 0x45aadb
mov eax, dword [esi - 0xc]
mov dword [ebx + 4], eax
mov ecx, dword [esi - 0xc]
lea eax, [ecx*2 + 2]
push eax
lea eax, [ecx*2 + 2]
push esi
push eax
lea eax, [ebx + 0x10]
push eax
call fcn.004b8ee1
add esp, 0x10
lea eax, [ebx + 0x10]
mov dword [edi + 8], eax
mov byte [ebp - 4], 0xb
mov esi, dword [ebp - 0x20]
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi - 4], 0
lea edx, [esi - 4]
mov ecx, eax
jl 0x45a974
cmp ecx, dword [esi - 0x10]
jne 0x45a974
lea ebx, [esi - 0x10]
mov eax, 1
lock xadd dword [edx], eax
jmp 0x45a9ad
mov eax, dword [ecx]
push 2
push dword [esi - 0xc]
call dword [eax]
mov ebx, eax
test ebx, ebx
je 0x45aadb
mov eax, dword [esi - 0xc]
mov dword [ebx + 4], eax
mov ecx, dword [esi - 0xc]
lea eax, [ecx*2 + 2]
push eax
lea eax, [ecx*2 + 2]
push esi
push eax
lea eax, [ebx + 0x10]
push eax
call fcn.004b8ee1
add esp, 0x10
lea eax, [ebx + 0x10]
mov dword [edi + 0xc], eax
mov ecx, dword [0x537408]
lea eax, [ecx + 1]
imul eax, ecx
cdq
mov ebx, 0x18
idiv ebx
mov edi, dword [ebp - 0x44]
add dword [edi + 4], 0x10
cmp edx, 0x10
jne 0x45a9e3
test ecx, ecx
mov eax, 1
cmove ecx, eax
mov dword [0x537408], ecx
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x34]
mov ebx, dword [sym.imp.ole32.dll_CoTaskMemFree]
push dword [ecx + eax*4]
call ebx
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x45aa05
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x45aa26
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x45aa43
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x45aa60
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x45aa7d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x34]
test eax, eax
jne 0x45a260
push dword [ebp - 0x38]
call ebx
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x34]
mov ecx, dword [eax]
push edx
lea edx, [ebp - 0x38]
push edx
push 1
push eax
call dword [ecx + 0xc]
test eax, eax
jns 0x45a252
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x18]
mov bl, 1
test eax, eax
je 0x45aabb
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x45ab14
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x45ab14
push str.vector_T__too_long
call fcn.004b78f4
call fcn.0040caf0
push ecx
push str.EnumScheduledTasks_Enum__d
push esi
call fcn.00404fe0
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x18]
add esp, 0xc
test eax, eax
je 0x45ab00
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x45ab14
mov edx, dword [ecx]
push ecx
call dword [edx + 8]
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004b8181
mov esp, ebp
pop ebp
ret