joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1400028a0
Capabilities:
Read file via mapping

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x70
lea rax, vtable.IPCService.0
mov rbx, rcx
mov qword [rcx], rax
call qword [sym.imp.KERNEL32.dll_WTSGetActiveConsoleSessionId]
xor ebp, ebp
mov dword [rbx + 0x40], 0xffffffff
lea rdx, [rsp + 0x30]
mov qword [rbx + 0x48], rbp
lea rcx, [rsp + 0x48]
mov qword [rbx + 0x50], rbp
mov esi, eax
mov dword [rbx + 0x44], ebp
mov qword [rbx + 8], rbp
mov qword [rbx + 0x10], rbp
mov qword [rbx + 0x18], rbp
mov dword [rbx + 0x20], ebp
call fcn.1400077d0
lea rcx, [rbx + 0x38]
mov dword [rbx + 0x58], ebp
lea rdx, str.GlobalEEU_Memory_Map_Mutex
call fcn.140008de0
test eax, eax
jne 0x14000293e
mov rcx, qword [0x140075cd8]
test rcx, rcx
je 0x140002a54
lea r9, str.CreateMutex_failed.
mov edx, 0x60004008
mov r8d, 1
call fcn.1400065c0
jmp 0x140002a54
xor r9d, r9d
lea rax, str.GlobalEEU_Memory_Map
mov qword [rsp + 0x28], rax
lea rdx, [rsp + 0x30]
xor ecx, ecx
mov dword [rsp + 0x20], 0x170
lea r8d, [r9 + 4]
call qword [sym.imp.KERNEL32.dll_CreateFileMappingA]
mov qword [rbx + 0x28], rax
test rax, rax
jne 0x140002988
mov rcx, qword [0x140075cd8]
test rcx, rcx
je 0x140002a54
lea r9, str.CreateFileMapping_failed.
jmp 0x140002929
xor r9d, r9d
mov qword [rsp + 0x20], 0x170
xor r8d, r8d
mov rcx, rax
lea edx, [r9 + 6]
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov qword [rbx + 0x30], rax
test rax, rax
jne 0x1400029c9
mov rcx, qword [0x140075cd8]
test rcx, rcx
je 0x140002a54
lea r9, str.MapViewOfFile_failed.
jmp 0x140002929
xor edx, edx
mov r8d, 0x170
mov rcx, rax
call fcn.14000ce80
mov rax, qword [rbx + 0x30]
mov edx, esi
mov rcx, rbx
mov dword [rax], 8
call fcn.140003010
lea rdx, [rsp + 0x80]
lea rcx, str.ClientStatusMonitoring
call fcn.140007060
test eax, eax
je 0x140002a4d
cmp dword [rsp + 0x80], ebp
je 0x140002a4d
mov r9, rbx
lea r8, [0x1400036e0]
mov edx, 8
lea rcx, [rbx + 0x50]
call fcn.140008f60
test eax, eax
jne 0x140002a4d
mov rcx, qword [0x140075cd8]
test rcx, rcx
je 0x140002a54
lea r9, str.CreateTheThread_for_GetClientStatusThread_failed.
mov edx, 0x60004002
lea r8d, [rax + 1]
call fcn.1400065c0
jmp 0x140002a54
mov dword [rbx + 0x48], 1
lea r11, [rsp + 0x70]
mov rax, rbx
mov rbx, qword [r11 + 0x18]
mov rbp, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret
Function at 0x1400034a0
Capabilities:
Get session information

Disassembly:
mov rax, rsp
push rbx
sub rsp, 0x260
cmp dword [rcx + 0x58], 0
mov rbx, rcx
jne 0x1400036c9
mov qword [rax + 0x18], rbp
xor ebp, ebp
mov qword [rax - 0x10], rsi
mov qword [rax - 0x18], rdi
nop word [rax + rax]
mov edx, 0x3a98
lea rcx, [0x140075ce0]
call fcn.140008f40
cmp eax, 0x102
jne 0x1400036b1
cmp dword [rbx + 0x58], ebp
jne 0x1400036b1
cmp dword [rbx + 0x40], 0xffffffff
je 0x1400036a8
cmp dword [rbx + 0x4c], ebp
je 0x14000350c
mov dword [rbx + 0x4c], ebp
jmp 0x1400036a8
lea rcx, [rbx + 0x38]
call fcn.140008da0
test eax, eax
jne 0x140003543
mov rcx, qword [0x140075cd8]
test rcx, rcx
je 0x1400036a8
lea r9, str.IPCService::GetClientStatusLoop_AcquireTheMutex_failed.
mov edx, 0x60004008
lea r8d, [rax + 1]
call fcn.1400065c0
jmp 0x1400036a8
mov rdx, qword [rbx + 0x30]
lea rcx, [rbx + 0x38]
mov edi, dword [rdx + 4]
mov eax, edi
and eax, 0xfffffffe
mov dword [rdx + 4], eax
call fcn.140008e60
test dil, 5
jne 0x1400036a8
mov edx, dword [rbx + 0x40]
lea rax, [rsp + 0x270]
lea r9, [rsp + 0x278]
mov qword [rsp + 0x20], rax
mov r8d, 8
mov qword [rsp + 0x278], rbp
xor ecx, ecx
call sub.WTSAPI32.dll_WTSQuerySessionInformationA
test eax, eax
je 0x1400036a8
mov rcx, qword [rsp + 0x278]
cmp dword [rcx], 2
jb 0x1400035b1
call sub.WTSAPI32.dll_WTSFreeMemory
jmp 0x1400036a8
call sub.WTSAPI32.dll_WTSFreeMemory
mov edi, dword [rbx + 0x40]
lea r8, str.GlobalAMDClient
mov r9d, edi
lea rdx, str._s__u
lea rcx, [rsp + 0x30]
call fcn.140002840
mov r9d, edi
lea r8, str.GlobalAMDClientAck
lea rdx, str._s__u
lea rcx, [rsp + 0x140]
call fcn.140002840
mov rcx, qword [rbx + 8]
lea rdi, [rdi*8]
add rcx, rdi
lea rdx, [rsp + 0x30]
xor r8d, r8d
call fcn.140008e80
test eax, eax
je 0x14000367e
mov rcx, qword [rbx + 0x10]
lea rdx, [rsp + 0x140]
add rcx, rdi
xor r8d, r8d
call fcn.140008e80
test eax, eax
je 0x14000367e
mov ecx, dword [rbx + 0x40]
call fcn.140004b90
mov rcx, qword [0x140075cd8]
test eax, eax
je 0x14000365c
test rcx, rcx
je 0x1400036a8
mov r9d, dword [rbx + 0x40]
lea r8, str.Client_started_for_session_id__u__because_status_was_not_running_
mov edx, 4
call fcn.1400067e0
jmp 0x1400036a8
test rcx, rcx
je 0x1400036a8
mov eax, dword [rbx + 0x40]
lea r9, str.Client_for_session_id__u_has_to_be_relaunched.
xor r8d, r8d
mov dword [rsp + 0x20], eax
mov edx, 0x40004003
call fcn.1400065c0
jmp 0x1400036a8
mov rcx, qword [0x140075cd8]
test rcx, rcx
je 0x1400036a8
mov eax, dword [rbx + 0x40]
lea r9, str.Create_client_event_failed_for_session_id_u.
mov edx, 0x60004003
mov dword [rsp + 0x20], eax
mov r8d, 1
call fcn.1400065c0
cmp dword [rbx + 0x58], ebp
je 0x1400034d0
mov rsi, qword [rsp + 0x258]
mov rdi, qword [rsp + 0x250]
mov rbp, qword [rsp + 0x280]
add rsp, 0x260
pop rbx
ret
Function at 0x140003ca0
Capabilities:
Check if file exists
Get file attributes
Query environment variable

Disassembly:
push rbx
sub rsp, 0x250
mov ebx, ecx
call fcn.140004030
xor edx, edx
lea rcx, [rsp + 0x30]
mov r8d, 0x104
call fcn.14000ce80
xor edx, edx
lea rcx, [rsp + 0x140]
mov r8d, 0x104
call fcn.14000ce80
mov r8d, 0x104
lea rdx, [rsp + 0x140]
lea rcx, str.COMMONPROGRAMFILES
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
test eax, eax
je 0x140003d53
lea rax, str.ATI_TechnologiesDSEManager.exe
mov qword [rsp + 0x28], 0
lea r9, [rsp + 0x140]
mov qword [rsp + 0x20], rax
xor r8d, r8d
lea rcx, [rsp + 0x30]
mov edx, 0x104
call fcn.140032bb0
test eax, eax
jne 0x140003d3e
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x140003d53
cmp eax, 0x10
je 0x140003d53
lea rdx, [rsp + 0x30]
mov ecx, ebx
call fcn.140003d70
add rsp, 0x250
pop rbx
ret
lea rcx, str.Unable_to_create_path_for_DSE_Manager._n
call fcn.140004330
add rsp, 0x250
pop rbx
ret
Function at 0x140004030
Capabilities:
Check if file exists
Enumerate processes
Query environment variable
Terminate process

Disassembly:
push rbp
push r14
lea rbp, [rsp - 0x4b8]
sub rsp, 0x5b8
xor edx, edx
lea rcx, [rbp + 0x190]
mov r8d, 0x104
call fcn.14000ce80
xor edx, edx
lea rcx, [rsp + 0x50]
mov r8d, 0x104
call fcn.14000ce80
mov r8d, 0x104
lea rdx, [rsp + 0x50]
lea rcx, str.COMMONPROGRAMFILES
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
test eax, eax
je 0x1400042c1
lea rax, str.ATI_TechnologiesDSEManager.exe
xor r14d, r14d
mov qword [rsp + 0x28], r14
lea r9, [rsp + 0x50]
xor r8d, r8d
mov qword [rsp + 0x20], rax
mov edx, 0x104
lea rcx, [rbp + 0x190]
call fcn.140032bb0
test eax, eax
jne 0x1400040d9
lea rcx, [rbp + 0x190]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x1400042c1
cmp eax, 0x10
je 0x1400042c1
xor edx, edx
mov qword [rsp + 0x5e0], rsi
lea ecx, [rdx + 2]
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x140004113
lea rcx, str.Unable_to_get_snapshot_of_all_processes._n
call fcn.140004330
mov rsi, qword [rsp + 0x5e0]
add rsp, 0x5b8
pop r14
pop rbp
ret
mov qword [rsp + 0x5b0], rdi
mov edi, r14d
mov qword [rsp + 0x5d8], rbx
nop word [rax + rax]
xor edx, edx
lea rcx, [rbp + 0x64]
mov r8d, 0x12c
call fcn.14000ce80
mov dword [rbp + 0x60], 0x130
test edi, edi
jne 0x14000415a
lea rdx, [rbp + 0x60]
mov rcx, rsi
call sub.KERNEL32.dll_Process32First
jmp 0x140004168
jle 0x140004170
lea rdx, [rbp + 0x60]
mov rcx, rsi
call sub.KERNEL32.dll_Process32Next
test eax, eax
je 0x140004295
xor edx, edx
lea rcx, [rbp + 0x2a0]
mov r8d, 0x100
call fcn.14000ce80
xor edx, edx
lea rcx, [rsp + 0x50]
mov r8d, 0x100
call fcn.14000ce80
mov qword [rsp + 0x40], 0x100
lea rax, [rsp + 0x50]
mov qword [rsp + 0x38], rax
lea rcx, [rbp + 0x8c]
lea rax, [rbp + 0x2a0]
mov qword [rsp + 0x30], 0x100
mov qword [rsp + 0x28], rax
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], r14
xor edx, edx
call fcn.140033be4
test eax, eax
jne 0x14000428e
lea rdx, str.DSEManager
lea rcx, [rbp + 0x2a0]
call fcn.1400325f0
test eax, eax
jne 0x14000428e
lea rdx, str..exe
lea rcx, [rsp + 0x50]
call fcn.1400325f0
test eax, eax
jne 0x14000428e
mov r8d, dword [rbp + 0x68]
xor edx, edx
mov ecx, 0x1fffff
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov rbx, rax
test rax, rax
je 0x14000428e
xor edx, edx
lea rcx, [rbp + 0x3a0]
mov r8d, 0x104
call fcn.14000ce80
lea r9, [rbp + 0x4d0]
mov dword [rbp + 0x4d0], 0x104
lea r8, [rbp + 0x3a0]
xor edx, edx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_QueryFullProcessImageNameA]
test eax, eax
je 0x140004285
lea rdx, [rbp + 0x190]
lea rcx, [rbp + 0x3a0]
call fcn.1400325f0
test eax, eax
jne 0x140004285
xor edx, edx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
inc edi
jmp 0x140004130
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rdi, qword [rsp + 0x5b0]
mov rbx, qword [rsp + 0x5d8]
mov rsi, qword [rsp + 0x5e0]
add rsp, 0x5b8
pop r14
pop rbp
ret
lea rcx, str.Unable_to_create_path_for_DSE_Manager._n
call fcn.140004330
add rsp, 0x5b8
pop r14
pop rbp
ret
Function at 0x1400044e0
Capabilities:
Create service
Persist via windows service

Disassembly:
push rbx
sub rsp, 0x180
xor edx, edx
xor ecx, ecx
lea r8d, [rdx + 2]
call qword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
mov rbx, rax
test rax, rax
jne 0x140004516
lea rcx, str.SCM_could_not_be_opened.
call fcn.140004330
xor eax, eax
add rsp, 0x180
pop rbx
ret
mov r8d, 0x104
mov qword [rsp + 0x190], rdi
lea rdx, [rsp + 0x70]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
xor eax, eax
lea r8, str.AMD_External_Events_Utility
mov qword [rsp + 0x60], rax
lea rdx, str.AMD_External_Events_Utility
mov qword [rsp + 0x58], rax
mov r9d, 0x10
mov qword [rsp + 0x50], rax
mov rcx, rbx
mov qword [rsp + 0x48], rax
lea rax, str.Event_log
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x30], 1
mov dword [rsp + 0x28], 2
mov dword [rsp + 0x20], pe_nt_image_headers64
call qword [sym.imp.ADVAPI32.dll_CreateServiceA]
mov rdi, rax
test rax, rax
jne 0x1400045ca
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str.Service_could_not_be_created.__GetLastError___i_n
call fcn.140004330
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rdi, qword [rsp + 0x190]
xor eax, eax
add rsp, 0x180
pop rbx
ret
lea rcx, str.Service_has_been_installed_successfully._n
call fcn.140004330
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rdi, qword [rsp + 0x190]
mov eax, 1
add rsp, 0x180
pop rbx
ret

Function at 0x140004840
Capabilities:
Delete service

Disassembly:
push rbx
sub rsp, 0x20
xor edx, edx
xor ecx, ecx
lea r8d, [rdx + 1]
call qword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
mov rbx, rax
test rax, rax
jne 0x140004870
lea rcx, str.SCM_could_not_be_opened.
call fcn.140004330
xor eax, eax
add rsp, 0x20
pop rbx
ret
mov r8d, 0x10000
mov qword [rsp + 0x30], rdi
lea rdx, str.AMD_External_Events_Utility
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_OpenServiceA]
mov rdi, rax
test rax, rax
jne 0x1400048b5
lea rcx, str.Service_could_not_be_opened._n
call fcn.140004330
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rdi, qword [rsp + 0x30]
xor eax, eax
add rsp, 0x20
pop rbx
ret
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_DeleteService]
test eax, eax
jne 0x1400048ed
lea rcx, str.Service_could_not_be_deleted._n
call fcn.140004330
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rdi, qword [rsp + 0x30]
xor eax, eax
add rsp, 0x20
pop rbx
ret
lea rcx, str.Service_has_been_deleted_successfully._n
call fcn.140004330
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rdi, qword [rsp + 0x30]
mov eax, 1
add rsp, 0x20
pop rbx
ret
Function at 0x140004e00
Capabilities:
Get session information

Disassembly:
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r14
sub rsp, 0x40
mov rax, qword [0x140075d08]
xor r14d, r14d
mov qword [rsp + 0x30], rax
mov esi, r14d
mov rax, qword [0x140075ce0]
mov qword [rsp + 0x38], rax
call fcn.140005050
mov edi, eax
mov qword [rsp + 0x70], rbx
lea ebp, [r14 + 0x32]
nop dword [rax + rax]
cmp edi, 2
jne 0x14000501c
mov r9d, ebp
lea rdx, [rsp + 0x30]
xor r8d, r8d
mov ecx, edi
call sub.KERNEL32.dll_WaitForMultipleObjects
cmp eax, 0xffffffff
je 0x140004ff9
cmp eax, 0x102
jne 0x14000501c
mov edi, r14d
call qword [sym.imp.KERNEL32.dll_WTSGetActiveConsoleSessionId]
mov ebx, eax
cmp eax, 0xffffffff
je 0x140004fec
mov ecx, ebx
call fcn.140004d20
test eax, eax
je 0x140004fec
lea rax, [rsp + 0x60]
mov qword [rsp + 0x68], r14
lea r9, [rsp + 0x68]
mov qword [rsp + 0x20], rax
mov r8d, 8
mov edx, ebx
xor ecx, ecx
call sub.WTSAPI32.dll_WTSQuerySessionInformationA
test eax, eax
je 0x140004fec
mov rcx, qword [rsp + 0x68]
mov eax, dword [rcx]
test eax, eax
jne 0x140004ed8
mov rax, qword [0x140075d20]
mov dword [rax + rbx*4], 3
jmp 0x140004eef
cmp eax, 1
jne 0x140004f8e
mov rax, qword [0x140075d20]
mov dword [rax + rbx*4], 1
mov rcx, qword [rsp + 0x68]
call sub.WTSAPI32.dll_WTSFreeMemory
mov rcx, qword [0x140075cd0]
mov edx, ebx
call fcn.140003790
mov rcx, qword [0x140075cd0]
mov edx, ebx
call fcn.1400033f0
test eax, eax
jne 0x140004f48
mov rcx, qword [0x140075cd8]
test rcx, rcx
je 0x140004f3e
lea r9, str.Create_client_event_failed_for_session_id_u.
mov dword [rsp + 0x20], ebx
mov edx, 0x60004003
lea r8d, [rax + 1]
call fcn.1400065c0
mov edi, 3
jmp 0x140004fec
mov ecx, ebx
call fcn.140004b90
test eax, eax
je 0x140004f73
mov rcx, qword [0x140075cd8]
test rcx, rcx
je 0x140004f73
mov r9d, ebx
lea r8, str.Client_started_at_service_start_time_for_session_id__u
mov edx, 4
call fcn.1400067e0
mov rcx, qword [0x140075cd0]
xor r8d, r8d
mov edx, 0x200
call fcn.140002cc0
mov edi, 1
jmp 0x140004fec
cmp eax, 2
mov rax, qword [0x140075cd8]
jne 0x140004fc9
test rax, rax
je 0x140004fb8
lea r8, str.The_WinStation_is_in_the_process_of_connecting_to_the_client.
mov edx, 4
mov rcx, rax
call fcn.1400067e0
mov rcx, qword [rsp + 0x68]
call sub.WTSAPI32.dll_WTSFreeMemory
mov edi, 2
mov ebp, 0xfa
jmp 0x140004fec
test rax, rax
je 0x140004fe7
lea r8, str.Error:_Give_up_waiting_for_client_connected.
mov edx, 4
mov rcx, rax
call fcn.1400067e0
mov rcx, qword [rsp + 0x68]
call sub.WTSAPI32.dll_WTSFreeMemory
inc esi
cmp esi, 0x64
jb 0x140004e40
jmp 0x14000501c
mov rcx, qword [0x140075cd8]
test rcx, rcx
je 0x14000501c
lea r9, str.WaitForSingleEvent_failed.
mov edx, 0x60004006
mov r8d, 1
call fcn.1400065c0
lea rcx, [0x140075d10]
mov dword [0x140075d2c], edi
call fcn.140008f20
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
add rsp, 0x40
pop r14
pop rdi
pop rsi
ret
Function at 0x140005050
Capabilities:
Get session information

Disassembly:
push rbx
sub rsp, 0x30
call qword [sym.imp.KERNEL32.dll_WTSGetActiveConsoleSessionId]
mov ebx, eax
cmp eax, 0xffffffff
je 0x1400051df
mov ecx, ebx
call fcn.140004d20
test eax, eax
je 0x1400051df
lea rax, [rsp + 0x40]
mov qword [rsp + 0x48], 0
lea r9, [rsp + 0x48]
mov qword [rsp + 0x20], rax
mov r8d, 8
mov edx, ebx
xor ecx, ecx
call sub.WTSAPI32.dll_WTSQuerySessionInformationA
test eax, eax
je 0x1400051df
mov rcx, qword [rsp + 0x48]
mov eax, dword [rcx]
test eax, eax
jne 0x1400050c0
mov rax, qword [0x140075d20]
mov dword [rax + rbx*4], 3
jmp 0x1400050d7
cmp eax, 1
jne 0x14000517b
mov rax, qword [0x140075d20]
mov dword [rax + rbx*4], 1
mov rcx, qword [rsp + 0x48]
call sub.WTSAPI32.dll_WTSFreeMemory
mov rcx, qword [0x140075cd0]
mov edx, ebx
call fcn.140003790
mov rcx, qword [0x140075cd0]
mov edx, ebx
call fcn.1400033f0
test eax, eax
jne 0x140005131
mov rcx, qword [0x140075cd8]
test rcx, rcx
je 0x140005126
lea r9, str.Create_client_event_failed_for_session_id_u.
mov dword [rsp + 0x20], ebx
mov edx, 0x60004003
lea r8d, [rax + 1]
call fcn.1400065c0
mov eax, 3
add rsp, 0x30
pop rbx
ret
mov ecx, ebx
call fcn.140004b90
test eax, eax
je 0x14000515c
mov rcx, qword [0x140075cd8]
test rcx, rcx
je 0x14000515c
mov r9d, ebx
lea r8, str.Client_started_at_service_start_time_for_session_id__u
mov edx, 4
call fcn.1400067e0
mov rcx, qword [0x140075cd0]
xor r8d, r8d
mov edx, 0x200
call fcn.140002cc0
mov eax, 1
add rsp, 0x30
pop rbx
ret
cmp eax, 2
jne 0x1400051b5
mov rax, qword [0x140075cd8]
test rax, rax
je 0x1400051a5
lea r8, str.The_WinStation_is_in_the_process_of_connecting_to_the_client.
mov edx, 4
mov rcx, rax
call fcn.1400067e0
mov rcx, qword [rsp + 0x48]
call sub.WTSAPI32.dll_WTSFreeMemory
mov eax, 2
add rsp, 0x30
pop rbx
ret
mov r9, qword [0x140075cd8]
test r9, r9
je 0x1400051da
lea r8, str.Error:_Give_up_waiting_for_client_connected.
mov edx, 4
mov rcx, r9
call fcn.1400067e0
mov rcx, qword [rsp + 0x48]
call sub.WTSAPI32.dll_WTSFreeMemory
xor eax, eax
add rsp, 0x30
pop rbx
ret
Function at 0x140006420
Capabilities:
Print debug messages

Disassembly:
mov r11, rsp
mov qword [r11 + 0x10], rbx
mov qword [r11 + 0x18], rbp
mov qword [r11 + 0x20], rsi
push rdi
sub rsp, 0x130
lea rax, vtable.LogMsg.0
mov rsi, rdx
mov qword [rcx], rax
lea rdx, [r11 + 8]
xor eax, eax
mov rbx, rcx
mov qword [rcx + 0x10c], rax
mov rbp, r8
mov qword [rcx + 0x118], rax
lea rcx, str.LogOutputDebug
mov dword [r11 + 8], eax
call fcn.140007060
test eax, eax
je 0x140006483
cmp dword [rsp + 0x140], 0
je 0x140006483
or dword [rbx + 0x10c], 1
lea rdx, [rsp + 0x140]
lea rcx, str.LogOutputFile
call fcn.140007060
test eax, eax
je 0x1400064ac
cmp dword [rsp + 0x140], 0
je 0x1400064ac
or dword [rbx + 0x10c], 4
lea rdx, [rsp + 0x140]
lea rcx, str.LogMaskLevel
call fcn.140007060
test eax, eax
je 0x1400064d5
mov eax, dword [rsp + 0x140]
test eax, eax
je 0x1400064d5
mov dword [rbx + 0x110], eax
mov rdx, rsi
lea rcx, [rbx + 8]
call fcn.140002840
test byte [rbx + 0x10c], 4
je 0x140006533
lea r9, [rbx + 8]
mov r8, rbp
lea rdx, str._s_s.txt
lea rcx, [rsp + 0x20]
call fcn.140002840
lea rdx, [0x14005df54]
lea rcx, [rsp + 0x20]
call fcn.1400347a4
mov qword [rbx + 0x118], rax
test rax, rax
jne 0x140006533
lea rcx, str.fopen_failed.
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
and dword [rbx + 0x10c], 0xfffffffb
lea r11, [rsp + 0x130]
mov rax, rbx
mov rbx, qword [r11 + 0x18]
mov rbp, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret

Function at 0x1400066c0
Capabilities:
Print debug messages

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rdi
sub rsp, 0x440
test byte [rcx + 0x10c], 5
mov rdi, r9
mov ebp, r8d
mov rbx, rcx
je 0x1400067c5
lea rcx, [rsp + 0x30]
mov qword [rsp + 0x450], rsi
call qword [sym.imp.KERNEL32.dll_GetLocalTime]
movzx edx, word [rsp + 0x3c]
lea rcx, [rsp + 0x240]
movzx eax, word [rsp + 0x3e]
movzx r9d, word [rsp + 0x3a]
movzx r8d, word [rsp + 0x38]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], edx
lea rdx, str._02d:_02d:_02d:_03d
call fcn.140002840
test ebp, ebp
je 0x14000675f
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x28], eax
lea r9, [rsp + 0x240]
lea r8, [rbx + 8]
mov qword [rsp + 0x20], rdi
lea rdx, str._s__t_s__s_GetLastError___x_r_n
lea rcx, [rsp + 0x40]
call fcn.140002840
jmp 0x140006781
lea r9, [rsp + 0x240]
mov qword [rsp + 0x20], rdi
lea r8, [rbx + 8]
lea rdx, str._s__t_s__s_r_n
lea rcx, [rsp + 0x40]
call fcn.140002840
mov eax, dword [rbx + 0x10c]
mov rsi, qword [rsp + 0x450]
test al, 1
je 0x1400067a4
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [rbx + 0x10c]
test al, 4
je 0x1400067c5
mov rcx, qword [rbx + 0x118]
lea rdx, [rsp + 0x40]
call fcn.140006860
mov rcx, qword [rbx + 0x118]
call fcn.140034468
lea r11, [rsp + 0x440]
mov rbx, qword [r11 + 0x18]
mov rbp, qword [r11 + 0x20]
mov rsp, r11
pop rdi
ret
Function at 0x140006c20
Capabilities:
Delete registry key

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x30
mov rdi, rdx
lea rax, [rsp + 0x50]
xor edx, edx
mov qword [rsp + 0x20], rax
mov r9d, 0x10000
xor r8d, r8d
mov ebx, 1
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x140006c79
mov rcx, qword [0x140075cd8]
test rcx, rcx
je 0x140006c6c
lea r8, str.DeleteRegKey_RegOpenKeyEx_failed.
lea edx, [rbx + 7]
call fcn.140006640
xor eax, eax
mov rbx, qword [rsp + 0x40]
add rsp, 0x30
pop rdi
ret
mov rcx, qword [rsp + 0x50]
mov rdx, rdi
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
test eax, eax
je 0x140006cad
mov rcx, qword [0x140075cd8]
test rcx, rcx
je 0x140006cab
mov r9, rdi
lea r8, str.DeleteRegKey_RegDeleteKey_failed_for_pcPath___s.
mov edx, 8
call fcn.140006640
xor ebx, ebx
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, ebx
mov rbx, qword [rsp + 0x40]
add rsp, 0x30
pop rdi
ret

Function at 0x140006cd0
Capabilities:
Delete registry value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x50
mov qword [rsp + 0x40], 0
lea rax, [rsp + 0x78]
mov qword [rsp + 0x38], rax
mov rdi, r8
mov qword [rsp + 0x30], 0
xor r9d, r9d
mov dword [rsp + 0x28], 0x20006
xor r8d, r8d
mov dword [rsp + 0x20], 0
mov rsi, rdx
mov ebx, 1
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
je 0x140006d56
mov rcx, qword [0x140075cd8]
test rcx, rcx
je 0x140006d44
mov r9, rsi
lea r8, str.WriteRegKey_RegCreateKeyEx_failed_for_pcPath___s.
lea edx, [rbx + 7]
call fcn.140006640
xor eax, eax
mov rbx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
add rsp, 0x50
pop rdi
ret
mov rcx, qword [rsp + 0x78]
mov rdx, rdi
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
test eax, eax
je 0x140006d8a
mov rcx, qword [0x140075cd8]
test rcx, rcx
je 0x140006d88
mov r9, rdi
lea r8, str.WriteRegKey_RegSetValueEx_failed_for_value___s.
mov edx, 8
call fcn.140006640
xor ebx, ebx
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rsi, qword [rsp + 0x68]
mov eax, ebx
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop rdi
ret