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

Disassembly:
mov qword [rsp + 8], rcx
push rsi
push rdi
sub rsp, 0x88
mov rax, qword [0x180157688]
mov qword [rsp + 0x78], rax
lea rax, [rsp + 0x40]
lea rcx, [0x180131ba8]
mov rdi, rax
mov rsi, rcx
mov ecx, 0x10
rep movsb byte [rdi], byte [rsi]
mov dword [rsp + 0x58], 0
mov qword [rsp + 0x50], 0
call qword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x30]
and eax, 0x80000000
test eax, eax
je 0x1801041a2
xor eax, eax
jmp 0x180104303
mov eax, dword [rsp + 0x30]
and rax, 0xffff
movzx eax, ax
and rax, 0xff
movzx eax, al
cmp eax, 4
jle 0x1801041c7
mov eax, 1
jmp 0x180104303
lea r8, [rsp + 0x50]
lea rdx, [0x180131bb8]
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test eax, eax
jne 0x1801042ff
mov dword [rsp + 0x60], 0
mov dword [rsp + 0x5c], 0
lea rax, [rsp + 0x5c]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x60]
xor r8d, r8d
lea rdx, [0x180131be8]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x1801042f4
cmp dword [rsp + 0x5c], 0
je 0x1801042f4
mov eax, dword [rsp + 0x5c]
mov rdx, rax
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov qword [rsp + 0x68], rax
cmp qword [rsp + 0x68], 0
je 0x1801042f4
lea rax, [rsp + 0x5c]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x60]
xor r8d, r8d
lea rdx, [0x180131bf8]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x1801042e9
cmp dword [rsp + 0x60], 7
jne 0x1801042e9
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x70]
movsx eax, byte [rax]
test eax, eax
je 0x1801042e9
lea rdx, [rsp + 0x40]
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
jne 0x1801042c8
mov dword [rsp + 0x58], 1
jmp 0x1801042e9
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
cdqe
mov rcx, qword [rsp + 0x70]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x70], rax
jmp 0x18010429e
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [rsp + 0x58]
mov rcx, qword [rsp + 0x78]
call fcn.180124250
add rsp, 0x88
pop rdi
pop rsi
ret
Function at 0x180105290
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x260
mov rax, qword [0x180157688]
mov qword [rsp + 0x250], rax
mov dword [rsp + 0x20], 0
mov rcx, qword [rsp + 0x270]
call fcn.1801072c0
test eax, eax
jne 0x1801052d4
mov eax, 0x57
jmp 0x180105450
mov rax, qword [rsp + 0x270]
cmp dword [rax + 0x14], 1
jne 0x18010540e
mov dword [rsp + 0x240], 0
mov word [rsp + 0x30], 0
lea rax, [rsp + 0x32]
mov rdi, rax
xor eax, eax
mov ecx, 0x206
rep stosb byte [rdi], al
mov dword [rsp + 0x244], 0
mov edx, 0x104
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov dword [rsp + 0x240], eax
cmp dword [rsp + 0x240], 0
je 0x18010538b
mov rax, qword [rsp + 0x270]
mov rax, qword [rax + 8]
lea r8, [rsp + 0x244]
mov rdx, qword [rsp + 0x278]
mov rcx, rax
call fcn.18010ca10
mov dword [rsp + 0x248], eax
cmp dword [rsp + 0x244], 1
jne 0x180105389
mov rdx, qword [rsp + 0x278]
mov rcx, qword [rsp + 0x270]
call fcn.180105c70
mov eax, 0x15
jmp 0x180105450
jmp 0x180105397
lea rcx, str.CDriverManager::RegisterDriver9X___Cant_get_system_dir_n
call fcn.1801045e0
mov rax, qword [rsp + 0x270]
mov rax, qword [rax]
mov rcx, rax
call fcn.18010a780
mov dword [rsp + 0x20], eax
cmp dword [rsp + 0x20], 0
je 0x1801053bf
cmp dword [rsp + 0x20], 0x431
jne 0x18010540e
mov dword [rsp + 0x24c], 0
mov rax, qword [rsp + 0x270]
mov rax, qword [rax]
lea r8, [rsp + 0x24c]
mov rcx, qword [rsp + 0x270]
mov edx, dword [rcx + 0x10]
mov rcx, rax
call fcn.180107890
mov dword [rsp + 0x20], eax
cmp dword [rsp + 0x20], 0
jne 0x18010540e
mov edx, dword [rsp + 0x24c]
lea rcx, str.CDriverManager::RegisterDriver9X___Install_Value_is_0x_x_n
call fcn.1801045e0
cmp dword [rsp + 0x20], 0
jne 0x18010542f
mov rax, qword [rsp + 0x270]
mov rdx, qword [rax + 0x68]
lea rcx, str.CDriverManager::RegisterDriver9X__s____SUCCESS_n
call fcn.1801045e0
jmp 0x18010544c
mov r8d, dword [rsp + 0x20]
mov rax, qword [rsp + 0x270]
mov rdx, qword [rax + 0x68]
lea rcx, str.CDriverManager::RegisterDriver9X__s____FAIL___ERROR:_d__n
call fcn.1801045e0
mov eax, dword [rsp + 0x20]
mov rcx, qword [rsp + 0x250]
call fcn.180124250
add rsp, 0x260
pop rdi
ret
Function at 0x1801066f0
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x710
mov qword [rsp + 0x6e8], 0xfffffffffffffffe
mov rax, qword [0x180157688]
mov qword [rsp + 0x700], rax
mov dword [rsp + 0x250], 0
mov word [rsp + 0x260], 0
lea rax, [rsp + 0x262]
mov rdi, rax
xor eax, eax
mov ecx, 0x206
rep stosb byte [rdi], al
mov word [rsp + 0x40], 0
lea rax, [rsp + 0x42]
mov rdi, rax
xor eax, eax
mov ecx, 0x206
rep stosb byte [rdi], al
mov qword [rsp + 0x30], 0
mov ecx, 0x28
call sub.msvcrt.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__
mov qword [rsp + 0x6d0], rax
cmp qword [rsp + 0x6d0], 0
je 0x1801067a2
mov rax, qword [rsp + 0x720]
mov rdx, qword [rax + 0x60]
mov rcx, qword [rsp + 0x6d0]
call fcn.18010bfe0
mov qword [rsp + 0x6f0], rax
jmp 0x1801067ae
mov qword [rsp + 0x6f0], 0
mov rax, qword [rsp + 0x6f0]
mov qword [rsp + 0x6c8], rax
mov rax, qword [rsp + 0x6c8]
mov qword [rsp + 0x30], rax
cmp qword [rsp + 0x30], 0
jne 0x1801067dd
mov eax, 2
jmp 0x1801068e3
mov edx, 0x104
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x18010685e
lea rax, str.AMonLWLH.sys
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x40]
lea r8, str._wsdrivers_ws
mov edx, 0x103
lea rcx, [rsp + 0x260]
call fcn.180003110
lea rdx, [rsp + 0x470]
lea rcx, [rsp + 0x260]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov qword [rsp + 0x6c0], rax
cmp qword [rsp + 0x6c0], 0xffffffffffffffff
jne 0x180106850
mov rcx, qword [rsp + 0x30]
call fcn.18010c2a0
jmp 0x18010685e
mov rcx, qword [rsp + 0x6c0]
call qword [sym.imp.KERNEL32.dll_FindClose]
mov rcx, qword [rsp + 0x30]
call fcn.18010c2f0
movzx eax, al
test eax, eax
jne 0x18010688c
mov rax, qword [rsp + 0x720]
mov rdx, qword [rax + 0x60]
mov rcx, qword [rsp + 0x30]
call fcn.18010c250
mov dword [rsp + 0x250], eax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x6e0], rax
mov rax, qword [rsp + 0x6e0]
mov qword [rsp + 0x6d8], rax
cmp qword [rsp + 0x6d8], 0
je 0x1801068d0
mov edx, 1
mov rcx, qword [rsp + 0x6d8]
call fcn.180107300
mov qword [rsp + 0x6f8], rax
jmp 0x1801068dc
mov qword [rsp + 0x6f8], 0
mov eax, dword [rsp + 0x250]
mov rcx, qword [rsp + 0x700]
call fcn.180124250
add rsp, 0x710
pop rdi
ret
Function at 0x180108060
Capabilities:
Modify service

Disassembly:
mov qword [rsp + 0x20], r9
mov dword [rsp + 0x18], r8d
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
sub rsp, 0x88
mov dword [rsp + 0x7c], 0
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x70], 0
mov dword [rsp + 0x78], 0
mov qword [rsp + 0x68], 0
lea rcx, str.CDriverRegistry::ChangeService___ENTER_n
call fcn.1801045e0
mov r8d, 0xf003f
xor edx, edx
xor ecx, ecx
call qword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov qword [rsp + 0x60], rax
cmp qword [rsp + 0x60], 0
je 0x1801081ed
mov r8d, 0xf01ff
mov rdx, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov qword [rsp + 0x70], rax
cmp qword [rsp + 0x70], 0
je 0x1801081e0
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.ADVAPI32.dll_LockServiceDatabase]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x48], 0
mov qword [rsp + 0x40], 0
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0xb8]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0x20], rax
mov r9d, 0xffffffff
mov r8d, dword [rsp + 0xa0]
mov edx, dword [rsp + 0x98]
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.ADVAPI32.dll_ChangeServiceConfigW]
mov dword [rsp + 0x78], eax
cmp dword [rsp + 0x78], 0
jne 0x18010819a
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str.CDriverRegistry::ChangeService___LastError__d___but_continue_n
call fcn.1801045e0
cmp qword [rsp + 0x68], 0
je 0x1801081d5
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.ADVAPI32.dll_UnlockServiceDatabase]
mov dword [rsp + 0x78], eax
cmp dword [rsp + 0x78], 0
jne 0x1801081cc
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str.CDriverRegistry::ChangeService___Cant_unlock_the_SCM_Database__d__n
call fcn.1801045e0
mov qword [rsp + 0x68], 0
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
jmp 0x1801081f7
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x7c], eax
lea rcx, str.CDriverRegistry::ChangeService___EXIT_n
call fcn.1801045e0
mov eax, dword [rsp + 0x7c]
add rsp, 0x88
ret
Function at 0x18010bd40
Capabilities:
Query or enumerate registry value

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x38
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x20], rax
mov r9, qword [rsp + 0x50]
xor r8d, r8d
mov rdx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x40]
mov rcx, qword [rax]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
add rsp, 0x38
ret

Function at 0x18010bd90
Capabilities:
Set registry value

Disassembly:
mov qword [rsp + 0x20], r9
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x48
mov rcx, qword [rsp + 0x50]
call fcn.18010bc60
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x70]
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x20], rax
mov r9d, dword [rsp + 0x60]
xor r8d, r8d
mov rdx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x50]
mov rcx, qword [rax]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov dword [rsp + 0x38], eax
cmp qword [rsp + 0x30], 0xffffffffffffffff
je 0x18010bdfb
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [rsp + 0x38]
add rsp, 0x48
ret

Function at 0x18010be10
Capabilities:
Delete registry value

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x28
mov rdx, qword [rsp + 0x38]
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax]
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
add rsp, 0x28
ret

Function at 0x18010bf60
Capabilities:
Set registry value

Disassembly:
mov qword [rsp + 0x20], r9
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x38
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x20], rax
mov r9d, dword [rsp + 0x50]
xor r8d, r8d
mov rdx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x40]
mov rcx, qword [rax]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
add rsp, 0x38
ret

Function at 0x18010bfb0
Capabilities:
Delete registry key

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x28
mov rdx, qword [rsp + 0x38]
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax]
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
add rsp, 0x28
ret
Function at 0x18010e190
Capabilities:
Query or enumerate registry value

Disassembly:
push rsi
push rdi
sub rsp, 0x88
mov rax, qword [0x180157688]
mov qword [rsp + 0x78], rax
lea rax, [rsp + 0x40]
lea rcx, [0x180136ac8]
mov rdi, rax
mov rsi, rcx
mov ecx, 0x10
rep movsb byte [rdi], byte [rsi]
mov dword [rsp + 0x58], 0
mov qword [rsp + 0x50], 0
call qword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x30]
and eax, 0x80000000
test eax, eax
je 0x18010e1ee
xor eax, eax
jmp 0x18010e34f
mov eax, dword [rsp + 0x30]
and rax, 0xffff
movzx eax, ax
and rax, 0xff
movzx eax, al
cmp eax, 4
jle 0x18010e213
mov eax, 1
jmp 0x18010e34f
lea r8, [rsp + 0x50]
lea rdx, [0x180136ad8]
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test eax, eax
jne 0x18010e34b
mov dword [rsp + 0x60], 0
mov dword [rsp + 0x5c], 0
lea rax, [rsp + 0x5c]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x60]
xor r8d, r8d
lea rdx, [0x180136b08]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x18010e340
cmp dword [rsp + 0x5c], 0
je 0x18010e340
mov eax, dword [rsp + 0x5c]
mov rdx, rax
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov qword [rsp + 0x68], rax
cmp qword [rsp + 0x68], 0
je 0x18010e340
lea rax, [rsp + 0x5c]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x60]
xor r8d, r8d
lea rdx, [0x180136b18]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x18010e335
cmp dword [rsp + 0x60], 7
jne 0x18010e335
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x70]
movsx eax, byte [rax]
test eax, eax
je 0x18010e335
lea rdx, [rsp + 0x40]
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
jne 0x18010e314
mov dword [rsp + 0x58], 1
jmp 0x18010e335
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
cdqe
mov rcx, qword [rsp + 0x70]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x70], rax
jmp 0x18010e2ea
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [rsp + 0x58]
mov rcx, qword [rsp + 0x78]
call fcn.180124250
add rsp, 0x88
pop rdi
pop rsi
ret
Function at 0x18010e6c0
Capabilities:
Terminate process

Disassembly:
mov rax, rsp
sub rsp, 0x68
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rdi, rcx
lea rsi, [0x1801580b0]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_RtlCaptureContext]
mov rbx, qword [0x1801581a8]
lea rdx, [rsp + 0x70]
mov rcx, rbx
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_RtlLookupFunctionEntry]
test rax, rax
je 0x18010e741
mov rdx, qword [rsp + 0x70]
mov qword [rsp + 0x38], 0
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x30], rcx
lea rcx, [rsp + 0x48]
mov r9, rax
mov qword [rsp + 0x28], rcx
xor ecx, ecx
mov r8, rbx
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_RtlVirtualUnwind]
mov r11, qword [0x1801581a8]
jmp 0x18010e75d
mov r11, qword [rsp + 0x68]
lea rax, [rsp + 0x68]
add rax, 8
mov qword [0x1801581a8], r11
mov qword [0x180158148], rax
mov rax, qword [0x180157688]
mov qword [0x180158020], r11
mov qword [0x180158130], rdi
mov dword [0x180158010], 0xc0000409
mov dword [0x180158014], 1
mov qword [rsp + 0x50], rax
mov rax, qword [0x180157680]
xor ecx, ecx
mov qword [rsp + 0x50], rax
call qword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
lea rcx, [0x180136b28]
call qword [sym.imp.KERNEL32.dll_UnhandledExceptionFilter]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov edx, 0xc0000409
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
mov rdi, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x80]
mov rbx, qword [rsp + 0x78]
add rsp, 0x68
ret
cmp rcx, qword [0x180157688]
jne 0x180124269
rol rcx, 0x10
test cx, 0xffff
jne 0x180124265
ret
ror rcx, 0x10
jmp 0x18010e6c0

Function at 0x18010e980
Capabilities:
Get common file path

Disassembly:
mov dword [rsp + 8], ecx
sub rsp, 0x268
mov rax, qword [0x180157688]
mov qword [rsp + 0x250], rax
mov edx, 0x104
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
jne 0x18010e9da
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x248], eax
mov edx, dword [rsp + 0x248]
lea rcx, str.AhnRgh_Register_GetSystemDirectory_Error
call fcn.18010eab0
mov eax, dword [rsp + 0x248]
jmp 0x18010ea93
lea r8, str.drivers
mov edx, 0x104
lea rcx, [rsp + 0x30]
call fcn.1800032a0
mov dword [rsp + 0x240], eax
cmp dword [rsp + 0x240], 0
je 0x18010ea30
mov ecx, dword [rsp + 0x240]
call fcn.18010eac0
mov dword [rsp + 0x248], eax
mov edx, dword [rsp + 0x248]
lea rcx, str.AhnRgh_Register_StringCchCat_drivers_Error
call fcn.18010eab0
mov eax, dword [rsp + 0x248]
jmp 0x18010ea93
lea rdx, [0x180137228]
lea rcx, [rsp + 0x30]
call fcn.18010ee30
mov dword [rsp + 0x248], eax
cmp dword [rsp + 0x248], 0x431
jne 0x18010ea60
mov dword [rsp + 0x248], 0
cmp dword [rsp + 0x248], 0
je 0x18010ea73
mov eax, dword [rsp + 0x248]
jmp 0x18010ea93
lea r8, [rsp + 0x244]
mov edx, 1
mov ecx, dword [rsp + 0x270]
call fcn.18010eb10
mov eax, dword [rsp + 0x248]
mov rcx, qword [rsp + 0x250]
call fcn.180124250
add rsp, 0x268
ret
Function at 0x18010ee30
Capabilities:
Delete registry value
Persist via windows service
Set registry value

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x278
mov rax, qword [0x180157688]
mov qword [rsp + 0x268], rax
cmp qword [rsp + 0x280], 0
je 0x18010ee66
cmp qword [rsp + 0x288], 0
jne 0x18010ee70
mov eax, 0x57
jmp 0x18010f073
mov rdx, qword [rsp + 0x288]
mov rcx, qword [rsp + 0x280]
call fcn.18010f090
mov dword [rsp + 0x260], eax
cmp dword [rsp + 0x260], 0x430
jne 0x18010f06c
mov rax, qword [rsp + 0x288]
mov qword [rsp + 0x20], rax
lea r9, [0x180136d90]
lea r8, [0x180136dd8]
mov edx, 0x104
lea rcx, [rsp + 0x40]
call fcn.180003110
mov dword [rsp + 0x30], eax
cmp dword [rsp + 0x30], 0
je 0x18010eef3
mov ecx, dword [rsp + 0x30]
call fcn.18010eac0
mov edx, eax
lea rcx, [0x180136df0]
call fcn.18010eab0
mov eax, 0x430
jmp 0x18010f073
lea r8, [rsp + 0x250]
lea rdx, [rsp + 0x40]
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
mov dword [rsp + 0x260], eax
cmp dword [rsp + 0x260], 0
jne 0x18010f04e
mov dword [rsp + 0x34], 3
mov ecx, 1
call fcn.18010f750
mov qword [rsp + 0x258], rax
mov dword [rsp + 0x28], 4
lea rax, [rsp + 0x34]
mov qword [rsp + 0x20], rax
mov r9d, 4
xor r8d, r8d
lea rdx, [0x180136e38]
mov rcx, qword [rsp + 0x250]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov dword [rsp + 0x260], eax
cmp qword [rsp + 0x258], 0xffffffffffffffff
je 0x18010ef8c
mov rcx, qword [rsp + 0x258]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [rsp + 0x260], 0
jne 0x18010f020
mov ecx, 1
call fcn.18010f750
mov qword [rsp + 0x258], rax
lea rdx, [0x180136e48]
mov rcx, qword [rsp + 0x250]
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
mov dword [rsp + 0x260], eax
cmp qword [rsp + 0x258], 0xffffffffffffffff
je 0x18010efe1
mov rcx, qword [rsp + 0x258]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [rsp + 0x260], 2
jne 0x18010eff6
mov dword [rsp + 0x260], 0
cmp dword [rsp + 0x260], 0
je 0x18010f01e
mov edx, dword [rsp + 0x260]
lea rcx, str.RegisterCommonFilter_RegDeleteValue_Error
call fcn.18010eab0
mov dword [rsp + 0x260], 0x430
jmp 0x18010f03e
mov edx, dword [rsp + 0x260]
lea rcx, str.RegisterCommonFilter_RegSetValueEx_Error
call fcn.18010eab0
mov dword [rsp + 0x260], 0x430
mov rcx, qword [rsp + 0x250]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x18010f06c
mov edx, dword [rsp + 0x260]
lea rcx, [0x180136f20]
call fcn.18010eab0
mov dword [rsp + 0x260], 0x430
mov eax, dword [rsp + 0x260]
mov rcx, qword [rsp + 0x268]
call fcn.180124250
add rsp, 0x278
ret
Function at 0x18010f2e0
Capabilities:
Persist via windows service
Set registry value

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x278
mov rax, qword [0x180157688]
mov qword [rsp + 0x268], rax
cmp qword [rsp + 0x280], 0
jne 0x18010f310
mov eax, 0x57
jmp 0x18010f525
mov rcx, qword [rsp + 0x280]
call fcn.18010f540
mov dword [rsp + 0x260], eax
cmp dword [rsp + 0x260], 0x430
jne 0x18010f51e
mov rax, qword [rsp + 0x280]
mov qword [rsp + 0x20], rax
lea r9, [0x180136f70]
lea r8, [0x180136fb8]
mov edx, 0x104
lea rcx, [rsp + 0x40]
call fcn.180003110
mov dword [rsp + 0x30], eax
cmp dword [rsp + 0x30], 0
je 0x18010f38b
mov ecx, dword [rsp + 0x30]
call fcn.18010eac0
mov edx, eax
lea rcx, str.RegisterCommonFilter_wsprintf_Error
call fcn.18010eab0
mov eax, 0x430
jmp 0x18010f525
lea r8, [rsp + 0x250]
lea rdx, [rsp + 0x40]
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
mov dword [rsp + 0x260], eax
cmp dword [rsp + 0x260], 0
jne 0x18010f500
mov dword [rsp + 0x264], 1
mov ecx, 1
call fcn.18010f750
mov qword [rsp + 0x258], rax
mov dword [rsp + 0x28], 4
lea rax, [rsp + 0x264]
mov qword [rsp + 0x20], rax
mov r9d, 4
xor r8d, r8d
lea rdx, [0x180137018]
mov rcx, qword [rsp + 0x250]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov dword [rsp + 0x260], eax
cmp qword [rsp + 0x258], 0xffffffffffffffff
je 0x18010f42a
mov rcx, qword [rsp + 0x258]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [rsp + 0x260], 0
jne 0x18010f4d2
mov dword [rsp + 0x264], 4
mov ecx, 1
call fcn.18010f750
mov qword [rsp + 0x258], rax
mov dword [rsp + 0x28], 4
lea rax, [rsp + 0x264]
mov qword [rsp + 0x20], rax
mov r9d, 4
xor r8d, r8d
lea rdx, [0x180137030]
mov rcx, qword [rsp + 0x250]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov dword [rsp + 0x260], eax
cmp qword [rsp + 0x258], 0xffffffffffffffff
je 0x18010f4a8
mov rcx, qword [rsp + 0x258]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [rsp + 0x260], 0
je 0x18010f4d0
mov edx, dword [rsp + 0x260]
lea rcx, str.RegisterCommonFilter_RegSetValueEx_Start_Error
call fcn.18010eab0
mov dword [rsp + 0x260], 0x430
jmp 0x18010f4f0
mov edx, dword [rsp + 0x260]
lea rcx, str.RegisterCommonFilter_RegSetValueEx_DeleteFlag_Error
call fcn.18010eab0
mov dword [rsp + 0x260], 0x430
mov rcx, qword [rsp + 0x250]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x18010f51e
mov edx, dword [rsp + 0x260]
lea rcx, str.RegisterCommonFilter_RegOpenKey_Error
call fcn.18010eab0
mov dword [rsp + 0x260], 0x430
mov eax, dword [rsp + 0x260]
mov rcx, qword [rsp + 0x268]
call fcn.180124250
add rsp, 0x278
ret
Function at 0x180110134
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
test rcx, rcx
mov r8, rcx
mov dword [rsp + 8], 0
mov dword [rsp + 0xc], 0x9908b0df
jne 0x18011014f
xor eax, eax
ret
mov r9d, 0xe3
mov r10, rcx
mov r11, r9
mov edx, dword [r10 + 4]
xor edx, dword [r10]
btr edx, 0x1f
xor edx, dword [r10]
mov eax, edx
shr edx, 1
and eax, 1
mov ecx, dword [rsp + rax*4 + 8]
xor ecx, edx
xor ecx, dword [r10 + 0x634]
mov dword [r10], ecx
add r10, 4
dec r11
jne 0x18011015b
mov edx, dword [r8 + r9*4 + 4]
xor edx, dword [r8 + r9*4]
btr edx, 0x1f
xor edx, dword [r8 + r9*4]
mov eax, edx
shr edx, 1
and eax, 1
mov ecx, dword [rsp + rax*4 + 8]
xor ecx, edx
xor ecx, dword [r8 + r9*4 - 0x38c]
mov dword [r8 + r9*4], ecx
inc r9
cmp r9, 0x26f
jl 0x180110189
mov edx, dword [r8 + 0x9bc]
xor edx, dword [r8]
btr edx, 0x1f
xor edx, dword [r8 + 0x9bc]
mov eax, edx
shr edx, 1
and eax, 1
mov ecx, dword [rsp + rax*4 + 8]
xor ecx, dword [r8 + 0x630]
xor ecx, edx
mov dword [r8 + 0x9bc], ecx
mov ecx, dword [r8]
mov eax, ecx
shr eax, 0xb
xor ecx, eax
mov eax, ecx
and eax, 0xff3a58ad
shl eax, 7
xor ecx, eax
mov eax, ecx
and eax, 0xffffdf8c
shl eax, 0xf
xor ecx, eax
mov eax, ecx
shr eax, 0x12
xor eax, ecx
ret

Function at 0x180110288
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rdi
sub rsp, 0x38
test rcx, rcx
mov rbx, r8
je 0x180110303
test rdx, rdx
je 0x180110303
test r8, r8
je 0x180110303
sub rcx, rdx
mov r9d, 0x10
sub r8, rdx
mov al, byte [rcx + rdx]
xor al, byte [rdx]
mov byte [r8 + rdx], al
inc rdx
dec r9
jne 0x1801102ad
lea edi, [r9 + 5]
lea rcx, [rsp + 0x20]
mov r8d, 0x10
mov rdx, rbx
call fcn.180114968
mov r11d, dword [rsp + 0x28]
mov eax, dword [rsp + 0x2c]
xor dword [rsp + 0x20], r11d
xor dword [rsp + 0x24], eax
lea rdx, [rsp + 0x20]
mov r8d, 0x10
mov rcx, rbx
call sub.msvcrt.dll_memcpy
dec rdi
jne 0x1801102c2
xor eax, eax
jmp 0x180110308
mov eax, 0x57
add rsp, 0x38
pop rdi
pop rbx
ret