Function at 0x140004178
Capabilities:
Check if file exists
Query or enumerate registry value
Set registry value

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x388
mov ebx, edx
mov rdi, rcx
mov rax, qword [0x14006d038]
xor rax, rsp
mov qword [rsp + 0x380], rax
lea eax, [rbx + rbx]
mov dword [rsp + 0x170], eax
lea r14, [rsp + 0x170]
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], 0
lea rdx, str.CLSID1FD49718_1D00_4B19_AF5F_070AF6D5D54CInProcServer32
mov rcx, 0xffffffff80000000
xor r8d, r8d
mov r9d, 2
call qword [sym.imp.ADVAPI32.dll_RegGetValueW]
test eax, eax
je 0x1400041f1
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
jmp 0x14000425b
mov eax, dword [rsp + 0x170]
mov esi, 0x80070057
cmp rax, 2
jb 0x14000425b
shr rax, 1
cmp rax, 1
je 0x140004256
lea rcx, [rax - 1]
cmp word [rdi + rax*2 - 2], 0x5c
mov rax, rcx
jne 0x140004206
mov eax, ecx
mov word [rdi + rax*2], 0
mov esi, 0x80070057
test ebx, ebx
je 0x14000425b
mov ecx, ebx
lea rax, [rcx - 1]
cmp rax, 0x7ffffffe
ja 0x14000425b
lea r9, [rcx + rcx]
xor edx, edx
cmp word [rdi + rdx], 0
je 0x1400042d4
add rdx, 2
cmp r9, rdx
jne 0x140004240
jmp 0x14000425b
mov esi, 0x80004005
mov ecx, 2
call fcn.140004dc7
test al, al
jne 0x140004288
mov rcx, qword [rsp + 0x380]
xor rcx, rsp
call fcn.14000e2f0
mov eax, esi
add rsp, 0x388
pop rbx
pop rdi
pop rsi
pop r14
ret
lea rdx, str..._.._third_party_ie_to_edge_bho_ie_to_edge_util.cc
lea rdi, [rsp + 0x170]
mov rcx, rdi
mov r8d, 0x1c8
mov r9d, 2
call fcn.140004e20
lea rdx, str.Failed_to_get_registered_stub_path:
mov r8d, 0x24
mov rcx, rdi
call fcn.14003dd30
mov rcx, rax
mov edx, esi
call fcn.1400531c8
mov rcx, rdi
call fcn.1400050aa
jmp 0x140004269
mov word [rdi + rdx], 0x5c
lea rax, [rcx + rcx]
add rax, 0xfffffffffffffffe
cmp rax, rdx
jne 0x1400042f9
add rdi, rdx
mov word [rdi], 0
mov esi, 0x8007007a
jmp 0x14000425b
mov word [rdi + rdx + 2], 0
xor ecx, ecx
cmp word [rdi + rcx], 0
je 0x140004317
add rcx, 2
cmp r9, rcx
jne 0x140004302
jmp 0x14000425b
mov rdx, rcx
neg rdx
xor ebx, ebx
lea r8, [0x140061340]
lea rsi, [rdi + rbx]
movzx eax, word [rbx + r8]
test ax, ax
je 0x140004351
mov word [rsi + rcx], ax
add rdx, 0xfffffffffffffffe
add rbx, 2
mov rax, r9
add rax, rdx
jne 0x140004326
sub rdi, rdx
add rdi, 0xfffffffffffffffe
jmp 0x1400042ea
mov word [rcx + rsi], 0
mov rcx, rdi
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x140004410
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
cmovle ecx, eax
test ecx, ecx
mov esi, 0x8000ffff
cmovs esi, ecx
mov ecx, 2
call fcn.140004dc7
test al, al
je 0x140004269
lea rdx, str..._.._third_party_ie_to_edge_bho_ie_to_edge_util.cc
lea r14, [rsp + 0x170]
mov rcx, r14
mov r8d, 0x1c5
mov r9d, 2
call fcn.140004e20
lea rdx, str.Invalid_registered_stub_path:
mov r8d, 0x1e
mov rcx, r14
call fcn.14003dd30
mov rbx, rax
mov rcx, rdi
call fcn.14000c7a4
mov rcx, rbx
mov rdx, rdi
mov r8, rax
call fcn.14003dd30
lea rdx, [0x140060f90]
mov r8d, 1
mov rcx, rax
call fcn.14003dd30
mov rcx, rax
mov edx, esi
call fcn.1400531c8
mov rcx, r14
jmp 0x1400042cd
movabs rax, 0xaaaaaaaa00000000
lea rcx, [rsp + 0x150]
mov qword [rcx + 8], rax
xor eax, eax
mov qword [rcx], rax
mov qword [rcx + 0x10], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
mov dword [rsp + 0x28], 0x2011f
mov dword [rsp + 0x20], 0
lea r8, str.SoftwareAppDataLowSoftwareMicrosoftEdgeIEToEdge
mov rdx, 0xffffffff80000001
xor r9d, r9d
call fcn.14003e1c2
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
test esi, esi
js 0x14000463a
mov r8d, 0x208
mov rcx, r14
mov dl, 0xaa
call fcn.140010270
lea r9, [rsp + 0x40]
mov dword [r9], 0xaaaaaaaa
lea rax, [rsp + 0x16c]
mov dword [rax], 0x208
mov rcx, qword [rsp + 0x150]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r14
lea rdx, str.LastStubPath
xor r8d, r8d
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1400044fe
mov ecx, dword [rsp + 0x40]
dec ecx
mov eax, 0xd
cmp ecx, 1
ja 0x1400044fe
mov ecx, dword [rsp + 0x16c]
test rcx, rcx
je 0x1400044f2
test cl, 1
jne 0x1400044fe
and ecx, 0xfffffffe
cmp word [rcx + r14 - 2], 0
jne 0x1400044fe
jmp 0x1400044fc
mov word [rsp + 0x170], 0
xor eax, eax
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
cmp esi, 0x80070002
jne 0x140004520
mov word [rsp + 0x170], 0
jmp 0x140004528
test esi, esi
js 0x1400045e7
lea rcx, [rsp + 0x170]
mov rdx, rdi
call fcn.1400237fc
test eax, eax
je 0x14000459a
call fcn.14000d590
test eax, eax
js 0x1400045a1
test rdi, rdi
je 0x140004627
mov rcx, rdi
call fcn.14000c7a4
add eax, eax
add eax, 2
mov rcx, qword [rsp + 0x150]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rdi
lea rdx, str.LastStubPath
xor r8d, r8d
mov r9d, 1
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov esi, eax
test eax, eax
jle 0x140004656
movzx esi, si
or esi, 0x80070000
jmp 0x14000462c
xor esi, esi
jmp 0x14000463a
mov esi, eax
mov ecx, 2
call fcn.140004dc7
test al, al
je 0x14000463a
lea rdx, str..._.._third_party_ie_to_edge_bho_ie_to_edge_util.cc
lea rdi, [rsp + 0x40]
mov rcx, rdi
mov r8d, 0x1e8
mov r9d, 2
call fcn.140004e20
lea rdx, str.Failed_to_refresh_elevation_policy:
mov r8d, 0x24
jmp 0x1400046e4
mov ecx, 2
call fcn.140004dc7
test al, al
je 0x14000463a
lea rdx, str..._.._third_party_ie_to_edge_bho_ie_to_edge_util.cc
lea rdi, [rsp + 0x40]
mov rcx, rdi
mov r8d, 0x1ec
mov r9d, 2
call fcn.140004e20
lea rdx, str.Failed_to_query_last_stub_path:
mov r8d, 0x20
jmp 0x1400046e4
mov esi, 0x8007000d
mov ecx, 2
call fcn.140004dc7
test al, al
jne 0x1400046b7
mov rcx, qword [rsp + 0x150]
test rcx, rcx
je 0x140004269
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x140004269
js 0x14000462c
xor esi, esi
xor ecx, ecx
call fcn.140004dc7
test al, al
je 0x14000463a
lea rdx, str..._.._third_party_ie_to_edge_bho_ie_to_edge_util.cc
lea r14, [rsp + 0x40]
xor esi, esi
mov rcx, r14
mov r8d, 0x1e3
xor r9d, r9d
call fcn.140004e20
lea rdx, str.Updated_last_stub_path_to
mov r8d, 0x1a
mov rcx, r14
call fcn.14003dd30
mov rbx, rax
mov rcx, rdi
call fcn.14000c7a4
mov rcx, rbx
mov rdx, rdi
mov r8, rax
call fcn.14003dd30
mov rcx, r14
jmp 0x1400046f9
lea rdx, str..._.._third_party_ie_to_edge_bho_ie_to_edge_util.cc
lea rdi, [rsp + 0x40]
mov rcx, rdi
mov r8d, 0x1e5
mov r9d, 2
call fcn.140004e20
lea rdx, str.Failed_to_update_last_stub_path:
mov r8d, 0x21
mov rcx, rdi
call fcn.14003dd30
mov rcx, rax
mov edx, esi
call fcn.1400531c8
mov rcx, rdi
call fcn.1400050aa
jmp 0x14000463a