joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14000ed49
Capabilities:
Access peb ldr_data
Get process filename

Disassembly:
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x50]
mov qword [rsp + 0x28], rax
cmp qword [rsp + 0x28], 0
jne 0x14000dff3
jmp 0x14001002d
mov rcx, qword [rsp + 0x70]
call fcn.14000e3bc
jmp 0x14000d53d
movsxd rax, dword [rsp + 0x20]
mov rcx, qword [rsp + 0x28]
movzx eax, word [rcx + rax*2]
cmp eax, 0x5c
je 0x14000e778
jmp 0x14000ab8d
jmp 0x14000f1ba
test eax, eax
jne 0x14001002d
jmp 0x14000d992
movsxd rax, dword [rsp + 0x20]
mov rcx, qword [rsp + 0x28]
movzx eax, word [rcx + rax*2]
test eax, eax
jne 0x14000aa72
jmp 0x14000aa10
xor r9d, r9d
mov r8d, eax
mov rdx, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x38]
call fcn.14000bdce
jmp 0x14000bdc1
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x30]
mov qword [rsp + 0x48], rax
jmp 0x14000db3c
mov rax, qword [rsp + 0x48]
add rsp, 0x68
ret
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x48], 0
jmp 0x140009cfb
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x20], 0
jmp 0x14000cf40
movsxd rax, dword [rsp + 0x20]
mov rcx, qword [rsp + 0x28]
lea rax, [rcx + rax*2 + 2]
mov qword [rsp + 0x38], rax
jmp 0x14000f1ba
mov qword [rsp + 8], rcx
sub rsp, 0x68
mov rax, qword gs:[0x60]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x50]
mov rax, qword [rax + 0x18]
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x58]
mov rax, qword [rax + 0x20]
sub rax, 0x10
jmp 0x14000de7a
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x20], eax
movsxd rax, dword [rsp + 0x20]
mov rcx, qword [rsp + 0x28]
movzx eax, word [rcx + rax*2]
test eax, eax
jne 0x14000aa72
jmp 0x14000aa10
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x10]
sub rax, 0x10
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x40]
cmp qword [rsp + 0x30], rax
jne 0x140009cfb
jmp 0x14000db3c
Function at 0x1400172a8
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
xor esi, esi
mov rbx, rcx
cmp qword [rcx + 8], rsi
jbe 0x140017312
xor edi, edi
mov rbp, qword [rbx + 0x10]
add rbp, rdi
mov rax, qword [rbp + 0x90]
test rax, rax
je 0x1400172fa
lea r8, [rbp + 0xa0]
cmp dword [r8], 0
je 0x1400172fa
mov rcx, qword [rbp + 0x98]
lea rdx, [rbp + 0x40]
call qword [case.0x1400532ec.0]
mov rcx, rbp
call fcn.1400159ac
inc rsi
add rdi, 0xe8
cmp rsi, qword [rbx + 8]
jb 0x1400172c9
mov rcx, qword gs:[0x60]
xor edx, edx
mov r8, qword [rbx + 0x10]
mov rcx, qword [rcx + 0x30]
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
nop dword [rax + rax]
mov rcx, qword [rbx + 0x18]
and qword [rbx + 0x10], 0
test rcx, rcx
je 0x140017349
mov edx, 1
call fcn.1400172a8
and qword [rbx + 0x18], 0
mov r8, rbx
mov rcx, qword gs:[0x60]
xor edx, edx
mov rcx, qword [rcx + 0x30]
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
nop dword [rax + rax]
mov rbp, qword [rsp + 0x38]
mov rax, rbx
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
Function at 0x140018290
Capabilities:
Set registry value

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
lea rbp, [rax - 0x5f]
sub rsp, 0xd0
mov rax, qword [0x140078140]
xor rax, rsp
mov qword [rbp + 0x47], rax
xor ebx, ebx
mov dword [rbp + 7], 0x30
lea rax, [0x14005a320]
mov qword [rbp + 0x37], rbx
mov qword [rbp + 0x17], rax
lea r8, [rbp + 7]
lea rax, [rbp + 0x3f]
mov qword [rbp + 0xf], rbx
mov qword [rsp + 0x30], rax
lea rcx, [rbp + 0x37]
mov rsi, rdx
mov dword [rsp + 0x28], 4
xorps xmm0, xmm0
mov qword [rsp + 0x20], rbx
xor r9d, r9d
mov dword [rbp + 0x1f], 0x40
mov edx, 0x2001f
movdqu xmmword [rbp + 0x27], xmm0
call qword [sym.imp.ntdll.dll_NtCreateKey]
nop dword [rax + rax]
mov edi, eax
test eax, eax
jns 0x14001837a
lea rax, str.onecore_basewcplibraryutil_ccpinterfacekey.cpp
mov dword [rbp - 0x29], 0x5d
mov qword [rbp - 0x39], rax
lea rcx, [rbp - 0x39]
lea rax, str.Windows::WCP::CCPInterfaceKeyUtils::SetProgressKeyUsingNt
mov qword [rbp - 0x31], rax
lea rax, str.NtCreateKey__Key.GetMutablePointer________0x00020000L_____0x0001____0x0008____0x0010______0x00100000L_________0x00020000L_____0x0002____0x0004______0x00100000L_____ObjectAttributes__0__0___0x00000004L___Disposition_
mov qword [rbp - 0x21], rax
mov r8d, edi
call fcn.14004f4fc
mov rcx, qword [rbp + 0x37]
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x1400183fe
mov qword [rbp + 0x37], rbx
call qword [sym.imp.ntdll.dll_NtClose]
nop dword [rax + rax]
jmp 0x1400183fe
mov rcx, qword [rbp + 0x37]
lea rdx, [0x14005a340]
mov dword [rsp + 0x28], 0x10
mov r9d, 3
xor r8d, r8d
mov qword [rsp + 0x20], rsi
call qword [sym.imp.ntdll.dll_NtSetValueKey]
nop dword [rax + rax]
mov edi, eax
test eax, eax
jns 0x1400183de
lea rax, str.onecore_basewcplibraryutil_ccpinterfacekey.cpp
mov dword [rbp - 9], 0x66
mov qword [rbp - 0x19], rax
lea rcx, [rbp - 0x19]
lea rax, str.Windows::WCP::CCPInterfaceKeyUtils::SetProgressKeyUsingNt
mov qword [rbp - 0x11], rax
lea rax, str.NtSetValueKey__Key___PUNICODE_STRING_g_UNICODE_STRING_Progress__0____3ul____Progress__sizeof_CCPProgress__
mov qword [rbp - 1], rax
jmp 0x14001834b
mov rcx, qword [rbp + 0x37]
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x1400183fc
mov qword [rbp + 0x37], rbx
call qword [sym.imp.ntdll.dll_NtClose]
nop dword [rax + rax]
mov edi, ebx
test edi, edi
cmovs ebx, edi
mov eax, ebx
mov rcx, qword [rbp + 0x47]
xor rcx, rsp
call fcn.140058110
lea r11, [rsp + 0xd0]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret
Function at 0x140024120
Capabilities:
Get windows directory from kuser_shared_data

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x50
or rax, 0xffffffffffffffff
mov rdi, r8
xor ebx, ebx
mov ecx, 0x7ffe0030
inc rax
cmp word [rcx + rax*2], bx
jne 0x140024138
add rax, rax
mov qword [rsp + 0x30], rcx
movsd xmm1, qword [rsp + 0x30]
lea rcx, [rsp + 0x38]
mov qword [rsp + 0x20], rax
mov rdx, rdi
add rax, 2
movsd qword [rsp + 0x48], xmm1
mov qword [rsp + 0x28], rax
movups xmm0, xmmword [rsp + 0x20]
movups xmmword [rsp + 0x38], xmm0
call fcn.140051ae4
test eax, eax
mov ecx, ebx
cmovs ecx, eax
test ecx, ecx
jns 0x140024189
mov eax, ecx
jmp 0x140024198
mov rcx, rdi
call fcn.14002707c
test eax, eax
cmovs ebx, eax
mov eax, ebx
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop rdi
ret
Function at 0x140026cec
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov r11, rsp
push rbx
sub rsp, 0x30
mov rax, qword [0x140078140]
xor rax, rsp
mov qword [rsp + 0x20], rax
mov eax, dword [rdx]
mov r8d, dword [rcx]
cmp ax, r8w
jb 0x140026dac
movups xmm0, xmmword [rdx]
mov ebx, 0xfffe
movdqu xmmword [rsp + 0x10], xmm0
mov word [r11 - 0x28], r8w
movups xmm0, xmmword [rcx]
movaps xmm1, xmmword [rsp + 0x10]
movd r9d, xmm0
movdqa xmmword [rsp + 0x10], xmm1
movups xmmword [rsp], xmm0
movzx eax, r9w
xor ax, r8w
test bx, ax
jne 0x140026da5
xor edx, edx
test r8w, r8w
je 0x140026da1
mov r10, qword [r11 - 0x20]
movzx r8d, word [r11 - 0x28]
mov r11, qword [r11 - 0x30]
movzx eax, word [r10]
movzx ecx, word [r10]
sub ax, 0x41
add cx, 0x20
cmp ax, 0x19
cmova cx, word [r10]
cmp cx, word [r11]
jne 0x140026da8
test r8w, r8w
jne 0x140026d84
int3
add r10, 2
add r8w, bx
test r9w, r9w
jne 0x140026d93
int3
add r11, 2
add r9w, bx
test r8w, r8w
jne 0x140026d5e
mov dl, 1
jmp 0x140026da8
xor dx, dx
mov al, dl
jmp 0x140026dae
xor al, al
mov rcx, qword [rsp + 0x20]
xor rcx, rsp
call fcn.140058110
add rsp, 0x30
pop rbx
ret

Function at 0x140032c94
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x50
mov rax, qword [0x140078140]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov rdi, qword [rcx + 0x10]
mov rsi, rdx
mov rcx, qword gs:[0x60]
xor edx, edx
and dword [rsp + 0x40], 0
mov rcx, qword [rcx + 0x30]
lea r8d, [rdx + 0x18]
call qword [sym.imp.ntdll.dll_RtlAllocateHeap]
nop dword [rax + rax]
mov rbx, rax
test rax, rax
je 0x140032d01
and qword [rax + 8], 0
lea rax, [0x140059248]
mov qword [rbx], rax
lea rax, [0x140059560]
mov qword [rbx + 0x10], rax
jmp 0x140032d03
xor ebx, ebx
test rbx, rbx
jne 0x140032d4b
lea rax, str.onecoreinternal_baseinc_rtl_object_library.h
mov dword [rsp + 0x30], 0x1fc
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x20]
lea rax, str.Windows::Rtl::CRtlObjectTypeDescription_class_Windows::Rtl::SystemImplementation::CSystemIsolationLayer_::CreateTearoff
mov r8d, 0xc0000017
mov qword [rsp + 0x28], rax
lea rax, str.NewTearoff.Allocate__
mov qword [rsp + 0x38], rax
call fcn.14004f4fc
mov eax, 0xc0000017
jmp 0x140032d71
mov qword [rbx + 8], rdi
mov rcx, rdi
mov rax, qword [rdi]
mov rax, qword [rax + 8]
call qword [case.0x1400532ec.0]
add rbx, 0x10
cmp qword [rsi], 0
je 0x140032d6a
int3
mov eax, dword [rsp + 0x40]
mov qword [rsi], rbx
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.140058110
mov rbx, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
add rsp, 0x50
pop rdi
ret
Function at 0x140032d98
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x50
mov rax, qword [0x140078140]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov rdi, qword [rcx + 0x10]
mov rsi, rdx
mov rcx, qword gs:[0x60]
xor edx, edx
and dword [rsp + 0x40], 0
mov rcx, qword [rcx + 0x30]
lea r8d, [rdx + 0x18]
call qword [sym.imp.ntdll.dll_RtlAllocateHeap]
nop dword [rax + rax]
mov rbx, rax
test rax, rax
je 0x140032e05
and qword [rax + 8], 0
lea rax, [0x140059248]
mov qword [rbx], rax
lea rax, [0x140059358]
mov qword [rbx + 0x10], rax
jmp 0x140032e07
xor ebx, ebx
test rbx, rbx
jne 0x140032e4f
lea rax, str.onecoreinternal_baseinc_rtl_object_library.h
mov dword [rsp + 0x30], 0x1fc
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x20]
lea rax, str.Windows::Rtl::CRtlObjectTypeDescription_class_Windows::Rtl::SystemImplementation::CSystemIsolationLayer_::CreateTearoff
mov r8d, 0xc0000017
mov qword [rsp + 0x28], rax
lea rax, str.NewTearoff.Allocate__
mov qword [rsp + 0x38], rax
call fcn.14004f4fc
mov eax, 0xc0000017
jmp 0x140032e75
mov qword [rbx + 8], rdi
mov rcx, rdi
mov rax, qword [rdi]
mov rax, qword [rax + 8]
call qword [case.0x1400532ec.0]
add rbx, 0x10
cmp qword [rsi], 0
je 0x140032e6e
int3
mov eax, dword [rsp + 0x40]
mov qword [rsi], rbx
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.140058110
mov rbx, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
add rsp, 0x50
pop rdi
ret

Function at 0x140032e9c
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x50
mov rax, qword [0x140078140]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov rdi, qword [rcx + 0x10]
mov rsi, rdx
mov rcx, qword gs:[0x60]
xor edx, edx
and dword [rsp + 0x40], 0
mov rcx, qword [rcx + 0x30]
lea r8d, [rdx + 0x18]
call qword [sym.imp.ntdll.dll_RtlAllocateHeap]
nop dword [rax + rax]
mov rbx, rax
test rax, rax
je 0x140032f09
and qword [rax + 8], 0
lea rax, [0x140059248]
mov qword [rbx], rax
lea rax, [0x1400598d0]
mov qword [rbx + 0x10], rax
jmp 0x140032f0b
xor ebx, ebx
test rbx, rbx
jne 0x140032f53
lea rax, str.onecoreinternal_baseinc_rtl_object_library.h
mov dword [rsp + 0x30], 0x1fc
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x20]
lea rax, str.Windows::Rtl::CRtlObjectTypeDescription_class_Windows::Rtl::SystemImplementation::CSystemIsolationLayer_::CreateTearoff
mov r8d, 0xc0000017
mov qword [rsp + 0x28], rax
lea rax, str.NewTearoff.Allocate__
mov qword [rsp + 0x38], rax
call fcn.14004f4fc
mov eax, 0xc0000017
jmp 0x140032f79
mov qword [rbx + 8], rdi
mov rcx, rdi
mov rax, qword [rdi]
mov rax, qword [rax + 8]
call qword [case.0x1400532ec.0]
add rbx, 0x10
cmp qword [rsi], 0
je 0x140032f72
int3
mov eax, dword [rsp + 0x40]
mov qword [rsi], rbx
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.140058110
mov rbx, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
add rsp, 0x50
pop rdi
ret
Function at 0x140032fa0
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x50
mov rax, qword [0x140078140]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov rdi, qword [rcx + 0x10]
mov rsi, rdx
mov rcx, qword gs:[0x60]
xor edx, edx
and dword [rsp + 0x40], 0
mov rcx, qword [rcx + 0x30]
lea r8d, [rdx + 0x18]
call qword [sym.imp.ntdll.dll_RtlAllocateHeap]
nop dword [rax + rax]
mov rbx, rax
test rax, rax
je 0x14003300d
and qword [rax + 8], 0
lea rax, [0x140059248]
mov qword [rbx], rax
lea rax, [0x140059530]
mov qword [rbx + 0x10], rax
jmp 0x14003300f
xor ebx, ebx
test rbx, rbx
jne 0x140033057
lea rax, str.onecoreinternal_baseinc_rtl_object_library.h
mov dword [rsp + 0x30], 0x1fc
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x20]
lea rax, str.Windows::Rtl::CRtlObjectTypeDescription_class_Windows::Rtl::SystemImplementation::CSystemIsolationLayer_::CreateTearoff
mov r8d, 0xc0000017
mov qword [rsp + 0x28], rax
lea rax, str.NewTearoff.Allocate__
mov qword [rsp + 0x38], rax
call fcn.14004f4fc
mov eax, 0xc0000017
jmp 0x14003307d
mov qword [rbx + 8], rdi
mov rcx, rdi
mov rax, qword [rdi]
mov rax, qword [rax + 8]
call qword [case.0x1400532ec.0]
add rbx, 0x10
cmp qword [rsi], 0
je 0x140033076
int3
mov eax, dword [rsp + 0x40]
mov qword [rsi], rbx
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.140058110
mov rbx, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
add rsp, 0x50
pop rdi
ret
Function at 0x1400331a8
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rbp
push rdi
push r14
mov rbp, rsp
sub rsp, 0x80
mov rax, qword [0x140078140]
xor rax, rsp
mov qword [rbp - 8], rax
and dword [rbp - 0xc], 0
mov rsi, rcx
mov rcx, qword gs:[0x60]
mov r14, rdx
mov ebx, 0x68
xor edx, edx
mov r8d, ebx
mov rcx, qword [rcx + 0x30]
call qword [sym.imp.ntdll.dll_RtlAllocateHeap]
nop dword [rax + rax]
mov rdi, rax
test rax, rax
je 0x140033281
and qword [rdi + 0x18], 0
lea rax, [0x1400597b0]
and qword [rdi + 0x28], 0
and qword [rdi + 0x30], 0
and qword [rdi + 0x38], 0
mov rcx, qword [0x1400786e8]
mov qword [rdi], rax
lea rax, [0x140059608]
mov qword [rdi], rax
lea rax, [0x1400594e0]
mov qword [rdi + 0x10], rax
mov dword [rdi + 8], 1
mov byte [rdi + 0x20], 0
test rcx, rcx
je 0x14003326d
mov rax, qword [rcx]
lea r8d, [rbx - 0x5b]
mov r9d, ebx
mov byte [rsp + 0x20], 1
lea rdx, str.CFile
mov rax, qword [rax + 0x10]
call qword [case.0x1400532ec.0]
and qword [rdi + 0x48], 0
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rdi + 0x50], xmm0
mov qword [rdi + 0x60], rax
jmp 0x140033283
xor edi, edi
test rdi, rdi
jne 0x1400332c9
lea rax, str.onecoreinternal_baseinc_rtl_object_library.h
mov dword [rbp - 0x40], 0xf7
mov qword [rbp - 0x50], rax
lea rcx, [rbp - 0x50]
lea rax, str.Windows::Rtl::CRtlRefCountedObjectBase_class_Windows::Rtl::SystemImplementation::CFile_struct_Windows::Rtl::IRtlFile_struct_Windows::Rtl::IRtlSystemObject_struct_Windows::Rtl::Detail::CRtlRefCountedObjectBaseNoInterface_struct_Windows::Rtl::Detail::CRtlRefCountedObjectBaseNoInterface_::CreateInstance
mov r8d, 0xc0000017
mov qword [rbp - 0x48], rax
lea rax, str.NewInstance.Allocate__
mov qword [rbp - 0x38], rax
call fcn.14004f4fc
mov ebx, 0xc0000017
jmp 0x140033366
mov rcx, qword [rsi]
lea rdx, [rdi + 0x48]
call fcn.140032ac0
mov ebx, eax
test eax, eax
js 0x14003334a
mov rcx, qword [rsi]
lea rdx, [rdi + 0x18]
call fcn.140037c64
mov ebx, eax
test eax, eax
js 0x14003334a
lea rdx, [rdi + 0x50]
lea rcx, [rsi + 0x28]
call fcn.14004dfb8
mov ebx, eax
test eax, eax
jns 0x140033336
lea rax, str.onecore_basewcp_sil_file.cpp
mov dword [rbp - 0x20], 0x2e
mov qword [rbp - 0x30], rax
lea rcx, [rbp - 0x30]
lea rax, str.Windows::Rtl::SystemImplementation::CFile::Initialize
mov r8d, ebx
mov qword [rbp - 0x28], rax
lea rax, str.RtlDuplicateLUnicodeString__Source.Name__m_Name.GetMutablePointer___
mov qword [rbp - 0x18], rax
call fcn.14004f4fc
jmp 0x14003334a
lea rcx, [rdi + 0x10]
mov rdx, rsi
call fcn.1400386f0
mov ebx, eax
test eax, eax
js 0x14003334a
xor ebx, ebx
test ebx, ebx
jns 0x14003336a
mov r8, qword [rdi]
mov edx, 1
mov rcx, rdi
mov rax, qword [r8 + 0xe8]
call qword [case.0x1400532ec.0]
mov eax, ebx
jmp 0x140033377
cmp qword [r14], 0
je 0x140033371
int3
mov eax, dword [rbp - 0xc]
mov qword [r14], rdi
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.140058110
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret
Function at 0x14004404c
Capabilities:
Query or enumerate registry value

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
lea rbp, [rax - 0x5f]
sub rsp, 0xd0
mov rax, qword [0x140078140]
xor rax, rsp
mov qword [rbp + 0x4f], rax
movups xmm1, xmmword [0x14005acd8]
and qword [rbp + 7], 0
lea r8, [rbp - 0x29]
and dword [rbp - 0x25], 0
xor eax, eax
and qword [rbp - 0x21], rax
xorps xmm0, xmm0
and dword [rbp - 0xd], 0
mov rsi, rcx
and dword [rbp + 0xf], 0
mov edx, 0x20019
movups xmmword [rbp + 0x37], xmm0
mov byte [rcx], al
lea rcx, [rbp + 7]
movups xmm0, xmmword [0x14005acc8]
mov dword [rbp + 0x47], eax
xor dil, dil
lea rax, [rbp + 0x17]
mov dword [rbp - 0x29], 0x30
movdqu xmmword [rbp + 0x27], xmm0
mov dword [rbp - 0x11], 0x40
xorps xmm0, xmm0
mov qword [rbp - 0x19], rax
movdqu xmmword [rbp - 9], xmm0
movdqu xmmword [rbp + 0x17], xmm1
call qword [sym.imp.ntdll.dll_NtOpenKey]
nop dword [rax + rax]
mov ebx, eax
cmp eax, 0xc0000034
je 0x14004413b
test eax, eax
jns 0x140044103
mov dword [rbp - 0x39], 0x2e
jmp 0x14004414a
mov rcx, qword [rbp + 7]
lea rax, [rbp + 0xf]
mov qword [rsp + 0x28], rax
lea r9, [rbp + 0x37]
mov r8d, 2
mov dword [rsp + 0x20], 0x14
lea rdx, [rbp + 0x27]
call qword [sym.imp.ntdll.dll_NtQueryValueKey]
nop dword [rax + rax]
mov ebx, eax
cmp eax, 0xc0000034
jne 0x14004413f
xor ebx, ebx
jmp 0x140044177
test ebx, ebx
jns 0x14004419a
mov dword [rbp - 0x39], 0x3c
lea rax, str.onecore_basewcp_rtllib_nativelibdefer_library.cpp
mov r8d, ebx
mov qword [rbp - 0x49], rax
lea rcx, [rbp - 0x49]
lea rax, str.Windows::WCP::Rtl::ShouldDeferExecution
mov qword [rbp - 0x41], rax
lea rax, str.Status
mov qword [rbp - 0x31], rax
call fcn.14004f4fc
mov rcx, qword [rbp + 7]
lea rdx, [rcx - 1]
cmp rdx, 0xfffffffffffffffd
ja 0x140044196
and qword [rbp + 7], 0
call qword [sym.imp.ntdll.dll_NtClose]
nop dword [rax + rax]
mov eax, ebx
jmp 0x1400441d2
cmp dword [rbp + 0x3b], 4
je 0x1400441a6
cmp dword [rbp + 0x3f], 4
jne 0x1400441ae
cmp dword [rbp + 0x43], 0
setne dil
mov rcx, qword [rbp + 7]
mov byte [rsi], dil
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x1400441d0
and qword [rbp + 7], 0
call qword [sym.imp.ntdll.dll_NtClose]
nop dword [rax + rax]
xor eax, eax
mov rcx, qword [rbp + 0x4f]
xor rcx, rsp
call fcn.140058110
lea r11, [rsp + 0xd0]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret
Function at 0x14004ff78
Capabilities:
Encode data using base64

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
push rbp
push rdi
push r13
push r14
push r15
lea rbp, [rsp - 0x170]
sub rsp, 0x270
mov rax, qword [0x140078140]
xor rax, rsp
mov qword [rbp + 0x160], rax
mov rbx, qword [rcx + 0x10]
lea rax, [rsp + 0x60]
mov rdi, qword [rcx]
xor r14d, r14d
add rdi, rbx
mov dword [rsp + 0x58], r14d
mov qword [rsp + 0x30], rax
mov rsi, rdx
mov qword [rsp + 0x28], 0x200
lea rdx, [rsp + 0x60]
mov qword [rsp + 0x20], r14
cmp rbx, rdi
jae 0x140050172
lea r13d, [r14 + 0x3d]
lea r15, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_onecore_baselstringpath.cpp
lea rax, [rbp + 0x160]
mov rcx, rbx
sub rax, rdx
and rax, 0xfffffffffffffffe
cmp rax, 8
jl 0x140050100
movzx r11d, byte [rbx]
mov r10b, r14b
inc rbx
mov r9b, r14b
cmp rbx, rdi
je 0x14005002b
mov r10b, byte [rbx]
movzx r8d, r14w
mov eax, 2
jmp 0x140050033
mov r8d, r13d
mov eax, 1
add rcx, rax
mov word [rdx + 4], r8w
cmp rcx, rdi
je 0x140050043
mov r9b, byte [rcx]
lea rbx, [rcx + 1]
movzx r8d, r10b
cmove rbx, rcx
mov eax, r14d
cmove ax, r13w
mov rcx, r11
mov word [rdx + 6], ax
and ecx, 3
shl rcx, 4
mov rax, r11
shr rax, 2
movzx eax, byte [rax + r15]
mov word [rdx], ax
mov eax, r8d
shr rax, 4
or rcx, rax
movzx eax, byte [rcx + r15]
mov word [rdx + 2], ax
cmp word [rdx + 4], r14w
jne 0x1400500ad
and r8d, 0xf
movzx eax, r9b
shl r8d, 2
shr rax, 6
mov ecx, r8d
or rcx, rax
movzx eax, byte [rcx + r15]
mov word [rdx + 4], ax
cmp word [rdx + 6], r14w
jne 0x1400500c4
movzx eax, r9b
and eax, 0x3f
movzx eax, byte [rax + r15]
mov word [rdx + 6], ax
add rdx, 8
lea rax, [rbp + 0x160]
cmp rdx, rax
jne 0x1400500f7
mov r9, rsi
mov qword [rsp + 0x20], 0x200
lea rdx, [rsp + 0x20]
call fcn.140052b94
test eax, eax
js 0x140050176
lea rdx, [rsp + 0x60]
cmp rbx, rdi
jb 0x14004fff0
lea rax, [rsp + 0x60]
cmp rdx, rax
je 0x140050172
lea rax, [rsp + 0x60]
sub rdx, rax
mov qword [rsp + 0x20], rdx
cmp rdx, qword [rsp + 0x28]
jbe 0x140050161
lea rax, str.onecore_baselstringlblob.cpp
mov dword [rsp + 0x48], 0x4f5
mov qword [rsp + 0x38], rax
lea rcx, [rsp + 0x38]
lea rax, str.RtlpGenericBase64Encode
mov r8d, 0xc000042b
mov qword [rsp + 0x40], rax
lea rax, str.TempBlob.Length___TempBlob.MaximumLength
mov qword [rsp + 0x50], rax
call fcn.14004f4fc
mov eax, 0xc000042b
jmp 0x140050176
mov r9, rsi
lea rdx, [rsp + 0x20]
call fcn.140052b94
test eax, eax
js 0x140050176
mov eax, dword [rsp + 0x58]
mov rcx, qword [rbp + 0x160]
xor rcx, rsp
call fcn.140058110
lea r11, [rsp + 0x270]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop rdi
pop rbp
ret