joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1601593ac
Capabilities:
Check if file exists

Disassembly:
mov rax, rsp
push rbp
push rsi
push rdi
lea rbp, [rax - 0x28]
sub rsp, 0x110
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov rax, qword [0x160270bd8]
xor rax, rsp
mov qword [rbp], rax
mov rdi, rdx
mov rbx, rcx
lea rax, [rsp + 0x60]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], 0x41
xor esi, esi
mov word [rsp + 0x60], si
lea rax, fcn.160040970
mov qword [rsp + 0x48], rax
lea rax, [0x1601bc328]
mov qword [rsp + 0x40], rax
mov dword [rbp - 0x18], esi
mov qword [rbp - 0x10], rsi
mov r8d, 0x20019
lea rdx, [rsp + 0x40]
call fcn.16015909c
mov dword [rsp + 0x28], esi
lea r8, [rsp + 0x28]
lea rdx, str.SuppressHandlerReindex
lea rcx, [rsp + 0x40]
call fcn.16005a9b0
test eax, eax
je 0x16015944e
cmp dword [rsp + 0x28], esi
mov al, sil
ja 0x160159450
mov al, 1
mov byte [rbx + 0x130], al
mov dword [rsp + 0x20], esi
lea r9, [rsp + 0x20]
xor r8d, r8d
lea rdx, str.Handlers
lea rcx, [rsp + 0x40]
call fcn.1600c9dc4
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
cmp eax, 2
je 0x16015953a
test eax, eax
jle 0x16015948e
movzx eax, ax
or eax, 0x80070000
mov rcx, qword [rbp + 0x28]
test eax, eax
jns 0x1601594ab
mov r9d, eax
lea r8, str.onecoreuap_base_appmodel_search_search_searchgather_serverhandlerlist.cxx
mov edx, 0x35d
call fcn.1600b47d4
int3
mov ecx, dword [rsp + 0x20]
mov rax, qword [0x1601c0fd8]
call qword [case.0x16003fc5a.0]
mov rbx, rax
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x20]
mov r8, rax
lea rdx, str.Handlers
lea rcx, [rsp + 0x40]
call fcn.1600c9dc4
test eax, eax
jne 0x160159510
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
test eax, eax
jle 0x1601594f3
movzx eax, ax
or eax, 0x80070000
mov rcx, qword [rbp + 0x28]
test eax, eax
jns 0x160159510
mov r9d, eax
lea r8, str.onecoreuap_base_appmodel_search_search_searchgather_serverhandlerlist.cxx
mov edx, 0x362
call fcn.1600b47d4
int3
mov r9d, dword [rsp + 0x20]
mov r8, rbx
mov rdx, rdi
call fcn.160158c94
mov rdx, qword [rdi + 8]
lea rcx, str.SearchHandlerList___Read_persisted_handler_list:__d_items
call fcn.16001a1d8
nop
mov rcx, rbx
call fcn.160031c48
nop
lea rcx, [rsp + 0x40]
call fcn.16005ab2c
mov rcx, qword [rbp]
xor rcx, rsp
call fcn.16006e590
mov rbx, qword [rsp + 0x140]
add rsp, 0x110
pop rdi
pop rsi
pop rbp
ret
Function at 0x16015a124
Capabilities:
Set registry value

Disassembly:
mov rax, rsp
push rbp
push rsi
push rdi
lea rbp, [rax - 0x38]
sub rsp, 0x120
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov rax, qword [0x160270bd8]
xor rax, rsp
mov qword [rbp + 0x10], rax
mov rbx, rdx
lea rax, [rsp + 0x70]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 0x41
xor esi, esi
mov word [rsp + 0x70], si
lea rax, fcn.160040970
mov qword [rsp + 0x58], rax
lea rax, [0x1601bc328]
mov qword [rsp + 0x50], rax
mov dword [rbp - 8], esi
mov qword [rbp], rsi
mov r8d, 0x20006
lea rdx, [rsp + 0x50]
call fcn.16015909c
mov qword [rsp + 0x38], rsi
mov dword [rsp + 0x30], esi
lea r9, [rsp + 0x30]
lea r8, [rsp + 0x38]
mov rdx, rbx
call fcn.160159fbc
mov rdi, qword [rsp + 0x38]
mov rcx, qword [rbp]
test rcx, rcx
jne 0x16015a1d2
lea ecx, [rsi + 6]
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_SetLastError]
mov ebx, esi
jmp 0x16015a20a
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rdi
mov r9d, 3
xor r8d, r8d
lea rdx, str.Handlers
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegSetValueExW]
test eax, eax
je 0x16015a1fd
mov ecx, eax
jmp 0x16015a1c8
xor ecx, ecx
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_SetLastError]
mov ebx, 1
mov rcx, rdi
call qword [sym.imp.msvcrt.dll_free]
test ebx, ebx
jne 0x16015a246
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
test eax, eax
jle 0x16015a229
movzx eax, ax
or eax, 0x80070000
mov rcx, qword [rbp + 0x38]
test eax, eax
jns 0x16015a246
mov r9d, eax
lea r8, str.onecoreuap_base_appmodel_search_search_searchgather_serverhandlerlist.cxx
mov edx, 0x377
call fcn.1600b47d4
nop
lea rcx, [rsp + 0x50]
call fcn.16005ab2c
mov rcx, qword [rbp + 0x10]
xor rcx, rsp
call fcn.16006e590
mov rbx, qword [rsp + 0x150]
add rsp, 0x120
pop rdi
pop rsi
pop rbp
ret
Function at 0x16016b828
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x30
lea rcx, [rsp + 0x40]
call fcn.16016b5d0
mov ebx, eax
test eax, eax
js 0x16016b8a2
cmp byte [rsp + 0x40], 0
je 0x16016b8a2
lea rax, [rsp + 0x40]
xor r9d, r9d
mov qword [rsp + 0x28], rax
lea r8, [0x16016b8b0]
and dword [rsp + 0x20], 0
xor edx, edx
xor ecx, ecx
call qword [sym.imp.api_ms_win_core_processthreads_l1_1_0.dll_CreateThread]
mov rdi, rax
test rax, rax
je 0x16016b88d
mov edx, 0x493e0
mov rcx, rax
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_WaitForSingleObject]
mov rcx, rdi
call qword [sym.imp.api_ms_win_core_handle_l1_1_0.dll_CloseHandle]
jmp 0x16016b8a2
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ebx, eax
test eax, eax
jle 0x16016b8a2
movzx ebx, ax
or ebx, 0x80070000
mov eax, ebx
mov rbx, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
ret
Function at 0x16016c58c
Capabilities:
Create thread

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r14
sub rsp, 0x9c0
mov qword [rsp + 0x38], 0xfffffffffffffffe
mov rax, qword [0x160270bd8]
xor rax, rsp
mov qword [rsp + 0x9b0], rax
mov ebp, r9d
mov rsi, r8
mov r10, rdx
mov r14, qword [rsp + 0xa10]
xor edi, edi
test rcx, rcx
je 0x16016c662
mov rdx, rcx
lea rcx, [rsp + 0x40]
call fcn.1600c0044
nop
lea rbx, [0x1601d4934]
mov rdx, rbx
test r10, r10
cmovne rdx, r10
mov rax, qword [rsp + 0x48]
or r9d, 0xffffffff
xor r8d, r8d
lea rcx, [rsp + 0x48]
mov rax, qword [rax + 0x20]
call qword [case.0x16003fc5a.0]
test rsi, rsi
cmovne rbx, rsi
mov rax, qword [rsp + 0xe8]
or r9d, 0xffffffff
xor r8d, r8d
mov rdx, rbx
lea rcx, [rsp + 0xe8]
mov rax, qword [rax + 0x20]
call qword [case.0x16003fc5a.0]
mov edx, ebp
lea rcx, [rsp + 0x40]
call fcn.1600cd1d8
xor r9d, r9d
mov r8, r14
mov edx, 0x40001b82
lea rcx, [rsp + 0x40]
call fcn.1600c1b70
nop
lea rcx, [rsp + 0x40]
call fcn.1600c0898
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], edi
xor r9d, r9d
lea r8, [0x160153430]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.api_ms_win_core_processthreads_l1_1_0.dll_CreateThread]
test rax, rax
je 0x16016c694
mov rcx, rax
call qword [sym.imp.api_ms_win_core_handle_l1_1_0.dll_CloseHandle]
jmp 0x16016c6ab
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
test eax, eax
jg 0x16016c6a2
mov edi, eax
jmp 0x16016c6ab
movzx edi, ax
or edi, 0x80070000
mov eax, edi
mov rcx, qword [rsp + 0x9b0]
xor rcx, rsp
call fcn.16006e590
add rsp, 0x9c0
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret

Function at 0x16016d994
Capabilities:
Create thread

Disassembly:
push rbx
sub rsp, 0x30
xor eax, eax
mov rbx, rcx
cmp dword [rcx + 0x90], eax
jne 0x16016da4a
mov rcx, rbx
call fcn.1600bec84
cmp qword [rbx + 0x10], 0
jne 0x16016da3e
and dword [rbx + 0x28], 0
lea rax, [rbx + 0x30]
mov qword [rsp + 0x28], rax
lea r8, [0x16016cc40]
and dword [rsp + 0x20], 0
mov r9, rbx
xor edx, edx
xor ecx, ecx
call qword [sym.imp.api_ms_win_core_processthreads_l1_1_0.dll_CreateThread]
mov qword [rbx + 0x10], rax
test rax, rax
jne 0x16016da01
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
test eax, eax
jle 0x16016da05
movzx eax, ax
or eax, 0x80070000
jmp 0x16016da03
xor eax, eax
test eax, eax
jns 0x16016da40
mov rax, qword [rbx + 0x88]
cmp dword [rax + 0x484], 0
jne 0x16016da37
mov rax, qword [0x160273d18]
cmp dword [rax + 0xfa4], 0
jne 0x16016da37
mov ecx, 0x64
call qword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_Sleep]
jmp 0x16016d9ab
mov eax, 0x80040d23
jmp 0x16016da4a
xor eax, eax
mov dword [rbx + 0x90], 1
add rsp, 0x30
pop rbx
ret
Function at 0x160181164
Capabilities:
Get hostname

Disassembly:
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x30
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x50], rbx
mov rdi, rcx
xor ecx, ecx
lea rax, [rdi + 8]
mov qword [rax], rax
mov qword [rdi], rax
mov qword [rdi + 0x10], rdi
mov dword [rdi + 0x18], ecx
lea rbx, [rdi + 0x20]
lea rax, [rbx + 0x18]
mov qword [rbx + 8], rax
mov qword [rbx + 0x10], 0x21
mov word [rax], cx
lea rax, fcn.16003df60
mov qword [rbx], rax
lea edx, [rcx + 0x10]
mov dword [rsp + 0x48], edx
mov rcx, rbx
call fcn.160034ad4
mov rcx, rax
lea rdx, [rsp + 0x48]
call qword [sym.imp.api_ms_win_core_kernel32_legacy_l1_1_0.dll_GetComputerNameW]
neg eax
sbb edx, edx
and edx, dword [rsp + 0x48]
mov dword [rsp + 0x48], edx
mov rcx, rbx
call fcn.160034aac
nop
mov rax, rdi
mov rbx, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
Function at 0x1601988d8
Capabilities:
Set registry value

Disassembly:
sub rsp, 0x38
mov rax, qword [r8]
mov rcx, qword [rcx + 0xb0]
mov rdx, qword [rdx + 8]
mov dword [rsp + 0x40], eax
shr rax, 0x20
mov dword [rsp + 0x44], eax
test rcx, rcx
jne 0x160198902
mov ecx, 6
jmp 0x160198929
lea rax, [rsp + 0x40]
mov dword [rsp + 0x28], 8
mov r9d, 3
mov qword [rsp + 0x20], rax
xor r8d, r8d
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegSetValueExW]
test eax, eax
je 0x160198943
mov ecx, eax
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_SetLastError]
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
test eax, eax
jle 0x16019894d
movzx eax, ax
or eax, 0x80070000
jmp 0x16019894d
xor ecx, ecx
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_SetLastError]
xor eax, eax
add rsp, 0x38
ret
Function at 0x16019a2ac
Capabilities:
Check mutex on windows

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov eax, dword [rcx + 8]
mov rdi, rcx
neg eax
sbb ebx, ebx
and ebx, 0x80004005
cmp dword [rcx + 8], 0
jne 0x16019a30c
lea r8, str.LocalWindowsSearchService_EfsRegKeysMutex
xor edx, edx
mov ecx, 0x100000
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_OpenMutexW]
test rax, rax
je 0x16019a2f4
mov rdx, rax
mov rcx, rdi
call fcn.1600b36cc
xor ebx, ebx
jmp 0x16019a30c
mov rcx, qword [rsp + 0x28]
lea r8, str.internal_sdkincwil_resultmacros.h
mov edx, 0x1621
call fcn.1600b29e0
mov ebx, eax
test ebx, ebx
js 0x16019a348
mov rcx, qword [rdi]
mov edx, 0x7530
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_WaitForSingleObject]
test eax, eax
je 0x16019a341
cmp eax, 0x80
je 0x16019a341
cmp eax, 0x102
jne 0x16019a348
xor edx, edx
mov rcx, rdi
call fcn.1600b36cc
mov ebx, 0x80004005
jmp 0x16019a348
mov dword [rdi + 8], 1
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
Function at 0x16019ae48
Capabilities:
Set registry value

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r14
push r15
lea rbp, [rsp - 0x2f]
sub rsp, 0xa8
mov rdi, rcx
xor r14d, r14d
lea rcx, [rbp - 0x29]
mov qword [rbp - 0x29], r14
mov dword [rbp - 0x21], r14d
call fcn.16019a2ac
mov ebx, eax
mov r15d, 0x80070000
test eax, eax
js 0x16019ae9c
call fcn.1600cf8a0
cmp eax, 2
cmove eax, r14d
test eax, eax
je 0x16019ae9c
jg 0x16019ae96
mov ebx, eax
jmp 0x16019ae9c
movzx ebx, ax
or ebx, r15d
mov qword [rbp + 0x77], r14
test ebx, ebx
js 0x16019aee3
xor edx, edx
lea rcx, [rbp + 0x77]
call fcn.16005e8e8
lea rax, [rbp + 0x67]
mov qword [rsp + 0x40], rax
lea rax, [rbp + 0x77]
mov qword [rsp + 0x38], rax
call fcn.1600cf7f0
mov ebx, eax
test eax, eax
je 0x16019aed8
jle 0x16019aed4
movzx ebx, ax
or ebx, r15d
test ebx, ebx
js 0x16019aee3
mov rcx, qword [rbp + 0x77]
call fcn.16019ab28
mov ebx, eax
lea rdx, [rdi + 0x18]
lea rcx, [rbp - 1]
call fcn.1600c0000
jmp 0x16019afff
lea rcx, [rbp - 1]
call fcn.1600c0ae0
test eax, eax
je 0x16019b007
mov rax, qword [rbp + 0x17]
test rax, rax
je 0x16019af15
mov rdi, qword [rax + 8]
jmp 0x16019af18
mov rdi, r14
lea rsi, [rdi + 0x30]
mov ecx, r14d
mov rax, qword [rsi]
test rax, rax
je 0x16019afff
mov rax, qword [rax]
inc ecx
test rax, rax
jne 0x16019af2b
test ecx, ecx
je 0x16019afff
xor edx, edx
mov qword [rbp + 0x7f], r14
lea rcx, [rbp + 0x7f]
call fcn.16005e8e8
mov rdx, qword [rdi + 0x28]
lea rax, [rbp + 0x6f]
mov rcx, qword [rbp + 0x77]
xor r9d, r9d
mov qword [rsp + 0x40], rax
xor r8d, r8d
lea rax, [rbp + 0x7f]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], 0x20006
mov dword [rsp + 0x20], r14d
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegCreateKeyExW]
test eax, eax
je 0x16019af94
jg 0x16019af8e
mov ebx, eax
jmp 0x16019af94
movzx ebx, ax
or ebx, r15d
xorps xmm0, xmm0
mov qword [rbp - 0x19], rsi
movdqu xmmword [rbp - 0x11], xmm0
jmp 0x16019afe3
test rax, rax
je 0x16019aff0
mov rdx, qword [rax + 0x18]
lea rcx, [rbp + 0x67]
mov dword [rsp + 0x28], 4
mov r9d, SafeArrayDestroy
mov qword [rsp + 0x20], rcx
xor r8d, r8d
mov rcx, qword [rbp + 0x7f]
mov dword [rbp + 0x67], r14d
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegSetValueExW]
test eax, eax
je 0x16019afe3
jg 0x16019afdd
mov ebx, eax
jmp 0x16019afe3
movzx ebx, ax
or ebx, r15d
lea rcx, [rbp - 0x19]
call fcn.1600b3e0c
test ebx, ebx
jns 0x16019afa2
mov rcx, qword [rbp + 0x7f]
test rcx, rcx
je 0x16019afff
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegCloseKey]
test ebx, ebx
jns 0x16019aef5
lea rcx, [rbp - 0x29]
call fcn.16019ae18
test ebx, ebx
js 0x16019b019
test eax, eax
cmovs ebx, eax
mov rcx, qword [rbp + 0x77]
test rcx, rcx
je 0x16019b028
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegCloseKey]
mov rcx, qword [rbp - 0x29]
test rcx, rcx
je 0x16019b036
call fcn.1600b0b00
mov eax, ebx
add rsp, 0xa8
pop r15
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret
Function at 0x16019b38c
Capabilities:
Get disk information

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x260
mov rax, qword [0x160270bd8]
xor rax, rsp
mov qword [rsp + 0x250], rax
mov rsi, r8
mov r12, rcx
mov rcx, rsi
xor edx, edx
mov r8d, 0xd0
call sub.msvcrt.dll_memset
lea rcx, [rsp + 0x30]
call fcn.16019b4bc
mov ebx, eax
mov ebp, reloc.OLEAUT32.dll_SafeArrayCopy
test eax, eax
js 0x16019b474
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_GetLogicalDrives]
mov r15d, eax
xor edi, edi
cmp edi, ebp
jae 0x16019b470
bt r15d, edi
jae 0x16019b46a
movabs rax, 0x5c003a0020
lea r14d, [rdi + 0x41]
mov qword [rsp + 0x38], rax
lea rcx, [rsp + 0x38]
mov word [rsp + 0x38], r14w
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_GetDriveTypeW]
cmp eax, 3
jne 0x16019b46a
movzx edx, word [rsp + 0x30]
lea r9, [rsp + 0x40]
mov r8, r12
movzx ecx, r14w
call fcn.16019b548
mov ebx, eax
test eax, eax
js 0x16019b46a
lea rcx, [rsp + 0x40]
call fcn.16019b29c
mov ebx, eax
cmp eax, 1
jne 0x16019b455
xor ebx, ebx
jmp 0x16019b46a
test eax, eax
js 0x16019b46a
lea rdx, [rsi + rdi*8]
lea rcx, [rsp + 0x40]
call qword [sym.imp.api_ms_win_shcore_obsolete_l1_1_0.dll_SHStrDupW]
mov ebx, eax
inc edi
test ebx, ebx
jns 0x16019b3f1
test ebx, ebx
jns 0x16019b48b
mov rcx, qword [rsi]
call qword [sym.imp.api_ms_win_core_com_l1_1_0.dll_CoTaskMemFree]
and qword [rsi], 0
lea rsi, [rsi + 8]
sub rbp, 1
jne 0x16019b474
mov eax, ebx
mov rcx, qword [rsp + 0x250]
xor rcx, rsp
call fcn.16006e590
lea r11, [rsp + 0x260]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret

Function at 0x16019b4bc
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x250
mov rax, qword [0x160270bd8]
xor rax, rsp
mov qword [rsp + 0x240], rax
mov rdi, rcx
xor edx, edx
lea rcx, [rsp + 0x30]
mov r8d, 0x208
call sub.msvcrt.dll_memset
mov r9d, 1
lea rax, [rsp + 0x30]
xor r8d, r8d
mov qword [rsp + 0x20], rax
xor ecx, ecx
lea edx, [r9 + 0x23]
call qword [sym.imp.ext_ms_win_shell32_shellfolders_l1_1_0.dll_SHGetFolderPathW]
mov ebx, eax
test eax, eax
js 0x16019b523
movzx ecx, word [rsp + 0x30]
call qword [sym.imp.msvcrt.dll_towupper]
mov word [rdi], ax
mov eax, ebx
mov rcx, qword [rsp + 0x240]
xor rcx, rsp
call fcn.16006e590
mov rbx, qword [rsp + 0x268]
add rsp, 0x250
pop rdi
ret
Function at 0x16019b548
Capabilities:
Get disk information

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r14
sub rsp, 0x250
mov rax, qword [0x160270bd8]
xor rax, rsp
mov qword [rsp + 0x240], rax
mov rsi, r9
mov rbp, r8
movzx ebx, dx
xor edi, edi
call qword [sym.imp.msvcrt.dll_towupper]
movzx ecx, bx
movzx r14d, ax
call qword [sym.imp.msvcrt.dll_towupper]
cmp r14w, ax
jne 0x16019b5a1
mov r8, rbp
mov edx, 0x104
mov rcx, rsi
call fcn.1600b2fdc
jmp 0x16019b62c
movabs rax, 0x5c003a0020
lea rdx, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x20]
mov r8d, 0x104
mov word [rsp + 0x20], r14w
call qword [sym.imp.api_ms_win_core_file_l1_2_0.dll_GetVolumeNameForVolumeMountPointW]
test eax, eax
jne 0x16019b5e9
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov edi, eax
test eax, eax
jle 0x16019b5e5
movzx edi, ax
or edi, 0x80070000
test edi, edi
js 0x16019b62e
mov edx, 0x7b
lea rcx, [rsp + 0x30]
call qword [sym.imp.msvcrt.dll_wcschr]
mov rbx, rax
mov eax, 0x8000ffff
test rbx, rbx
cmove edi, eax
test edi, edi
js 0x16019b62e
mov r8, rbp
mov edx, 0x104
mov rcx, rsi
call fcn.1600b2fdc
mov edi, eax
test eax, eax
js 0x16019b62e
mov r8, rbx
mov rcx, rsi
call fcn.16019b6b4
mov edi, eax
mov eax, edi
mov rcx, qword [rsp + 0x240]
xor rcx, rsp
call fcn.16006e590
add rsp, 0x250
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret

Function at 0x16019e978
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x18], rbx
push rdi
sub rsp, 0x50
mov rax, qword [0x160270bd8]
xor rax, rsp
mov qword [rsp + 0x48], rax
xor edi, edi
lea r9, [rsp + 0x30]
mov rbx, rdx
mov qword [rsp + 0x20], rdi
lea r8d, [rdi + 0x4e]
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_ReadFile]
test eax, eax
jne 0x16019e9b7
call fcn.160069078
test eax, eax
js 0x16019e9c9
lea rdx, [rsp + 0x38]
mov word [rbx + 0x4c], di
mov rcx, rbx
call qword [sym.imp.api_ms_win_core_com_l1_1_0.dll_CLSIDFromString]
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.16006e590
mov rbx, qword [rsp + 0x70]
add rsp, 0x50
pop rdi
ret
Function at 0x1601a686c
Capabilities:
Set registry value

Disassembly:
push rbx
sub rsp, 0x1e0
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov rax, qword [0x160270bd8]
xor rax, rsp
mov qword [rsp + 0x1d0], rax
mov rbx, rcx
xor edx, edx
mov r8d, 0xf003f
lea rcx, [rsp + 0x110]
call fcn.16005a5e4
nop
mov r8d, 0xf003f
mov rdx, rbx
lea rcx, [rsp + 0x50]
call fcn.16005a5e4
xor ebx, ebx
mov qword [rsp + 0x38], rbx
mov dword [rsp + 0x30], 8
lea r9, [rsp + 0x30]
lea r8, [rsp + 0x38]
lea rdx, str.SchemaCacheTimestamp
lea rcx, [rsp + 0x110]
call fcn.1600c9dc4
test eax, eax
jne 0x1601a68f2
lea edx, [rbx + 0x39]
jmp 0x1601a693f
mov rcx, qword [rsp + 0x100]
test rcx, rcx
jne 0x1601a6906
mov ecx, 6
jmp 0x1601a6934
mov dword [rsp + 0x28], 8
lea rax, [rsp + 0x38]
mov qword [rsp + 0x20], rax
mov r9d, 3
xor r8d, r8d
lea rdx, str.SchemaCacheTimestamp
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegSetValueExW]
test eax, eax
je 0x1601a6957
mov ecx, eax
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_SetLastError]
mov edx, 0x3b
lea r8, str.onecoreuap_base_appmodel_search_searchcommonpropertyschemainspectionpropertyschemainspection.cpp
mov rcx, qword [rsp + 0x1e8]
call fcn.1600b29e0
mov ebx, eax
jmp 0x1601a695f
xor ecx, ecx
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_SetLastError]
lea rcx, [rsp + 0x50]
call fcn.16005ab2c
nop
lea rcx, [rsp + 0x110]
call fcn.16005ab2c
mov eax, ebx
mov rcx, qword [rsp + 0x1d0]
xor rcx, rsp
call fcn.16006e590
add rsp, 0x1e0
pop rbx
ret

Function at 0x1601a78b4
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov ecx, dword [0x160270d20]
cmp ecx, 0xffffffff
jne 0x1601a78cd
xor eax, eax
jmp 0x1601a791d
call qword [sym.imp.api_ms_win_core_processthreads_l1_1_0.dll_TlsGetValue]
mov rdi, rax
test rax, rax
jne 0x1601a78e9
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
test eax, eax
je 0x1601a78e9
mov bl, 1
jmp 0x1601a78eb
xor bl, bl
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
test eax, eax
jle 0x1601a78fd
movzx eax, ax
or eax, 0x80070000
test bl, bl
je 0x1601a791a
mov rcx, qword [rsp + 0x28]
lea r8, str.onecoreuap_base_appmodel_searchcommonincludeperusercatalogresethelper.h
mov r9d, eax
mov edx, 0x45
call fcn.160071f6c
mov rax, rdi
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
Function at 0x1601b1cf4
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x30
lea rdi, [rcx + 0x30]
mov rbx, rcx
mov rdx, qword [rdi]
lea rax, [rdx - 1]
cmp rax, 0xfffffffffffffffd
jbe 0x1601b1d59
and dword [rcx + 0xd0], 0
mov rcx, qword [rcx + 0x38]
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_ResetEvent]
lea rax, [rbx + 0xd4]
mov r9, rbx
mov qword [rsp + 0x28], rax
lea r8, [0x1601b22e0]
xor edx, edx
mov dword [rsp + 0x20], 4
xor ecx, ecx
call qword [sym.imp.api_ms_win_core_processthreads_l1_1_0.dll_CreateThread]
mov rdx, rax
mov rcx, rdi
call fcn.1600161cc
mov rdx, qword [rdi]
lea rax, [rdx + 1]
test rax, 0xfffffffffffffffe
jne 0x1601b1d85
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov rcx, qword [rsp + 0x38]
lea r8, str.onecoreuap_base_appmodel_search_search_searchgatherusnmonnotifierusnnotifier.cxx
mov r9d, eax
mov edx, 0x416
call fcn.1600b47d4
int3
mov rbx, qword [rsp + 0x40]
add rsp, 0x30
pop rdi
ret
Function at 0x1601b9284
Capabilities:
Query service status
Start service

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x50
mov rax, qword [0x160270bd8]
xor rax, rsp
mov qword [rsp + 0x40], rax
xor esi, esi
xor edx, edx
xor ecx, ecx
lea r8d, [rsi + 1]
call qword [sym.imp.api_ms_win_service_management_l1_1_0.dll_OpenSCManagerW]
mov rbp, rax
test rax, rax
jne 0x1601b92cc
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ebx, eax
jmp 0x1601b9372
mov r8d, reloc.OLEAUT32.dll_SafeArrayLock
lea rdx, str.AppInfo
mov rcx, rbp
call qword [sym.imp.api_ms_win_service_management_l1_1_0.dll_OpenServiceW]
mov rdi, rax
test rax, rax
jne 0x1601b92f4
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ebx, eax
jmp 0x1601b9369
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call qword [sym.imp.api_ms_win_service_management_l1_1_0.dll_StartServiceW]
test eax, eax
jne 0x1601b9315
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ebx, eax
cmp eax, 0x420
jne 0x1601b9360
mov ebx, 0x5b4
lea rdx, [rsp + 0x20]
mov rcx, rdi
call qword [sym.imp.api_ms_win_service_winsvc_l1_1_0.dll_QueryServiceStatus]
test eax, eax
je 0x1601b9358
cmp dword [rsp + 0x24], 4
je 0x1601b9354
cmp dword [rsp + 0x24], 1
je 0x1601b934e
mov ecx, 0x1f4
call qword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_Sleep]
inc esi
cmp esi, 0xa
jbe 0x1601b931a
jmp 0x1601b9360
mov ebx, dword [rsp + 0x2c]
jmp 0x1601b9360
xor ebx, ebx
jmp 0x1601b9360
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ebx, eax
mov rcx, rdi
call qword [sym.imp.api_ms_win_service_management_l1_1_0.dll_CloseServiceHandle]
mov rcx, rbp
call qword [sym.imp.api_ms_win_service_management_l1_1_0.dll_CloseServiceHandle]
mov eax, ebx
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.16006e590
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
add rsp, 0x50
pop rdi
ret

Function at 0x1601b9e0c
Capabilities:
Query or enumerate registry key

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x50
cmp qword [rcx], 0
mov rdi, rdx
mov rbx, rcx
mov dword [rsp + 0x40], 0x104
jne 0x1601b9e63
and dword [rcx + 8], 0
xor edx, edx
call fcn.16005e8e8
mov r9d, 9
mov qword [rsp + 0x20], rbx
lea rdx, str.SOFTWAREMicrosoftWindows_SearchCatalogListApplications
mov rcx, 0xffffffff80000002
call fcn.16005ab8c
test eax, eax
jle 0x1601b9e61
movzx eax, ax
or eax, 0x80070000
test eax, eax
js 0x1601b9eb2
and qword [rsp + 0x38], 0
lea r9, [rsp + 0x40]
and qword [rsp + 0x30], 0
mov r8, rdi
and qword [rsp + 0x28], 0
mov edx, dword [rbx + 8]
mov rcx, qword [rbx]
and qword [rsp + 0x20], 0
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegEnumKeyExW]
cmp eax, 0x103
jne 0x1601b9e9d
mov eax, 1
jmp 0x1601b9eb2
test eax, eax
je 0x1601b9ead
jle 0x1601b9eb2
movzx eax, ax
or eax, 0x80070000
jmp 0x1601b9eb2
xor eax, eax
inc dword [rbx + 8]
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop rdi
ret