joyce8/EMBER2024-capa huggingface dataset:
Function at 0x47d900
Capabilities:
Query or enumerate registry value

Disassembly:
push rbp
sub rsp, 0x280
mov rbp, rsp
mov qword [rbp + 0x40], 0
mov qword [rbp + 0x48], rbp
mov qword [rbp + 0x290], rcx
mov qword [rbp + 0x298], rdx
mov qword [rbp + 0x2a0], r8
mov dword [rbp + 0x2a8], r9d
mov rcx, qword [rbp + 0x298]
call fcn.0040e210
mov rcx, qword [rbp + 0x2b0]
call fcn.0040e210
nop
mov rcx, qword [rbp + 0x290]
call fcn.0040e080
mov dword [rbp + 0x26c], 0
mov qword [rbp + 0x270], 0
mov qword [rbp + 0x278], 0
nop
cmp qword [rbp + 0x298], 0
je 0x47d9c5
mov rcx, qword [rbp + 0x298]
call fcn.0040feb0
mov rcx, rax
mov rdx, qword [rbp + 0x2a0]
lea r8, [rbp + 0x270]
call sub.advapi32.dll_RegConnectRegistryW
test eax, eax
je 0x47d9d3
call sub.kernel32.dll_GetLastError_2
mov dword [rbp + 0x26c], eax
xor rcx, rcx
mov rdx, qword [rbp + 0x48]
call fcn.0047db70
jmp 0x47db3a
mov rax, qword [rbp + 0x2a0]
mov qword [rbp + 0x270], rax
mov rcx, qword [rbp + 0x2b0]
call fcn.0040feb0
mov rcx, qword [rbp + 0x270]
mov rdx, rax
xor r8, r8
mov r9d, dword [rbp + 0x2a8]
or r9d, 1
lea rax, [rbp + 0x278]
mov qword [rsp + 0x20], rax
call sub.advapi32.dll_RegOpenKeyExW_1
test eax, eax
je 0x47da28
call sub.kernel32.dll_GetLastError_2
mov dword [rbp + 0x26c], eax
xor rcx, rcx
mov rdx, qword [rbp + 0x48]
call fcn.0047db70
jmp 0x47db3a
mov dword [rbp + 0x264], 0x104
lea rcx, [rbp + 0x52]
mov edx, 0x20a
xor r8, r8
call fcn.00408d50
mov dword [rbp + 0x268], 0
jmp 0x47daac
lea rcx, [rbp + 0x40]
lea rdx, [rbp + 0x52]
call fcn.0040ff50
mov rcx, qword [rbp + 0x290]
mov edx, 3
mov rax, qword [rbp + 0x290]
mov r8, qword [rax]
mov r9, qword [rbp + 0x40]
lea rax, [0x0047dc6c]
mov qword [rsp + 0x20], rax
call fcn.00410420
lea rcx, [rbp + 0x52]
mov edx, 0x20a
xor r8, r8
call fcn.00408d50
mov dword [rbp + 0x264], 0x104
add dword [rbp + 0x268], 1
mov rcx, qword [rbp + 0x278]
mov edx, dword [rbp + 0x268]
lea r8, [rbp + 0x52]
lea r9, [rbp + 0x264]
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x30], 0
lea rax, [rbp + 0x25c]
mov qword [rsp + 0x38], rax
call sub.advapi32.dll_RegEnumValueW
test eax, eax
je 0x47da50
nop
cmp qword [rbp + 0x278], 0
je 0x47db0f
mov rcx, qword [rbp + 0x278]
call sub.advapi32.dll_RegCloseKey_1
cmp qword [rbp + 0x270], 0
je 0x47db25
mov rcx, qword [rbp + 0x270]
call sub.advapi32.dll_RegCloseKey_1
cmp dword [rbp + 0x26c], 0
je 0x47db39
mov ecx, dword [rbp + 0x26c]
call sub.kernel32.dll_SetLastError
nop
lea rcx, [rbp + 0x40]
call fcn.0040e080
lea rcx, [rbp + 0x298]
call fcn.0040e080
lea rcx, [rbp + 0x2b0]
call fcn.0040e080
mov rax, qword [rbp + 0x290]
lea rsp, [rbp + 0x280]
pop rbp
ret
Function at 0x47dc80
Capabilities:
Set registry value

Disassembly:
push rbp
add rsp, 0xffffffffffffff80
mov rbp, rsp
mov qword [rbp + 0x58], rbp
mov qword [rbp + 0x90], rcx
mov qword [rbp + 0x98], rdx
mov dword [rbp + 0xa0], r8d
mov qword [rbp + 0xa8], r9
mov rcx, qword [rbp + 0x90]
call fcn.0040e210
mov rcx, qword [rbp + 0xa8]
call fcn.0040e210
mov rcx, qword [rbp + 0xb0]
call fcn.0040e210
nop
mov dword [rbp + 0x6c], 0
mov qword [rbp + 0x70], 0
mov qword [rbp + 0x78], 0
nop
cmp qword [rbp + 0x90], 0
je 0x47dd2b
mov rcx, qword [rbp + 0x90]
call fcn.0040feb0
mov rcx, rax
mov rdx, qword [rbp + 0x98]
lea r8, [rbp + 0x70]
call sub.advapi32.dll_RegConnectRegistryW
test eax, eax
je 0x47dd36
call sub.kernel32.dll_GetLastError_2
mov dword [rbp + 0x6c], eax
xor rcx, rcx
mov rdx, qword [rbp + 0x58]
call fcn.0047de70
jmp 0x47de3d
mov rax, qword [rbp + 0x98]
mov qword [rbp + 0x70], rax
mov rcx, qword [rbp + 0xa8]
call fcn.0040feb0
mov rcx, qword [rbp + 0x70]
mov rdx, rax
xor r8, r8
mov r9d, dword [rbp + 0xa0]
or r9d, 0x20006
lea rax, [rbp + 0x78]
mov qword [rsp + 0x20], rax
call sub.advapi32.dll_RegOpenKeyExW_1
test eax, eax
je 0x47ddd7
mov rcx, qword [rbp + 0xa8]
call fcn.0040feb0
mov rcx, qword [rbp + 0x70]
mov rdx, rax
xor r8, r8
xor r9, r9
mov dword [rsp + 0x20], 0
mov eax, dword [rbp + 0xa0]
or eax, 0x20006
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x30], 0
lea rax, [rbp + 0x78]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], 0
call sub.advapi32.dll_RegCreateKeyExW
test eax, eax
je 0x47ddd7
call sub.kernel32.dll_GetLastError_2
mov dword [rbp + 0x6c], eax
xor rcx, rcx
mov rdx, qword [rbp + 0x58]
call fcn.0047de70
jmp 0x47de3d
mov rcx, qword [rbp + 0xb0]
call fcn.0040feb0
mov rcx, qword [rbp + 0x78]
mov rdx, rax
xor r8, r8
mov r9d, 3
mov rax, qword [rbp + 0xb8]
mov qword [rsp + 0x20], rax
mov eax, dword [rbp + 0xc0]
mov dword [rsp + 0x28], eax
call sub.advapi32.dll_RegSetValueExW
test eax, eax
je 0x47de1b
call sub.kernel32.dll_GetLastError_2
mov dword [rbp + 0x6c], eax
nop
cmp qword [rbp + 0x78], 0
je 0x47de2c
mov rcx, qword [rbp + 0x78]
call sub.advapi32.dll_RegCloseKey_1
cmp qword [rbp + 0x70], 0
je 0x47de3c
mov rcx, qword [rbp + 0x70]
call sub.advapi32.dll_RegCloseKey_1
nop
lea rcx, [rbp + 0x90]
call fcn.0040e080
lea rcx, [rbp + 0xa8]
mov edx, 2
call fcn.0040e160
mov eax, dword [rbp + 0x6c]
lea rsp, [rbp + 0x80]
pop rbp
ret
Function at 0x47df20
Capabilities:
Query or enumerate registry value

Disassembly:
push rbp
sub rsp, 0x70
mov rbp, rsp
mov qword [rbp + 0x38], rbp
mov qword [rbp + 0x80], rcx
mov qword [rbp + 0x88], rdx
mov dword [rbp + 0x90], r8d
mov qword [rbp + 0x98], r9
mov rcx, qword [rbp + 0x80]
call fcn.0040e210
mov rcx, qword [rbp + 0x98]
call fcn.0040e210
mov rcx, qword [rbp + 0xa0]
call fcn.0040e210
nop
mov qword [rbp + 0x50], 0
mov dword [rbp + 0x5c], 0
mov rax, qword [rbp + 0xa8]
mov dword [rax], 0
mov qword [rbp + 0x60], 0
mov qword [rbp + 0x68], 0
nop
cmp qword [rbp + 0x80], 0
je 0x47dfe0
mov rcx, qword [rbp + 0x80]
call fcn.0040feb0
mov rcx, rax
mov rdx, qword [rbp + 0x88]
lea r8, [rbp + 0x60]
call sub.advapi32.dll_RegConnectRegistryW
test eax, eax
je 0x47dfeb
call sub.kernel32.dll_GetLastError_2
mov dword [rbp + 0x5c], eax
xor rcx, rcx
mov rdx, qword [rbp + 0x38]
call fcn.0047e180
jmp 0x47e154
mov rax, qword [rbp + 0x88]
mov qword [rbp + 0x60], rax
mov rcx, qword [rbp + 0x98]
call fcn.0040feb0
mov rcx, qword [rbp + 0x60]
mov rdx, rax
xor r8, r8
mov r9d, dword [rbp + 0x90]
or r9d, 0x20019
lea rax, [rbp + 0x68]
mov qword [rsp + 0x20], rax
call sub.advapi32.dll_RegOpenKeyExW_1
test eax, eax
je 0x47e03a
call sub.kernel32.dll_GetLastError_2
mov dword [rbp + 0x5c], eax
xor rcx, rcx
mov rdx, qword [rbp + 0x38]
call fcn.0047e180
jmp 0x47e154
mov dword [rbp + 0x4c], 3
mov rax, qword [rbp + 0xa8]
mov dword [rax], 0
mov rcx, qword [rbp + 0xa0]
call fcn.0040feb0
mov rcx, qword [rbp + 0x68]
mov rdx, rax
xor r8, r8
lea r9, [rbp + 0x4c]
mov qword [rsp + 0x20], 0
mov rax, qword [rbp + 0xa8]
mov qword [rsp + 0x28], rax
call sub.advapi32.dll_RegQueryValueExW_1
test eax, eax
je 0x47e09f
call sub.kernel32.dll_GetLastError_2
mov dword [rbp + 0x5c], eax
xor rcx, rcx
mov rdx, qword [rbp + 0x38]
call fcn.0047e180
jmp 0x47e154
mov rax, qword [rbp + 0xa8]
cmp dword [rax], 1
jae 0x47e0bc
xor rcx, rcx
mov rdx, qword [rbp + 0x38]
call fcn.0047e180
jmp 0x47e154
mov rax, qword [rbp + 0xa8]
mov ecx, dword [rax]
call fcn.00405d70
mov qword [rbp + 0x50], rax
mov rcx, qword [rbp + 0xa0]
call fcn.0040feb0
mov rcx, qword [rbp + 0x68]
mov rdx, rax
xor r8, r8
lea r9, [rbp + 0x4c]
mov rax, qword [rbp + 0x50]
mov qword [rsp + 0x20], rax
mov rax, qword [rbp + 0xa8]
mov qword [rsp + 0x28], rax
call sub.advapi32.dll_RegQueryValueExW_1
test eax, eax
je 0x47e124
call sub.kernel32.dll_GetLastError_2
mov dword [rbp + 0x5c], eax
mov rcx, qword [rbp + 0x50]
call fcn.00405dd0
mov rax, qword [rbp + 0xa8]
mov dword [rax], 0
nop
cmp qword [rbp + 0x68], 0
je 0x47e135
mov rcx, qword [rbp + 0x68]
call sub.advapi32.dll_RegCloseKey_1
cmp qword [rbp + 0x60], 0
je 0x47e145
mov rcx, qword [rbp + 0x60]
call sub.advapi32.dll_RegCloseKey_1
cmp dword [rbp + 0x5c], 0
je 0x47e153
mov ecx, dword [rbp + 0x5c]
call sub.kernel32.dll_SetLastError
nop
lea rcx, [rbp + 0x80]
call fcn.0040e080
lea rcx, [rbp + 0x98]
mov edx, 2
call fcn.0040e160
mov rax, qword [rbp + 0x50]
lea rsp, [rbp + 0x70]
pop rbp
ret
Function at 0x47e260
Capabilities:
Set registry value

Disassembly:
push rbp
push rbx
sub rsp, 0x88
mov rbp, rsp
mov qword [rbp + 0x58], rbp
mov qword [rbp + 0xa0], rcx
mov qword [rbp + 0xa8], rdx
mov dword [rbp + 0xb0], r8d
mov qword [rbp + 0xb8], r9
mov rcx, qword [rbp + 0xa0]
call fcn.0040e210
mov rcx, qword [rbp + 0xb8]
call fcn.0040e210
mov rcx, qword [rbp + 0xc0]
call fcn.0040e210
mov rcx, qword [rbp + 0xc8]
call fcn.0040e210
nop
mov dword [rbp + 0x6c], 0
mov qword [rbp + 0x70], 0
mov qword [rbp + 0x78], 0
nop
cmp qword [rbp + 0xa0], 0
je 0x47e31b
mov rcx, qword [rbp + 0xa0]
call fcn.0040feb0
mov rcx, rax
mov rdx, qword [rbp + 0xa8]
lea r8, [rbp + 0x70]
call sub.advapi32.dll_RegConnectRegistryW
test eax, eax
je 0x47e326
call sub.kernel32.dll_GetLastError_2
mov dword [rbp + 0x6c], eax
xor rcx, rcx
mov rdx, qword [rbp + 0x58]
call fcn.0047e480
jmp 0x47e455
mov rax, qword [rbp + 0xa8]
mov qword [rbp + 0x70], rax
mov rcx, qword [rbp + 0xb8]
call fcn.0040feb0
mov rcx, qword [rbp + 0x70]
mov rdx, rax
xor r8, r8
mov r9d, dword [rbp + 0xb0]
or r9d, 0x20006
lea rax, [rbp + 0x78]
mov qword [rsp + 0x20], rax
call sub.advapi32.dll_RegOpenKeyExW_1
test eax, eax
je 0x47e3ca
mov rcx, qword [rbp + 0xb8]
call fcn.0040feb0
mov rcx, qword [rbp + 0x70]
mov rdx, rax
xor r8, r8
xor r9, r9
mov dword [rsp + 0x20], 0
mov eax, dword [rbp + 0xb0]
or eax, 0x20006
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x30], 0
lea rax, [rbp + 0x78]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], 0
call sub.advapi32.dll_RegCreateKeyExW
test eax, eax
je 0x47e3ca
call sub.kernel32.dll_GetLastError_2
mov dword [rbp + 0x6c], eax
xor rcx, rcx
mov rdx, qword [rbp + 0x58]
call fcn.0047e480
jmp 0x47e455
mov dword [rbp + 0x68], 0
cmp qword [rbp + 0xc8], 0
je 0x47e3e8
mov rax, qword [rbp + 0xc8]
mov eax, dword [rax - 4]
mov dword [rbp + 0x68], eax
mov rcx, qword [rbp + 0xc0]
call fcn.0040feb0
mov rbx, rax
mov rcx, qword [rbp + 0xc8]
call fcn.0040feb0
mov rcx, qword [rbp + 0x78]
mov rdx, rbx
xor r8, r8
mov r9d, 1
mov qword [rsp + 0x20], rax
mov eax, dword [rbp + 0x68]
add eax, eax
mov dword [rsp + 0x28], eax
call sub.advapi32.dll_RegSetValueExW
test eax, eax
je 0x47e433
call sub.kernel32.dll_GetLastError_2
mov dword [rbp + 0x6c], eax
nop
cmp qword [rbp + 0x78], 0
je 0x47e444
mov rcx, qword [rbp + 0x78]
call sub.advapi32.dll_RegCloseKey_1
cmp qword [rbp + 0x70], 0
je 0x47e454
mov rcx, qword [rbp + 0x70]
call sub.advapi32.dll_RegCloseKey_1
nop
lea rcx, [rbp + 0xa0]
call fcn.0040e080
lea rcx, [rbp + 0xb8]
mov edx, 3
call fcn.0040e160
mov eax, dword [rbp + 0x6c]
lea rsp, [rbp + 0x88]
pop rbx
pop rbp
ret
Function at 0x47e900
Capabilities:
Set registry value

Disassembly:
push rbp
add rsp, 0xffffffffffffff80
mov rbp, rsp
mov qword [rbp + 0x58], rbp
mov qword [rbp + 0x90], rcx
mov qword [rbp + 0x98], rdx
mov dword [rbp + 0xa0], r8d
mov qword [rbp + 0xa8], r9
mov rcx, qword [rbp + 0x90]
call fcn.0040e210
mov rcx, qword [rbp + 0xa8]
call fcn.0040e210
mov rcx, qword [rbp + 0xb0]
call fcn.0040e210
nop
mov dword [rbp + 0x6c], 0
mov qword [rbp + 0x70], 0
mov qword [rbp + 0x78], 0
nop
cmp qword [rbp + 0x90], 0
je 0x47e9ab
mov rcx, qword [rbp + 0x90]
call fcn.0040feb0
mov rcx, rax
mov rdx, qword [rbp + 0x98]
lea r8, [rbp + 0x70]
call sub.advapi32.dll_RegConnectRegistryW
test eax, eax
je 0x47e9b6
call sub.kernel32.dll_GetLastError_2
mov dword [rbp + 0x6c], eax
xor rcx, rcx
mov rdx, qword [rbp + 0x58]
call fcn.0047eaf0
jmp 0x47eac1
mov rax, qword [rbp + 0x98]
mov qword [rbp + 0x70], rax
mov rcx, qword [rbp + 0xa8]
call fcn.0040feb0
mov rcx, qword [rbp + 0x70]
mov rdx, rax
xor r8, r8
mov r9d, dword [rbp + 0xa0]
or r9d, 0x20006
lea rax, [rbp + 0x78]
mov qword [rsp + 0x20], rax
call sub.advapi32.dll_RegOpenKeyExW_1
test eax, eax
je 0x47ea57
mov rcx, qword [rbp + 0xa8]
call fcn.0040feb0
mov rcx, qword [rbp + 0x70]
mov rdx, rax
xor r8, r8
xor r9, r9
mov dword [rsp + 0x20], 0
mov eax, dword [rbp + 0xa0]
or eax, 0x20006
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x30], 0
lea rax, [rbp + 0x78]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], 0
call sub.advapi32.dll_RegCreateKeyExW
test eax, eax
je 0x47ea57
call sub.kernel32.dll_GetLastError_2
mov dword [rbp + 0x6c], eax
xor rcx, rcx
mov rdx, qword [rbp + 0x58]
call fcn.0047eaf0
jmp 0x47eac1
mov eax, dword [rbp + 0xb8]
mov dword [rbp + 0x68], eax
mov rcx, qword [rbp + 0xb0]
call fcn.0040feb0
mov rcx, qword [rbp + 0x78]
mov rdx, rax
xor r8, r8
mov r9d, 4
lea rax, [rbp + 0x68]
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x28], 4
call sub.advapi32.dll_RegSetValueExW
test eax, eax
je 0x47ea9f
call sub.kernel32.dll_GetLastError_2
mov dword [rbp + 0x6c], eax
nop
cmp qword [rbp + 0x78], 0
je 0x47eab0
mov rcx, qword [rbp + 0x78]
call sub.advapi32.dll_RegCloseKey_1
cmp qword [rbp + 0x70], 0
je 0x47eac0
mov rcx, qword [rbp + 0x70]
call sub.advapi32.dll_RegCloseKey_1
nop
lea rcx, [rbp + 0x90]
call fcn.0040e080
lea rcx, [rbp + 0xa8]
mov edx, 2
call fcn.0040e160
mov eax, dword [rbp + 0x6c]
lea rsp, [rbp + 0x80]
pop rbp
ret
Function at 0x47eba0
Capabilities:
Query or enumerate registry value

Disassembly:
push rbp
sub rsp, 0x70
mov rbp, rsp
mov qword [rbp + 0x38], rbp
mov qword [rbp + 0x80], rcx
mov qword [rbp + 0x88], rdx
mov dword [rbp + 0x90], r8d
mov qword [rbp + 0x98], r9
mov rcx, qword [rbp + 0x80]
call fcn.0040e210
mov rcx, qword [rbp + 0x98]
call fcn.0040e210
mov rcx, qword [rbp + 0xa0]
call fcn.0040e210
nop
mov eax, dword [rbp + 0xa8]
mov dword [rbp + 0x58], eax
mov dword [rbp + 0x5c], 0
mov qword [rbp + 0x60], 0
mov qword [rbp + 0x68], 0
nop
cmp qword [rbp + 0x80], 0
je 0x47ec54
mov rcx, qword [rbp + 0x80]
call fcn.0040feb0
mov rcx, rax
mov rdx, qword [rbp + 0x88]
lea r8, [rbp + 0x60]
call sub.advapi32.dll_RegConnectRegistryW
test eax, eax
je 0x47ec5f
call sub.kernel32.dll_GetLastError_2
mov dword [rbp + 0x5c], eax
xor rcx, rcx
mov rdx, qword [rbp + 0x38]
call fcn.0047ed60
jmp 0x47ed31
mov rax, qword [rbp + 0x88]
mov qword [rbp + 0x60], rax
mov rcx, qword [rbp + 0x98]
call fcn.0040feb0
mov rcx, qword [rbp + 0x60]
mov rdx, rax
xor r8, r8
mov r9d, dword [rbp + 0x90]
or r9d, 0x20019
lea rax, [rbp + 0x68]
mov qword [rsp + 0x20], rax
call sub.advapi32.dll_RegOpenKeyExW_1
test eax, eax
je 0x47ecae
call sub.kernel32.dll_GetLastError_2
mov dword [rbp + 0x5c], eax
xor rcx, rcx
mov rdx, qword [rbp + 0x38]
call fcn.0047ed60
jmp 0x47ed31
mov dword [rbp + 0x54], 4
mov dword [rbp + 0x50], 4
mov rcx, qword [rbp + 0xa0]
call fcn.0040feb0
mov rcx, qword [rbp + 0x68]
mov rdx, rax
xor r8, r8
lea r9, [rbp + 0x54]
lea rax, [rbp + 0x4c]
mov qword [rsp + 0x20], rax
lea rax, [rbp + 0x50]
mov qword [rsp + 0x28], rax
call sub.advapi32.dll_RegQueryValueExW_1
test eax, eax
jne 0x47ecf9
mov eax, dword [rbp + 0x4c]
mov dword [rbp + 0x58], eax
jmp 0x47ed01
call sub.kernel32.dll_GetLastError_2
mov dword [rbp + 0x5c], eax
nop
cmp qword [rbp + 0x68], 0
je 0x47ed12
mov rcx, qword [rbp + 0x68]
call sub.advapi32.dll_RegCloseKey_1
cmp qword [rbp + 0x60], 0
je 0x47ed22
mov rcx, qword [rbp + 0x60]
call sub.advapi32.dll_RegCloseKey_1
cmp dword [rbp + 0x5c], 0
je 0x47ed30
mov ecx, dword [rbp + 0x5c]
call sub.kernel32.dll_SetLastError
nop
lea rcx, [rbp + 0x80]
call fcn.0040e080
lea rcx, [rbp + 0x98]
mov edx, 2
call fcn.0040e160
mov eax, dword [rbp + 0x58]
lea rsp, [rbp + 0x70]
pop rbp
ret
Function at 0x47ef20
Capabilities:
Enumerate services

Disassembly:
push rbp
push rbx
sub rsp, 0x88
mov rbp, rsp
mov qword [rbp + 0x40], 0
mov qword [rbp + 0x48], rbp
mov qword [rbp + 0xa0], rcx
mov dword [rbp + 0xa8], edx
mov dword [rbp + 0xb0], r8d
mov qword [rbp + 0xb8], r9
mov rcx, qword [rbp + 0xa0]
call fcn.0040e210
nop
mov dword [rbp + 0x64], 0
mov rcx, qword [rbp + 0xa0]
call fcn.0040feb0
mov rcx, rax
xor rdx, rdx
mov r8d, 5
call sub.advapi32.dll_OpenSCManagerW
mov qword [rbp + 0x68], rax
cmp qword [rbp + 0x68], 0
jne 0x47ef9d
call sub.kernel32.dll_GetLastError_2
mov dword [rbp + 0x64], eax
jmp 0x47f114
nop
mov dword [rbp + 0x60], 0
mov qword [rbp + 0x78], 0
mov dword [rbp + 0x54], 0
mov rcx, qword [rbp + 0x68]
mov edx, dword [rbp + 0xa8]
mov r8d, dword [rbp + 0xb0]
mov r9, qword [rbp + 0x78]
mov eax, dword [rbp + 0x60]
mov dword [rsp + 0x20], eax
lea rax, [rbp + 0x74]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x5c]
mov qword [rsp + 0x30], rax
lea rax, [rbp + 0x54]
mov qword [rsp + 0x38], rax
call sub.advapi32.dll_EnumServicesStatusW
mov dword [rbp + 0x54], 0
mov ecx, dword [rbp + 0x74]
call fcn.00405da0
mov qword [rbp + 0x78], rax
nop
mov rcx, qword [rbp + 0x78]
mov edx, dword [rbp + 0x74]
xor r8, r8
call fcn.00408d50
mov eax, dword [rbp + 0x74]
mov dword [rbp + 0x60], eax
mov rcx, qword [rbp + 0x68]
mov edx, dword [rbp + 0xa8]
mov r8d, dword [rbp + 0xb0]
mov r9, qword [rbp + 0x78]
mov eax, dword [rbp + 0x60]
mov dword [rsp + 0x20], eax
lea rax, [rbp + 0x74]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x5c]
mov qword [rsp + 0x30], rax
lea rax, [rbp + 0x54]
mov qword [rsp + 0x38], rax
call sub.advapi32.dll_EnumServicesStatusW
test eax, eax
setne al
test al, al
jne 0x47f083
call sub.kernel32.dll_GetLastError_2
mov dword [rbp + 0x64], eax
xor rcx, rcx
mov rdx, qword [rbp + 0x48]
call fcn.0047f140
xor rcx, rcx
mov rdx, qword [rbp + 0x48]
call fcn.0047f190
jmp 0x47f114
cmp qword [rbp + 0x78], 0
jne 0x47f0a4
xor rcx, rcx
mov rdx, qword [rbp + 0x48]
call fcn.0047f140
xor rcx, rcx
mov rdx, qword [rbp + 0x48]
call fcn.0047f190
jmp 0x47f114
xor rax, rax
mov ebx, dword [rbp + 0x5c]
sub ebx, 1
mov dword [rbp + 0x58], eax
cmp dword [rbp + 0x58], ebx
jg 0x47f0f4
add ebx, 1
lea rcx, [rbp + 0x40]
mov rax, qword [rbp + 0x78]
movsxd rdx, dword [rbp + 0x58]
add rdx, rdx
lea rdx, [rdx + rdx*2]
mov rdx, qword [rax + rdx*8]
call fcn.0040ff50
mov rax, qword [rbp + 0xb8]
mov rax, qword [rax]
mov rcx, rax
mov rdx, qword [rbp + 0x40]
mov rax, qword [rax]
call qword [rax + 0x70]
add dword [rbp + 0x58], 1
cmp dword [rbp + 0x58], ebx
jne 0x47f0b8
nop
nop
cmp qword [rbp + 0x78], 0
je 0x47f109
mov rcx, qword [rbp + 0x78]
mov edx, dword [rbp + 0x74]
call fcn.00405dd0
nop
mov rcx, qword [rbp + 0x68]
call sub.advapi32.dll_CloseServiceHandle
nop
lea rcx, [rbp + 0x40]
call fcn.0040e080
lea rcx, [rbp + 0xa0]
call fcn.0040e080
mov eax, dword [rbp + 0x64]
lea rsp, [rbp + 0x88]
pop rbx
pop rbp
ret
Function at 0x47f200
Capabilities:
Delete service

Disassembly:
push rbp
sub rsp, 0x50
mov rbp, rsp
mov qword [rbp + 0x28], rbp
mov qword [rbp + 0x60], rcx
mov qword [rbp + 0x68], rdx
mov rcx, qword [rbp + 0x60]
call fcn.0040e210
mov rcx, qword [rbp + 0x68]
call fcn.0040e210
nop
mov dword [rbp + 0x3c], 0
mov qword [rbp + 0x48], 0
mov qword [rbp + 0x40], 0
nop
mov rcx, qword [rbp + 0x60]
call fcn.0040feb0
mov rcx, rax
xor rdx, rdx
mov r8d, 0xf003f
call sub.advapi32.dll_OpenSCManagerW
mov qword [rbp + 0x48], rax
cmp qword [rbp + 0x48], 0
jne 0x47f27e
call sub.kernel32.dll_GetLastError_2
mov dword [rbp + 0x3c], eax
xor rcx, rcx
mov rdx, qword [rbp + 0x28]
call fcn.0047f320
jmp 0x47f305
mov rcx, qword [rbp + 0x68]
call fcn.0040feb0
mov rcx, qword [rbp + 0x48]
mov rdx, rax
mov r8d, 0xf01ff
call sub.advapi32.dll_OpenServiceW
mov qword [rbp + 0x40], rax
cmp qword [rbp + 0x40], 0
jne 0x47f2bb
call sub.kernel32.dll_GetLastError_2
mov dword [rbp + 0x3c], eax
xor rcx, rcx
mov rdx, qword [rbp + 0x28]
call fcn.0047f320
jmp 0x47f305
mov rcx, qword [rbp + 0x40]
call sub.advapi32.dll_DeleteService
test eax, eax
setne al
test al, al
jne 0x47f2e3
call sub.kernel32.dll_GetLastError_2
mov dword [rbp + 0x3c], eax
xor rcx, rcx
mov rdx, qword [rbp + 0x28]
call fcn.0047f320
jmp 0x47f305
nop
cmp qword [rbp + 0x48], 0
je 0x47f2f4
mov rcx, qword [rbp + 0x48]
call sub.advapi32.dll_CloseServiceHandle
cmp qword [rbp + 0x40], 0
je 0x47f304
mov rcx, qword [rbp + 0x40]
call sub.advapi32.dll_CloseServiceHandle
nop
lea rcx, [rbp + 0x60]
mov edx, 2
call fcn.0040e160
mov eax, dword [rbp + 0x3c]
lea rsp, [rbp + 0x50]
pop rbp
ret
Function at 0x47f3b0
Capabilities:
Stop service

Disassembly:
push rbp
sub rsp, 0x60
mov rbp, rsp
mov qword [rbp + 0x28], rbp
mov qword [rbp + 0x70], rcx
mov qword [rbp + 0x78], rdx
mov rcx, qword [rbp + 0x70]
call fcn.0040e210
mov rcx, qword [rbp + 0x78]
call fcn.0040e210
nop
mov dword [rbp + 0x4c], 0
mov qword [rbp + 0x58], 0
mov qword [rbp + 0x50], 0
nop
mov rcx, qword [rbp + 0x70]
call fcn.0040feb0
mov rcx, rax
xor rdx, rdx
mov r8d, 0xf003f
call sub.advapi32.dll_OpenSCManagerW
mov qword [rbp + 0x58], rax
cmp qword [rbp + 0x58], 0
jne 0x47f42e
call sub.kernel32.dll_GetLastError_2
mov dword [rbp + 0x4c], eax
xor rcx, rcx
mov rdx, qword [rbp + 0x28]
call fcn.0047f4f0
jmp 0x47f4d1
mov rcx, qword [rbp + 0x78]
call fcn.0040feb0
mov rcx, qword [rbp + 0x58]
mov rdx, rax
mov r8d, 0x20
call sub.advapi32.dll_OpenServiceW
mov qword [rbp + 0x50], rax
cmp qword [rbp + 0x50], 0
jne 0x47f46b
call sub.kernel32.dll_GetLastError_2
mov dword [rbp + 0x4c], eax
xor rcx, rcx
mov rdx, qword [rbp + 0x28]
call fcn.0047f4f0
jmp 0x47f4d1
lea rcx, [rbp + 0x30]
mov edx, 0x1c
xor r8, r8
call fcn.00408d50
mov rcx, qword [rbp + 0x50]
mov edx, 1
lea r8, [rbp + 0x30]
call sub.advapi32.dll_ControlService
test eax, eax
setne al
test al, al
jne 0x47f4af
call sub.kernel32.dll_GetLastError_2
mov dword [rbp + 0x4c], eax
xor rcx, rcx
mov rdx, qword [rbp + 0x28]
call fcn.0047f4f0
jmp 0x47f4d1
nop
cmp qword [rbp + 0x58], 0
je 0x47f4c0
mov rcx, qword [rbp + 0x58]
call sub.advapi32.dll_CloseServiceHandle
cmp qword [rbp + 0x50], 0
je 0x47f4d0
mov rcx, qword [rbp + 0x50]
call sub.advapi32.dll_CloseServiceHandle
nop
lea rcx, [rbp + 0x70]
mov edx, 2
call fcn.0040e160
mov eax, dword [rbp + 0x4c]
lea rsp, [rbp + 0x60]
pop rbp
ret
Function at 0x47f580
Capabilities:
Start service

Disassembly:
push rbp
sub rsp, 0x50
mov rbp, rsp
mov qword [rbp + 0x28], rbp
mov qword [rbp + 0x60], rcx
mov qword [rbp + 0x68], rdx
mov rcx, qword [rbp + 0x60]
call fcn.0040e210
mov rcx, qword [rbp + 0x68]
call fcn.0040e210
nop
mov dword [rbp + 0x3c], 0
mov qword [rbp + 0x48], 0
mov qword [rbp + 0x40], 0
nop
mov rcx, qword [rbp + 0x60]
call fcn.0040feb0
mov rcx, rax
xor rdx, rdx
mov r8d, 0xf003f
call sub.advapi32.dll_OpenSCManagerW
mov qword [rbp + 0x48], rax
cmp qword [rbp + 0x48], 0
jne 0x47f5fe
call sub.kernel32.dll_GetLastError_2
mov dword [rbp + 0x3c], eax
xor rcx, rcx
mov rdx, qword [rbp + 0x28]
call fcn.0047f6b0
jmp 0x47f694
mov rcx, qword [rbp + 0x68]
call fcn.0040feb0
mov rcx, qword [rbp + 0x48]
mov rdx, rax
mov r8d, 0x10
call sub.advapi32.dll_OpenServiceW
mov qword [rbp + 0x40], rax
cmp qword [rbp + 0x40], 0
jne 0x47f63b
call sub.kernel32.dll_GetLastError_2
mov dword [rbp + 0x3c], eax
xor rcx, rcx
mov rdx, qword [rbp + 0x28]
call fcn.0047f6b0
jmp 0x47f694
mov qword [rbp + 0x30], 0
mov rcx, qword [rbp + 0x40]
xor rdx, rdx
lea r8, [rbp + 0x30]
call sub.advapi32.dll_StartServiceW
test eax, eax
setne al
test al, al
jne 0x47f672
call sub.kernel32.dll_GetLastError_2
mov dword [rbp + 0x3c], eax
xor rcx, rcx
mov rdx, qword [rbp + 0x28]
call fcn.0047f6b0
jmp 0x47f694
nop
cmp qword [rbp + 0x48], 0
je 0x47f683
mov rcx, qword [rbp + 0x48]
call sub.advapi32.dll_CloseServiceHandle
cmp qword [rbp + 0x40], 0
je 0x47f693
mov rcx, qword [rbp + 0x40]
call sub.advapi32.dll_CloseServiceHandle
nop
lea rcx, [rbp + 0x60]
mov edx, 2
call fcn.0040e160
mov eax, dword [rbp + 0x3c]
lea rsp, [rbp + 0x50]
pop rbp
ret