Function at 0x4066d3
Capabilities:
Enumerate processes

Disassembly:
push 0x2e0
mov eax, 0x42a774
call fcn.00428767
mov ebx, dword [ebp + 8]
mov esi, dword [ebp + 0x10]
push 0x433848
mov dword [ebp - 0x2d0], ebx
call dword [sym.imp.KERNEL32.dll_SetDllDirectoryW]
cmp dword [0x43c64c], 0
jne 0x406726
push 4
call fcn.00412080
mov dword [esp], 0x434da2
push 0
mov dword [0x43c64c], eax
call fcn.004194cb
pop ecx
pop ecx
mov ecx, dword [0x43c64c]
mov dword [ecx], eax
and dword [ebp - 0x2c0], 0
mov ecx, str._CF1
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40675a
test dx, dx
je 0x406756
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40675a
add eax, 4
add ecx, 4
test dx, dx
jne 0x406734
xor eax, eax
jmp 0x40675f
sbb eax, eax
or eax, 1
test eax, eax
jne 0x406771
mov ecx, ebx
call fcn.0040624d
mov ebx, eax
jmp 0x406e0f
push str._STOP
push esi
call fcn.00415b19
pop ecx
pop ecx
test eax, eax
jne 0x40693f
lea ecx, [ebp - 0x28]
call fcn.00407333
and dword [ebp - 4], 0
lea eax, [ebp - 0x28]
cmp dword [ebp - 0x14], 7
jbe 0x40679e
mov eax, dword [ebp - 0x28]
push eax
push 0
push 2
call dword [sym.imp.KERNEL32.dll_OpenEventW]
mov esi, eax
test esi, esi
je 0x406928
push esi
call dword [sym.imp.KERNEL32.dll_SetEvent]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor ebx, ebx
xor edi, edi
mov dword [ebp - 0x2b8], ebx
mov dword [ebp - 0x2b4], edi
and dword [ebp - 0x2b0], ebx
mov byte [ebp - 4], 1
push edi
push 2
call dword [sym.imp.KERNEL32.dll_CreateToolhelp32Snapshot]
mov esi, eax
cmp esi, 0xffffffff
je 0x406915
push 0x228
lea eax, [ebp - 0x298]
push edi
push eax
call fcn.00413780
add esp, 0xc
mov dword [ebp - 0x29c], 0x22c
lea eax, [ebp - 0x29c]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_Process32FirstW]
test eax, eax
je 0x4068ce
cmp dword [ebp - 0x294], 0
je 0x4068b2
cmp word [ebp - 0x278], 0
je 0x4068b2
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
cmp dword [ebp - 0x294], eax
je 0x4068b2
lea eax, [ebp - 0x278]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov ebx, eax
test ebx, ebx
je 0x4068b2
push 0x433e70
push ebx
call fcn.00415b19
pop ecx
pop ecx
test eax, eax
je 0x40687e
push str.docsvw64.exe
push ebx
call fcn.00415b19
pop ecx
pop ecx
test eax, eax
jne 0x4068b2
cmp edi, dword [ebp - 0x2b0]
je 0x406899
mov eax, dword [ebp - 0x294]
mov dword [edi], eax
add edi, 4
mov dword [ebp - 0x2b4], edi
jmp 0x4068b2
lea eax, [ebp - 0x294]
push eax
push edi
lea ecx, [ebp - 0x2b8]
call fcn.00406e77
mov edi, dword [ebp - 0x2b4]
lea eax, [ebp - 0x29c]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_Process32NextW]
test eax, eax
jne 0x406824
mov ebx, dword [ebp - 0x2b8]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x406915
push dword [ebx]
push 0
push 0x100000
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov dword [ebp - 0x2c4], eax
test eax, eax
je 0x406912
push 0x1388
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [ebp - 0x2c4]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp esi, 0x102
je 0x406919
add ebx, 4
cmp ebx, edi
jne 0x4068d7
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2b8]
call fcn.00406e40
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.00402dc7
mov ebx, dword [ebp - 0x2c0]
jmp 0x406e0f
push 7
pop ecx
xor eax, eax
lea edi, [ebp - 0x2ec]
rep stosd dword es:[edi], eax
push eax
call dword [sym.imp.ole32.dll_OleInitialize]
test eax, eax
jne 0x406e09
mov ecx, ebx
call fcn.00404241
test al, al
je 0x406e03
mov ecx, ebx
call fcn.0040994a
test al, al
je 0x406df7
push esi
push ebx
lea ecx, [ebp - 0xfc]
call fcn.00407084
mov dword [ebp - 4], 2
cmp dword [ebp - 0xc0], 0
je 0x406dd0
lea ecx, [ebp - 0x28]
call fcn.00407333
mov byte [ebp - 4], 3
lea eax, [ebp - 0x28]
cmp dword [ebp - 0x14], 7
jbe 0x4069b2
mov eax, dword [ebp - 0x28]
push eax
push 0
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventW]
cmp dword [ebp - 0xa4], 7
lea ecx, [ebp - 0xb8]
mov dword [ebp - 0x2c4], eax
jbe 0x4069da
mov ecx, dword [ebp - 0xb8]
mov esi, dword [sym.imp.KERNEL32.dll_OpenEventW]
push ecx
push 0
push 0x100000
call esi
cmp dword [ebp - 0x8c], 7
lea ecx, [ebp - 0xa0]
mov edi, eax
mov dword [ebp - 0x2bc], edi
jbe 0x406a07
mov ecx, dword [ebp - 0xa0]
push ecx
push 0
push 2
call esi
mov esi, eax
mov dword [ebp - 0x2ac], esi
test edi, edi
je 0x406d9d
test esi, esi
je 0x406d9d
xor eax, eax
mov dword [ebp - 0x2c0], eax
cmp byte [ebp - 0xec], al
je 0x406a60
push 0x14
call fcn.00412080
pop ecx
mov dword [ebp - 0x2b0], eax
mov byte [ebp - 4], 4
lea ecx, [ebp - 0xfc]
push ecx
mov ecx, eax
call fcn.00406503
mov dword [ebp - 0x2c0], eax
mov byte [ebp - 4], 3
push 0x5c
call fcn.00412080
pop ecx
mov dword [ebp - 0x2b0], eax
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xfc]
push ecx
mov ecx, eax
call fcn.00403fb7
mov esi, eax
mov byte [ebp - 4], 3
xor ecx, ecx
lea eax, [ebp - 0x88]
cmp dword [ebp - 0x74], 7
mov byte [ebp - 0x29e], cl
mov byte [ebp - 0x29d], cl
mov dword [ebp - 0x2a4], ecx
mov dword [ebp - 0x2a8], ecx
jbe 0x406ab2
mov eax, dword [ebp - 0x88]
push ecx
push 0x80
push 3
push ecx
push 1
push 6
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x2cc], eax
cmp eax, 0xffffffff
je 0x406cea
lea eax, [ebp - 0x2a4]
push eax
push 1
push 0
call dword [sym.imp.ole32.dll_CreateStreamOnHGlobal]
test eax, eax
jne 0x406c39
cmp dword [ebp - 0x2a4], eax
je 0x406c39
mov eax, dword [esi]
lea ecx, [ebp - 0x2a8]
push ecx
push 0x42cb98
push esi
call dword [eax]
test eax, eax
jne 0x406c39
cmp dword [ebp - 0x2a8], eax
je 0x406c39
push 1
push eax
push eax
push dword [ebp - 0x2a8]
push 0x42cb98
push dword [ebp - 0x2a4]
call dword [sym.imp.ole32.dll_CoMarshalInterface]
test eax, eax
jne 0x406c39
push 0x48
push eax
lea eax, [ebp - 0x70]
mov byte [ebp - 0x29e], 1
push eax
call fcn.00413780
mov ecx, dword [ebp - 0x2a4]
add esp, 0xc
xor edx, edx
mov dword [ebp - 0x2c8], edx
mov eax, dword [ecx]
push edx
push edx
push edx
push edx
push ecx
call dword [eax + 0x14]
test eax, eax
jne 0x406c39
mov ecx, dword [ebp - 0x2a4]
lea edx, [ebp - 0x70]
push 1
push edx
push ecx
mov eax, dword [ecx]
call dword [eax + 0x30]
test eax, eax
jne 0x406c39
cmp dword [ebp - 0x64], eax
jne 0x406c39
lea eax, [ebp - 0x2c8]
push eax
push dword [ebp - 0x2a4]
call dword [sym.imp.ole32.dll_GetHGlobalFromStream]
test eax, eax
jne 0x406c39
push dword [ebp - 0x2c8]
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov edi, eax
test edi, edi
je 0x406c33
mov ecx, dword [ebp - 0x68]
push dword [ebp - 0x2ac]
mov dword [ebp - 0x2b0], ecx
call dword [sym.imp.KERNEL32.dll_SetEvent]
push dword [ebp - 0x2ac]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x2cc]
lea edx, [ebp - 0x2b0]
and dword [ebp - 0x2ac], 0
push 4
call fcn.00410b9a
pop ecx
test al, al
je 0x406c27
push dword [ebp - 0x2b0]
mov ecx, dword [ebp - 0x2cc]
mov edx, edi
call fcn.00410b9a
pop ecx
test al, al
je 0x406c27
mov byte [ebp - 0x29d], 1
push dword [ebp - 0x2c8]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov edi, dword [ebp - 0x2bc]
push dword [ebp - 0x2cc]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp byte [ebp - 0x29d], 0
je 0x406cea
mov eax, dword [ebp - 0x2c4]
xor ebx, ebx
test eax, eax
mov dword [ebp - 0x2b4], edi
mov edi, dword [sym.imp.USER32.dll_PeekMessageW]
setne bl
mov byte [ebp - 0x29d], 0
mov dword [ebp - 0x2b0], eax
inc ebx
push 0x4ff
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x2b4]
push eax
push ebx
call dword [sym.imp.USER32.dll_MsgWaitForMultipleObjects]
cmp eax, ebx
jae 0x406cc8
push 0
mov byte [ebp - 0x29d], 1
call dword [sym.imp.USER32.dll_PostQuitMessage]
jmp 0x406cc8
cmp dword [ebp - 0x2e8], 0x12
je 0x406ce4
lea eax, [ebp - 0x2ec]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp - 0x2ec]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
push 1
xor eax, eax
push eax
push eax
push eax
lea eax, [ebp - 0x2ec]
push eax
call edi
test eax, eax
jne 0x406ca5
cmp byte [ebp - 0x29d], al
je 0x406c79
mov ebx, dword [ebp - 0x2d0]
mov ecx, dword [ebp - 0x2a4]
test ecx, ecx
je 0x406d2c
cmp byte [ebp - 0x29e], 0
je 0x406d1f
mov eax, dword [ecx]
xor edx, edx
push edx
push edx
push edx
push edx
push ecx
call dword [eax + 0x14]
test eax, eax
jne 0x406d19
push dword [ebp - 0x2a4]
call dword [sym.imp.ole32.dll_CoReleaseMarshalData]
mov ecx, dword [ebp - 0x2a4]
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
and dword [ebp - 0x2a4], 0
mov ecx, dword [ebp - 0x2a8]
test ecx, ecx
je 0x406d5b
cmp byte [ebp - 0x29e], 0
je 0x406d4e
push 0
push ecx
call dword [sym.imp.ole32.dll_CoDisconnectObject]
mov ecx, dword [ebp - 0x2a8]
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
and dword [ebp - 0x2a8], 0
test esi, esi
je 0x406d7a
mov eax, dword [esi]
push 1
push esi
call dword [eax + 0x18]
mov eax, dword [esi]
push esi
call dword [eax + 8]
test eax, eax
je 0x406d7a
mov eax, dword [esi]
mov ecx, esi
push 1
call dword [eax + 0x60]
mov esi, dword [ebp - 0x2c0]
test esi, esi
je 0x406d91
mov ecx, esi
call fcn.004065b4
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov edi, dword [ebp - 0x2bc]
mov esi, dword [ebp - 0x2ac]
mov eax, dword [ebp - 0x2c4]
test eax, eax
je 0x406dae
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test edi, edi
je 0x406db9
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test esi, esi
je 0x406dc4
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x28]
call fcn.00402dc7
push ebx
push str.dopusviewerplugin.docs.axvw.mproxy
call dword [sym.imp.USER32.dll_UnregisterClassW]
push ebx
push str.dopusviewerplugin.docs.axvw.mthread
call dword [sym.imp.USER32.dll_UnregisterClassW]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xfc]
call fcn.004073fc
push ebx
push str.dopusviewerplugin.docs.axvw.ilproxy
call dword [sym.imp.USER32.dll_UnregisterClassW]
call dword [sym.imp.ole32.dll_OleUninitialize]
mov ebx, dword [ebp - 0x2e4]
mov eax, dword [0x43c64c]
test eax, eax
je 0x406e36
push dword [eax]
call fcn.004198f5
push 4
push dword [0x43c64c]
call fcn.0041206d
add esp, 0xc
and dword [0x43c64c], 0
mov eax, ebx
call fcn.00428725
ret 0x10