Function at 0x140077ea0
Capabilities:
Link many functions at runtime

Disassembly:
push rbp
push r12
push r14
sub rsp, 0x80
mov rax, qword [0x140106010]
xor rax, rsp
mov qword [rsp + 0x68], rax
xor r12d, r12d
lea r8, str.Initialize_async_communications
mov ebp, ecx
mov r14d, r12d
mov ecx, 0x10000
lea edx, [r12 + 1]
call fcn.14007c5f0
call fcn.14007a7c0
test eax, eax
jne 0x140077eea
xor eax, eax
jmp 0x1400787ec
mov qword [rsp + 0xa0], rbx
mov ecx, 0x110
mov qword [rsp + 0xa8], rsi
mov qword [rsp + 0xb0], rdi
mov qword [rsp + 0x78], r13
mov qword [rsp + 0x70], r15
call fcn.14007a860
mov rbx, rax
test rax, rax
je 0x1400787c3
xor edx, edx
mov r8d, 0x110
mov rcx, rax
call fcn.140096c20
lea rcx, str.Kernel32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rsi, rax
test rax, rax
jne 0x140077f67
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
lea r8, str.Unable_to_open_Kernel32.dll_0x_08X
lea edx, [rsi + 5]
lea ecx, [rsi + 1]
call fcn.14007c5f0
jmp 0x14007866d
lea rcx, str.fltlib.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rdi, rax
test rax, rax
jne 0x140077f9c
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
lea r8, str.Unable_to_load_fltlib.dll_0x_08X
lea edx, [rdi + 5]
lea ecx, [rdi + 1]
call fcn.14007c5f0
jmp 0x14007866d
lea rdx, str.FilterConnectCommunicationPort
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.FilterSendMessage
mov rcx, rdi
mov qword [rbx + 8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.FilterGetMessage
mov rcx, rdi
mov qword [rbx + 0x10], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.FilterReplyMessage
mov rcx, rdi
mov qword [rbx + 0x18], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CancelIoEx
mov rcx, rsi
mov qword [rbx + 0x20], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x28], rax
cmp qword [rbx + 8], r12
je 0x140078664
cmp qword [rbx + 0x10], r12
je 0x140078664
cmp qword [rbx + 0x18], r12
je 0x140078664
cmp qword [rbx + 0x20], r12
je 0x140078664
test rax, rax
je 0x140078664
mov qword [rbx], rdi
mov ecx, 0x48
mov dword [rbx + 0x100], ebp
call fcn.14007a860
mov rdi, rax
test rax, rax
jne 0x140078055
mov qword [rbx + 0x40], r12
jmp 0x14007866d
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rdi], xmm0
movups xmmword [rdi + 0x10], xmm0
movups xmmword [rdi + 0x20], xmm0
movups xmmword [rdi + 0x30], xmm0
mov qword [rdi + 0x40], rax
call fcn.14007ba90
mov qword [rdi], rax
test rax, rax
je 0x1400780c3
lea rcx, [0x140078fc0]
mov qword [rax + 0x58], rcx
lea rcx, [0x140079000]
mov rax, qword [rdi]
mov qword [rax + 0x60], rcx
mov rax, qword [rdi]
mov dword [rax + 0x50], 1
mov rsi, qword [rdi]
test rsi, rsi
je 0x1400780c3
mov ecx, 0x400
mov dword [rsi + 0x4c], 0x80
call fcn.14007a860
mov qword [rsi + 0x30], rax
test rax, rax
jne 0x1400780f3
mov dword [rsi + 0x4c], r12d
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400780e2
mov rax, qword [rcx + 0x28]
test rax, rax
je 0x1400780dd
call qword [case.0x14007fe1f.0]
mov rcx, qword [rdi]
call fcn.14007ab90
mov rcx, rdi
call fcn.14007ab90
mov qword [rbx + 0x40], r12
jmp 0x14007866d
xor edx, edx
mov r8d, 0x400
mov rcx, rax
call fcn.140096c20
lea rcx, [rdi + 8]
test rcx, rcx
je 0x140078112
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov qword [rbx + 0x40], rdi
mov dword [rbx + 0x90], 1
call fcn.14007b940
mov qword [rbx + 0x60], rax
test rax, rax
je 0x14007866d
mov edi, r12d
cmp dword [rbx + 0x90], r12d
jbe 0x1400781b1
nop
mov ecx, 0x40068
call fcn.14007a860
mov rcx, rax
test rax, rax
je 0x14007866d
mov qword [rax], r12
mov qword [rax + 8], r12
mov qword [rax + 0x10], r12
mov qword [rax + 0x18], r12
mov dword [rax + 0x20], r12d
mov dword [rax + 0x24], 0x40068
mov qword [rax + 0x28], r12
mov qword [rax + 0x30], 0x40010
mov rdx, qword [rbx + 0x60]
test rdx, rdx
je 0x1400781a7
cmp qword [rdx + 0x38], r12
jne 0x140078191
mov qword [rdx + 0x30], rax
jmp 0x1400781a0
mov rax, qword [rdx + 0x38]
mov qword [rcx + 8], rax
mov rax, qword [rdx + 0x38]
mov qword [rax], rcx
mov qword [rdx + 0x38], rcx
inc dword [rdx + 0x40]
inc edi
cmp edi, dword [rbx + 0x90]
jb 0x140078140
mov ecx, 0x10
call fcn.14007a860
mov r14, rax
test rax, rax
je 0x14007866d
xorps xmm0, xmm0
lea rdi, [rbx + 0x30]
movups xmmword [rax], xmm0
mov byte [rax], 1
mov r8, r14
mov byte [rax + 2], 3
xor edx, edx
mov dword [rax + 4], 0x10
mov byte [rax + 8], 1
mov ecx, dword [rbx + 0x100]
mov dword [rax + 0xc], ecx
lea rcx, str.SophosEndpointDefenseAsyncCommPort
mov byte [rax + 9], 1
xor eax, eax
mov qword [rsp + 0x60], rax
movups xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x28], rdi
lea r9d, [rax + 0x10]
mov dword [rsp + 0x50], 0x18
lea rax, [rsp + 0x50]
mov dword [rsp + 0x60], r12d
mov qword [rsp + 0x20], rax
mov rax, qword [rbx + 8]
call qword [case.0x14007fe1f.0]
test eax, eax
je 0x140078254
mov r9d, eax
lea r8, str.Unable_to_open_async_communications_port___error_0x_08X
mov edx, 5
mov ecx, 0x10000
call fcn.14007c5f0
jmp 0x14007866d
mov rcx, r14
call fcn.14007ab90
mov r9d, dword [rbx + 0x90]
test r9d, r9d
je 0x1400782b2
mov rcx, qword [rdi]
xor r8d, r8d
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateIoCompletionPort]
mov qword [rbx + 0x38], rax
test rax, rax
jne 0x1400782b2
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x140078291
movzx eax, ax
or eax, 0x80070000
mov r9d, eax
lea r8, str.Unable_to_create_I_O_completion_port___error_0x_08X
mov edx, 5
mov ecx, 0x10000
call fcn.14007c5f0
mov r14, r12
jmp 0x14007866d
mov eax, dword [rbx + 0x90]
test eax, eax
je 0x14007841d
lea eax, [rax*8]
mov ecx, eax
mov edi, eax
call fcn.14007a860
mov qword [rbx + 0x98], rax
mov r14, r12
test rax, rax
je 0x14007866d
mov r8d, edi
xor edx, edx
mov rcx, rax
call fcn.140096c20
mov esi, r12d
cmp dword [rbx + 0x90], r12d
jbe 0x14007841d
lea r13, [0x140079df0]
lea rbp, [0x140077ae0]
nop
mov ecx, 0x90
mov qword [rsp + 0x40], rbx
mov dword [rsp + 0x48], esi
call fcn.14007a860
mov rdi, rax
test rax, rax
je 0x1400784c5
mov ecx, 0x18
call fcn.14007a860
mov r14, rax
test rax, rax
je 0x1400784bd
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rdi], xmm0
movups xmmword [rdi + 0x10], xmm0
lea ecx, [rax + 0x10]
movups xmmword [rdi + 0x20], xmm0
movups xmmword [rdi + 0x30], xmm0
movups xmmword [rdi + 0x40], xmm0
movups xmmword [rdi + 0x50], xmm0
movups xmmword [rdi + 0x60], xmm0
movups xmmword [rdi + 0x70], xmm0
movups xmmword [rdi + 0x80], xmm0
movups xmmword [r14], xmm0
mov qword [r14 + 0x10], rax
mov qword [rdi], r12
mov qword [rdi + 8], r12
mov qword [rdi + 0x10], r12
mov qword [rdi + 0x18], r12
mov dword [rdi + 0x20], r12d
mov dword [rdi + 0x24], 0x90
mov qword [rdi + 0x28], r13
mov qword [rdi + 0x38], r14
call fcn.14007a860
mov qword [rdi + 0x40], rax
test rax, rax
je 0x1400784b5
movups xmm0, xmmword [rsp + 0x40]
mov dword [rdi + 0x58], 0x10
xor r9d, r9d
xor r8d, r8d
xor edx, edx
movups xmmword [rax], xmm0
xor ecx, ecx
mov dword [rdi + 0x54], 0x32
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [r14], rax
test rax, rax
je 0x14007849a
lea rcx, [rdi + 0x60]
mov qword [rdi + 0x48], rbp
mov dword [rdi + 0x50], 0x10000
test rcx, rcx
je 0x1400783fb
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov byte [rdi + 0x89], r12b
mov rax, qword [rbx + 0x98]
mov ecx, esi
inc esi
mov qword [rax + rcx*8], rdi
cmp esi, dword [rbx + 0x90]
jb 0x140078310
call fcn.14007b940
mov qword [rbx + 0xa0], rax
mov r14, r12
test rax, rax
je 0x14007866d
call fcn.14007ba90
mov qword [rbx + 0xd0], rax
test rax, rax
je 0x14007866d
lea rcx, [0x140076b70]
mov qword [rax + 0x58], rcx
lea rcx, [0x140076b90]
mov rax, qword [rbx + 0xd0]
mov qword [rax + 0x60], rcx
mov rdi, qword [rbx + 0xd0]
test rdi, rdi
je 0x14007866d
mov ecx, 0x200
mov dword [rdi + 0x4c], 0x40
call fcn.14007a860
mov qword [rdi + 0x30], rax
test rax, rax
jne 0x1400784da
mov dword [rdi + 0x4c], r12d
jmp 0x14007866d
mov rcx, qword [rdi + 0x40]
test rcx, rcx
je 0x1400784a8
call fcn.14007ab90
mov rcx, rdi
call fcn.14007ab90
mov rcx, r14
jmp 0x1400784c0
mov rcx, r14
call fcn.14007ab90
mov rcx, rdi
call fcn.14007ab90
mov rax, qword [rbx + 0x98]
mov r14, r12
mov ecx, esi
mov qword [rax + rcx*8], r12
jmp 0x14007866d
xor edx, edx
mov r8d, 0x200
mov rcx, rax
call fcn.140096c20
mov rax, qword [rbx + 0x40]
test rax, rax
jne 0x140078526
lea rax, str.commandmgmt___NULL
mov edx, 1
mov qword [rsp + 0x28], rax
lea r9, str.C:workspace_sed_srcCommonSgCommandMgmt.c
lea r8, str._s___d_:_Assertion_failure:__s
mov dword [rsp + 0x20], 0x210
mov ecx, 0x80000000
call fcn.14007c5f0
jmp 0x140078535
lea rcx, [0x1400772a0]
mov qword [rax + 0x40], rbx
mov qword [rax + 0x38], rcx
lea rcx, [rbx + 0xa8]
test rcx, rcx
je 0x140078547
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
lea rcx, [rbx + 0xd8]
test rcx, rcx
je 0x140078559
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
lea rcx, [rbx + 0x68]
test rcx, rcx
je 0x140078568
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
cmp dword [rbx + 0x90], r12d
jbe 0x14007865c
lea r8, str.Registering_with_SED_driver...
mov edx, 1
mov ecx, 0x10000
call fcn.14007c5f0
mov ebp, dword [rbx + 0x100]
mov ecx, 0x10
xor sil, sil
call fcn.14007b4e0
mov rdi, rax
test rax, rax
jne 0x1400785bf
lea r8, str.Unable_to_create_a_registration_message
mov ecx, 0x10000
lea edx, [rax + 5]
call fcn.14007c5f0
jmp 0x140078644
add rax, 0x58
mov qword [rdi + 0x38], r12
mov qword [rdi + 0x30], rax
mov rdx, rdi
mov rcx, rbx
mov byte [rax], 1
mov byte [rax + 2], 3
mov rax, qword [rdi + 0x30]
mov byte [rax + 3], 0x32
mov rax, qword [rdi + 0x30]
mov dword [rax + 4], 0x10
mov rax, qword [rdi + 0x30]
mov byte [rax + 8], 1
mov rax, qword [rdi + 0x30]
mov dword [rax + 0xc], ebp
call fcn.140078ee0
test eax, eax
je 0x14007861e
mov r9d, eax
lea r8, str.Unable_to_send_a_registration_message__0x_X_
mov edx, 5
mov ecx, 0x10000
call fcn.14007c5f0
jmp 0x140078621
mov sil, 1
mov rax, qword [rdi + 0x28]
mov rcx, rdi
test rax, rax
je 0x14007863a
call qword [case.0x14007fe1f.0]
cmp al, 1
jne 0x14007863f
mov rcx, rdi
call fcn.14007ab90
test sil, sil
jne 0x14007865c
lea r8, str.Registration_failed
mov edx, 1
mov ecx, 0x10000
call fcn.14007c5f0
jmp 0x14007866d
mov rax, rbx
jmp 0x1400787ca
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rcx, qword [rbx + 0x38]
test rcx, rcx
je 0x140078680
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rbx + 0x38], r12
mov rcx, qword [rbx + 0x30]
test rcx, rcx
je 0x140078693
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rbx + 0x30], r12
mov rcx, qword [rbx + 0x98]
test rcx, rcx
je 0x14007870a
mov edi, r12d
cmp dword [rbx + 0x90], r12d
jbe 0x1400786fe
nop dword [rax + rax]
mov eax, edi
lea rsi, [rax*8]
mov rax, qword [rbx + 0x98]
mov rcx, qword [rsi + rax]
test rcx, rcx
je 0x1400786ed
mov rax, qword [rcx + 0x28]
test rax, rax
je 0x1400786e8
call qword [case.0x14007fe1f.0]
cmp al, 1
jne 0x1400786ed
mov rcx, qword [rbx + 0x98]
mov rcx, qword [rcx + rsi]
call fcn.14007ab90
inc edi
cmp edi, dword [rbx + 0x90]
jb 0x1400786b0
mov rcx, qword [rbx + 0x98]
call fcn.14007ab90
mov qword [rbx + 0x98], r12
mov rcx, qword [rbx + 0xa0]
test rcx, rcx
je 0x140078731
mov rax, qword [rcx + 0x28]
test rax, rax
je 0x14007872c
call qword [case.0x14007fe1f.0]
mov rcx, qword [rbx + 0xa0]
call fcn.14007ab90
mov rcx, qword [rbx + 0xd0]
mov qword [rbx + 0xa0], r12
test rcx, rcx
je 0x14007875f
mov rax, qword [rcx + 0x28]
test rax, rax
je 0x14007875a
call qword [case.0x14007fe1f.0]
mov rcx, qword [rbx + 0xd0]
call fcn.14007ab90
mov rcx, qword [rbx + 0x60]
mov qword [rbx + 0xd0], r12
test rcx, rcx
je 0x140078787
mov rax, qword [rcx + 0x28]
test rax, rax
je 0x140078782
call qword [case.0x14007fe1f.0]
mov rcx, qword [rbx + 0x60]
call fcn.14007ab90
mov qword [rbx + 0x60], r12
test r14, r14
je 0x140078798
mov rcx, r14
call fcn.14007ab90
mov rcx, qword [rbx + 0x40]
test rcx, rcx
je 0x1400787aa
call fcn.1400793d0
mov qword [rbx + 0x40], r12
mov rcx, qword [rbx]
test rcx, rcx
je 0x1400787bb
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov qword [rbx], r12
mov rcx, rbx
call fcn.14007ab90
call fcn.14007a820
xor eax, eax
mov r13, qword [rsp + 0x78]
mov rdi, qword [rsp + 0xb0]
mov rsi, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0xa0]
mov r15, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.140091ba0
add rsp, 0x80
pop r14
pop r12
pop rbp
ret