Function at 0x4084f0
Capabilities:
Create pipe
Create thread
Delete file
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x445813
mov eax, dword fs:[0]
push eax
sub esp, 0xf98
mov eax, dword [0x45e0a4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0x38]
mov dword [ebp - 0xf90], eax
xor edi, edi
mov dword [ebp - 4], 1
cmp dword [ebp + 0x34], 8
lea ecx, [ebp + 0x20]
lea eax, [ebp + 8]
mov dword [ebp - 0xfa0], edi
cmovae ecx, dword [ebp + 0x20]
cmp dword [ebp + 0x1c], 8
push ecx
cmovae eax, dword [ebp + 8]
push eax
push str.DoScan
push str._ws____sWorkingFolder_s__sEngineArgs_s
mov dword [ebp - 0xf94], edi
call fcn.00408340
add esp, 0x10
lea eax, [ebp + 0x20]
lea ecx, [ebp - 0x50]
push eax
call fcn.00402370
push str._vcm_result.txt
lea eax, [ebp + 8]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp - 0x68]
push eax
call fcn.00405b40
mov esi, eax
add esp, 0xc
cmp esi, 0x45e00c
je 0x4085c4
mov ecx, 0x45e00c
call fcn.00403c50
movups xmm0, xmmword [esi]
xor eax, eax
movups xmmword [0x45e00c], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [0x45e01c], xmm0
mov dword [esi + 0x10], edi
mov dword [esi + 0x14], 7
mov word [esi], ax
lea ecx, [ebp - 0x68]
call fcn.00403c50
push str._vcm_progress.txt
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x68]
push eax
call fcn.00405b40
mov esi, eax
add esp, 0xc
cmp esi, 0x45e024
je 0x40861f
mov ecx, 0x45e024
call fcn.00403c50
movups xmm0, xmmword [esi]
xor eax, eax
movups xmmword [0x45e024], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [0x45e034], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
mov word [esi], ax
lea ecx, [ebp - 0x68]
call fcn.00403c50
push 5
xor eax, eax
mov dword [ebp - 0x58], 0
push str.__g__
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x54], 7
mov word [ebp - 0x68], ax
call fcn.00404130
cmp dword [ebp + 0x1c], 8
lea eax, [ebp + 8]
push dword [ebp + 0x18]
cmovae eax, dword [ebp + 8]
lea ecx, [ebp - 0x68]
push eax
mov byte [ebp - 4], 3
call fcn.00403f00
mov dword [ebp - 0x88], 0
xor ecx, ecx
mov dword [ebp - 0x84], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x98], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x88], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
push 1
push 0x449c68
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 4
call fcn.00403f00
mov dword [ebp - 0x70], 0
xor ecx, ecx
mov dword [ebp - 0x6c], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x80], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x70], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
cmp dword [ebp - 0x6c], 8
lea eax, [ebp - 0x80]
push dword [ebp - 0x70]
cmovae eax, dword [ebp - 0x80]
lea ecx, [ebp - 0x50]
push eax
mov byte [ebp - 4], 5
call fcn.00403f00
lea ecx, [ebp - 0x80]
call fcn.00403c50
lea ecx, [ebp - 0x98]
call fcn.00403c50
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 2
call fcn.00403c50
push 0x13
push str.__l_vir_sig_vcm.dat
lea ecx, [ebp - 0x50]
call fcn.00403f00
cmp dword [0x45e020], 8
mov eax, 0x45e00c
push 0
cmovae eax, dword [0x45e00c]
push 0x80
push 2
push 0
push 0
push 0x1f01ff
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0xf98], eax
cmp eax, 0xffffffff
jne 0x40879d
cmp dword [0x45e020], 8
mov eax, 0x45e00c
cmovae eax, dword [0x45e00c]
push eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.failed_to_create_result_log_file__err_d_:__s
call fcn.00408340
add esp, 0xc
mov edi, 1
jmp 0x408c0e
push 0
push 0
lea eax, [ebp - 0xf94]
push eax
lea eax, [ebp - 0xfa0]
push eax
call dword [sym.imp.KERNEL32.dll_CreatePipe]
test eax, eax
jne 0x4087d7
lea edi, [eax + 2]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.failed_to_create_pipe__err_d_
call fcn.00408340
add esp, 8
xor esi, esi
jmp 0x408b49
push 0
push 0
push dword [ebp - 0xfa0]
push 0x4096e0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov esi, eax
mov dword [ebp - 0xf9c], esi
test esi, esi
jne 0x408818
lea edi, [eax + 3]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.failed_to_create_listener_thread__err_d_
call fcn.00408340
add esp, 8
jmp 0x408b49
cmp dword [ebp - 0x40], 0
jne 0x408822
xor ecx, ecx
jmp 0x40882d
cmp dword [ebp - 0x3c], 8
lea ecx, [ebp - 0x50]
cmovae ecx, dword [ebp - 0x50]
push dword [ebp - 0xf94]
cmp dword [0x45f1e4], 8
mov eax, 0x45f1d0
push dword [ebp - 0xf98]
cmovae eax, dword [0x45f1d0]
push 0
push 0
push ecx
push eax
call fcn.004080b0
add esp, 0x18
mov dword [0x45ef84], eax
push dword [ebp - 0xf98]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 0xf94]
mov dword [ebp - 0xf98], 0
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [0x45ef84], 0
mov dword [ebp - 0xf94], 0
je 0x408b1c
mov ecx, 0x45f1a0
call fcn.00405900
cmp dword [ebp - 0x3c], 8
lea eax, [ebp - 0x50]
cmovae eax, dword [ebp - 0x50]
push eax
push str.scan_process_is_created__cmd_s
call fcn.00408340
mov eax, dword [0x45ef84]
xorps xmm0, xmm0
mov ecx, dword [0x45f194]
add esp, 8
mov dword [ebp - 0x38], eax
mov eax, 1
mov dword [ebp - 0x14], 0
mov dword [ebp - 0xfa4], eax
movups xmmword [ebp - 0x34], xmm0
movups xmmword [ebp - 0x24], xmm0
test ecx, ecx
je 0x4088f8
mov eax, 2
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0xfa4], eax
push 0xffffffffffffffff
push 0
lea ecx, [ebp - 0x38]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
mov esi, eax
test esi, esi
je 0x4089aa
cmp esi, 1
jne 0x408abe
push dword [0x45f198]
push 0x18
call sub.utilsdll.dll_get_desired_status
add esp, 8
cmp eax, 3
je 0x4089d7
push str.received_scheduler_event
call fcn.00408340
push 0xef4
lea eax, [ebp - 0xf8c]
push 0
push eax
call fcn.0041ee20
lea eax, [ebp - 0xf8c]
push eax
call sub.utilsdll.dll_cfg_get_logging_info
add esp, 0x14
cmp dword [ebp - 0xf48], 0
jne 0x40896c
push 0
jmp 0x408972
push dword [ebp - 0xef8]
push dword [0x45ef80]
call sub.utilsdll.dll_log_setlevel
add esp, 8
push dword [0x45f194]
call dword [sym.imp.KERNEL32.dll_ResetEvent]
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x38]
push eax
push dword [ebp - 0xfa4]
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
mov esi, eax
test esi, esi
jne 0x408911
mov esi, dword [ebp - 0xf90]
push esi
push dword [0x45ef84]
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
push dword [esi]
push str.scan_process_finished__retcode0x_08lx
call fcn.00408340
mov esi, dword [ebp - 0xf9c]
add esp, 8
jmp 0x408b49
push str.received_stop_signal_from_scheduler
call fcn.00408340
mov eax, dword [0x45ef84]
add esp, 4
test eax, eax
je 0x408aae
push 0x66
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
push 0xbb8
push dword [0x45ef84]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov edi, dword [ebp - 0xf90]
test eax, eax
jne 0x408a4f
push edi
push dword [0x45ef84]
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
push dword [edi]
push str.scan_process_is_killed__retcode0x_08lx
call fcn.00408340
push 0x17908
push 0x45e040
call fcn.00409fb0
push eax
xor eax, eax
cmp dword [0x45f1cc], 1
setne al
add eax, 7
jmp 0x408a9a
mov dword [edi], 0x66
cmp eax, 0x102
jne 0x408a6a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.failed_to_kill_scan_process__err_d
jmp 0x408a76
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.failed_to_access_scan_process__err_d
call fcn.00408340
push 0x17908
push 0x45e040
call fcn.00409fb0
push eax
xor eax, eax
cmp dword [0x45f1cc], 1
setne al
add eax, 5
push eax
push 0x45ef88
push dword [0x45ef80]
call sub.utilsdll.dll_log_VULN_Status
add esp, 0x20
mov esi, dword [ebp - 0xf9c]
mov edi, 0xa
jmp 0x408b49
mov edi, dword [ebp - 0xf90]
mov dword [edi], 0x65
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push esi
push str.WaitForMultipleObjects___failed__ret_d__err_d
call fcn.00408340
push 0x17908
push 0x45e040
call fcn.00409fb0
push eax
xor eax, eax
cmp dword [0x45f1cc], 1
setne al
add eax, 5
push eax
push 0x45ef88
push dword [0x45ef80]
call sub.utilsdll.dll_log_VULN_Status
mov esi, dword [ebp - 0xf9c]
add esp, 0x24
mov edi, 0xb
jmp 0x408b49
cmp dword [0x45f1e4], 8
mov eax, 0x45f1d0
mov edi, 4
cmovae eax, dword [0x45f1d0]
push eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.failed_to_create_scan_process__err_d_:__s
call fcn.00408340
add esp, 0xc
mov eax, dword [0x45ef84]
test eax, eax
je 0x408b74
push 0xbb8
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [0x45ef84]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x45ef84], 0
mov eax, dword [ebp - 0xf98]
test eax, eax
je 0x408b85
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0xf94]
test eax, eax
je 0x408b96
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test esi, esi
je 0x408bd1
push 0xbb8
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x408bbd
mov eax, dword [ebp - 0xfa0]
test eax, eax
je 0x408bbd
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x408bca
push str.ProgressListener_thread_is_not_stopped
call fcn.00408340
add esp, 4
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [0x45e004], 0
jne 0x408c0e
cmp dword [0x45e020], 8
mov eax, 0x45e00c
cmovae eax, dword [0x45e00c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp dword [0x45e038], 8
mov eax, 0x45e024
cmovae eax, dword [0x45e024]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea ecx, [ebp - 0x50]
call fcn.00403c50
lea ecx, [ebp + 8]
call fcn.00403c50
lea ecx, [ebp + 0x20]
call fcn.00403c50
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0041c1e0
mov esp, ebp
pop ebp
ret