Function at 0x140042970
Capabilities:
Register network filter via wfp api

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xf8]
sub rsp, 0x1f8
movaps xmmword [rsp + 0x1e0], xmm6
mov rax, qword [0x1400f0158]
xor rax, rsp
mov qword [rbp + 0xd0], rax
movzx ebx, r9b
mov byte [rsp + 0x21], bl
mov r15d, r8d
mov dword [rsp + 0x50], r8d
mov r14, rdx
mov qword [rbp - 0x60], rdx
mov qword [rbp - 0x58], rcx
mov rax, qword [rbp + 0x160]
mov qword [rbp - 0x78], rax
mov rax, qword [rbp + 0x168]
mov qword [rbp - 0x70], rax
mov r12, qword [rbp + 0x178]
mov r13, qword [rbp + 0x190]
mov qword [rbp - 0x68], r13
xor esi, esi
mov qword [rsp + 0x58], rsi
mov byte [rsp + 0x20], 1
xorps xmm0, xmm0
mov edx, esi
movdqu xmmword [rsp + 0x70], xmm0
mov qword [rsp + 0x48], rdx
mov qword [rbp - 0x80], rdx
test r12, r12
je 0x140042ad2
mov rdi, qword [r12 + 8]
sub rdi, qword [r12]
sar rdi, 3
test rdi, rdi
je 0x140042ad2
movabs rax, 0x1fffffffffffffff
cmp rdi, rax
ja 0x140042ff0
lea rbx, [rdi*8]
cmp rbx, 0x1000
jb 0x140042a7e
lea rcx, [rbx + 0x27]
cmp rcx, rbx
jbe 0x140042ff6
call fcn.140071a00
mov rcx, rax
test rax, rax
je 0x140042fea
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
lea rdx, [rax + rbx]
mov rcx, rax
jmp 0x140042a9e
test rbx, rbx
je 0x140042a94
mov rcx, rbx
call fcn.140071a00
mov rcx, rax
lea rdx, [rax + rbx]
jmp 0x140042a9e
mov rax, rsi
mov rcx, rsi
lea rdx, [rbx + rsi]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rdx
mov rbx, rdx
mov qword [rsp + 0x70], rcx
mov qword [rbp - 0x80], rdx
lea r8, [rdi*8]
xor edx, edx
mov rcx, rax
call fcn.140079be0
mov qword [rsp + 0x78], rbx
movzx ebx, byte [rsp + 0x21]
jmp 0x140042adc
mov rcx, qword [rsp + 0x70]
mov qword [rsp + 0x40], rcx
movups xmm0, xmmword [0x1400c0540]
movups xmmword [rbp + 0xb0], xmm0
movups xmm1, xmmword [0x1400c0520]
movups xmmword [rbp + 0xc0], xmm1
mov ecx, dword [0x1400fa820]
mov rax, qword gs:[0x58]
lea rax, [rax + rcx*8]
mov qword [rbp - 0x50], rax
mov qword [rsp + 0x60], rsi
lea rdi, [rbp + 0xb0]
mov qword [rsp + 0x68], rdi
xor edx, edx
mov r8d, 0xc8
lea rcx, [rbp - 0x20]
call fcn.140079be0
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x28], xmm0
xor esi, esi
mov qword [rsp + 0x38], rsi
mov rax, qword [rbp - 0x78]
movups xmm0, xmmword [rax]
movaps xmmword [rbp + 0x30], xmm0
mov rax, qword [rbp - 0x70]
mov qword [rbp - 0x10], rax
movups xmm0, xmmword [rdi]
movaps xmmword [rbp + 0x20], xmm0
mov dword [rbp + 0x60], r15d
xor eax, eax
cmp byte [rbp + 0x198], al
mov ecx, 1
cmovne eax, ecx
mov dword [rbp], eax
cmp r15d, 0x1001
jne 0x140042b81
or eax, 8
mov dword [rbp], eax
mov dword [rbp + 0x40], ecx
mov byte [rbp + 0x48], bl
test r12, r12
je 0x140042c72
xor r15d, r15d
mov rcx, qword [r12]
mov rax, qword [r12 + 8]
sub rax, rcx
sar rax, 3
test rax, rax
je 0x140042c72
xor edi, edi
mov r13, qword [rsp + 0x40]
mov r14, r13
mov rbx, qword [rsp + 0x30]
nop dword [rax + rax]
movups xmm6, xmmword [0x1400c0580]
movups xmmword [rbp - 0x48], xmm6
mov dword [rbp - 0x38], 0
mov dword [rbp - 0x30], 0x100
lea rax, [rdi*8]
add rax, r13
mov qword [rbp - 0x28], rax
lea rcx, [rcx + rdi*8]
call fcn.14001b780
mov dword [r14], eax
mov rax, qword [r12]
lea rcx, [rax + rdi*8]
call fcn.14001b7a0
mov dword [r14 + 4], eax
cmp rbx, rsi
je 0x140042c2a
movups xmmword [rbx], xmm6
movups xmm0, xmmword [rbp - 0x38]
movups xmmword [rbx + 0x10], xmm0
movsd xmm1, qword [rbp - 0x28]
movsd qword [rbx + 0x20], xmm1
add rbx, 0x28
mov qword [rsp + 0x30], rbx
jmp 0x140042c45
lea r8, [rbp - 0x48]
mov rdx, rbx
lea rcx, [rsp + 0x28]
call fcn.140039940
mov rsi, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
inc r15d
add r14, 8
mov rcx, qword [r12]
mov rax, qword [r12 + 8]
sub rax, rcx
sar rax, 3
movsxd rdi, r15d
cmp rdi, rax
jb 0x140042bc0
mov r13, qword [rbp - 0x68]
mov r14, qword [rbp - 0x60]
jmp 0x140042c77
mov rbx, qword [rsp + 0x30]
mov rax, qword [rbp + 0x170]
test rax, rax
je 0x140042ce0
movups xmm0, xmmword [0x1400c0590]
movups xmmword [rbp - 0x48], xmm0
mov dword [rbp - 0x38], 0
mov dword [rbp - 0x30], 4
mov qword [rbp - 0x28], rax
cmp rbx, rsi
je 0x140042cc5
movups xmmword [rbx], xmm0
movups xmm0, xmmword [rbp - 0x38]
movups xmmword [rbx + 0x10], xmm0
movsd xmm1, qword [rbp - 0x28]
movsd qword [rbx + 0x20], xmm1
add rbx, 0x28
mov qword [rsp + 0x30], rbx
jmp 0x140042ce0
lea r8, [rbp - 0x48]
mov rdx, rbx
lea rcx, [rsp + 0x28]
call fcn.140039940
mov rsi, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
movzx eax, word [rbp + 0x180]
xor r15d, r15d
test ax, ax
je 0x140042d49
movups xmm0, xmmword [0x1400c05b0]
movups xmmword [rbp - 0x48], xmm0
mov dword [rbp - 0x38], r15d
mov dword [rbp - 0x30], 2
mov word [rbp - 0x28], ax
cmp rbx, rsi
je 0x140042d2e
movups xmmword [rbx], xmm0
movups xmm0, xmmword [rbp - 0x38]
movups xmmword [rbx + 0x10], xmm0
movsd xmm1, qword [rbp - 0x28]
movsd qword [rbx + 0x20], xmm1
add rbx, 0x28
mov qword [rsp + 0x30], rbx
jmp 0x140042d49
lea r8, [rbp - 0x48]
mov rdx, rbx
lea rcx, [rsp + 0x28]
call fcn.140039940
mov rsi, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
movzx eax, word [rbp + 0x188]
test ax, ax
je 0x140042daf
movups xmm0, xmmword [0x1400c05c0]
movups xmmword [rbp - 0x48], xmm0
mov dword [rbp - 0x38], r15d
mov dword [rbp - 0x30], 2
mov word [rbp - 0x28], ax
cmp rbx, rsi
je 0x140042d94
movups xmmword [rbx], xmm0
movups xmm0, xmmword [rbp - 0x38]
movups xmmword [rbx + 0x10], xmm0
movsd xmm1, qword [rbp - 0x28]
movsd qword [rbx + 0x20], xmm1
add rbx, 0x28
mov qword [rsp + 0x30], rbx
jmp 0x140042daf
lea r8, [rbp - 0x48]
mov rdx, rbx
lea rcx, [rsp + 0x28]
call fcn.140039940
mov rsi, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
test r13, r13
je 0x140042e45
mov rdi, r15
mov rcx, r13
call fcn.140006020
test rax, rax
je 0x140042e45
nop dword [rax]
movups xmm6, xmmword [0x1400c05d0]
movups xmmword [rbp - 0x48], xmm6
mov dword [rbp - 0x38], r15d
mov dword [rbp - 0x30], ntohl
mov rdx, rdi
mov rcx, r13
call fcn.1400060b0
mov qword [rbp - 0x28], rax
cmp rbx, rsi
je 0x140042e1a
movups xmmword [rbx], xmm6
movups xmm0, xmmword [rbp - 0x38]
movups xmmword [rbx + 0x10], xmm0
movsd xmm1, qword [rbp - 0x28]
movsd qword [rbx + 0x20], xmm1
add rbx, 0x28
mov qword [rsp + 0x30], rbx
jmp 0x140042e35
lea r8, [rbp - 0x48]
mov rdx, rbx
lea rcx, [rsp + 0x28]
call fcn.140039940
mov rsi, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
inc rdi
mov rcx, r13
call fcn.140006020
cmp rdi, rax
jb 0x140042dd0
mov rdi, qword [rsp + 0x28]
mov qword [rbp + 0x58], rdi
sub rbx, rdi
movabs rax, 0x6666666666666667
imul rbx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov dword [rbp + 0x50], edx
lea r9, [rsp + 0x58]
xor r8d, r8d
lea rdx, [rbp - 0x20]
mov rcx, qword [rbp - 0x58]
call sub.fwpuclnt.dll_FwpmFilterAdd0
mov ebx, eax
test eax, eax
je 0x140042ec5
mov ecx, 4
mov rax, qword [rbp - 0x50]
mov rax, qword [rax]
mov ecx, dword [rcx + rax]
cmp dword [0x1400f8b40], ecx
jg 0x140042ffc
mov r8d, ebx
lea rdx, str.Error_adding_filter:__4X
lea rcx, [0x1400f8b08]
call fcn.14001ed30
xor r15b, r15b
mov byte [rsp + 0x20], r15b
jmp 0x140042ecb
movzx r15d, byte [rsp + 0x20]
test r14, r14
je 0x140042ef7
mov rdx, qword [r14 + 8]
cmp rdx, qword [r14 + 0x10]
je 0x140042ee9
mov rax, qword [rsp + 0x58]
mov qword [rdx], rax
add qword [r14 + 8], 8
jmp 0x140042ef7
lea r8, [rsp + 0x58]
mov rcx, r14
call fcn.140012890
nop
test rdi, rdi
je 0x140042f4f
sub rsi, rdi
movabs rax, 0x6666666666666667
imul rsi
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rdx, [rdx + rdx*4]
shl rdx, 3
mov rax, rdi
cmp rdx, 0x1000
jb 0x140042f47
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004303f
mov rcx, rdi
call fcn.140071a3c
mov rbx, qword [rsp + 0x60]
inc rbx
mov qword [rsp + 0x60], rbx
mov rdi, qword [rsp + 0x68]
add rdi, 0x10
mov qword [rsp + 0x68], rdi
cmp rbx, 2
jge 0x140042f7f
movzx ebx, byte [rsp + 0x21]
mov r15d, dword [rsp + 0x50]
jmp 0x140042b20
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x140042fbb
mov rdx, qword [rsp + 0x48]
sub rdx, rcx
and rdx, 0xfffffffffffffff8
mov rax, rcx
cmp rdx, 0x1000
jb 0x140042fb6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140042fea
call fcn.140071a3c
movzx eax, r15b
mov rcx, qword [rbp + 0xd0]
xor rcx, rsp
call fcn.140071b40
movaps xmm6, xmmword [rsp + 0x1e0]
add rsp, 0x1f8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.140085c7c
int3
call fcn.140003e80
int3
call fcn.140003db0
nop
lea rcx, [0x1400f8b40]
call fcn.140071f6c
cmp dword [0x1400f8b40], 0xffffffff
jne 0x140042ea5
lea rcx, [0x1400f8b08]
call fcn.14001dee0
lea rcx, [0x1400b2b50]
call fcn.140071dcc
nop
lea rcx, [0x1400f8b40]
call fcn.140071f0c
jmp 0x140042ea5
call fcn.140085c7c
int3