joyce8/EMBER2024-capa huggingface dataset:
Function at 0x443f20
Capabilities:
Encode data using base64

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x44408f
sub rsp, 0x20
mov qword [rsp + 0x18], rbp
lea rbp, [rsp + 0x18]
mov ecx, dword [rax + 0x190]
mov edx, dword [rax + 0x194]
mov rsi, qword [rax + 0x998]
mov edi, dword [rax + 0x194]
cmp edi, edx
jne 0x443f38
cmp edx, ecx
jne 0x44407d
nop dword [rax]
test rsi, rsi
jne 0x44407d
mov qword [rsp + 0x28], rax
test rbx, rbx
jne 0x443f96
nop
call fcn.00462fe0
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
mov rbx, qword [rsp]
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x10], rbx
nop dword [rax + rax]
call fcn.00443e20
mov rcx, qword [0x0058dcc8]
mov rdx, qword [0x0058dcc0]
mov rbx, qword [rsp + 0x28]
mov esi, dword [rbx]
mov edi, esi
sar esi, 0x1f
shr esi, 0x1b
add esi, edi
sar esi, 5
mov r8d, esi
shl esi, 5
sub edi, esi
test edi, edi
jl 0x444078
cmp edi, 0x20
sbb esi, esi
mov rax, rcx
mov ecx, edi
mov r9d, 1
shl r9d, cl
and r9d, esi
movsxd rsi, r8d
cmp rax, rsi
jbe 0x44406d
lea rcx, [rdx + rsi*4]
lock or dword [rcx], r9d
mov rcx, qword [0x0058e790]
mov qword [rbx + 8], rcx
nop
mov rcx, rbx
mov qword [0x0058e790], rbx
mov edx, 1
lea rsi, [0x0058e798]
lock xadd dword [rsi], edx
mov rdx, qword [rcx + 0x1228]
shr rdx, 0x3d
test dl, dl
jne 0x44405c
nop
nop
mov rax, qword [rsp + 0x10]
movabs rdx, 0x1fffffffffffffff
and rdx, rax
bts rdx, 0x3f
xchg qword [rcx + 0x1228], rdx
mov rbp, qword [rsp + 0x18]
add rsp, 0x20
ret
lea rax, [0x004dd0ae]
mov ebx, 0x28
call fcn.00435900
mov rcx, rax
mov rax, rsi
call fcn.004616a0
call fcn.00433d20
lea rax, [0x004dc465]
mov ebx, 0x23
call fcn.00435900
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call fcn.0045efc0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
jmp fcn.00443f20
Function at 0x4509c0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
sub rsp, 0x18
mov qword [rsp + 0x10], rbp
lea rbp, [rsp + 0x10]
mov qword [rsp + 0x20], rax
test rbx, rbx
jbe 0x450b38
movzx edx, byte [rax]
nop
test edx, edx
jne 0x4509fc
test r8b, r8b
jne 0x4509fc
xor eax, eax
xor ebx, ebx
mov rcx, rbx
xor edi, edi
mov rbp, qword [rsp + 0x10]
add rsp, 0x18
ret
bt edx, 7
jae 0x450a0f
xor edx, edx
xor r8d, r8d
xor r9d, r9d
jmp 0x450af8
mov r8d, 1
mov r9d, edx
and edx, 1
neg edx
shr r9d, 1
xor edx, r9d
add dword [rsi], edx
cmp rbx, r8
jb 0x450ae6
sub rbx, r8
sub rcx, r8
mov rdx, rcx
neg rcx
sar rcx, 0x3f
and r8, rcx
lea rsi, [rax + r8]
test rbx, rbx
jbe 0x450adc
movzx r8d, byte [rax + r8]
bt r8d, 7
jae 0x450a63
xor eax, eax
xor ecx, ecx
xor r8d, r8d
jmp 0x450aa6
mov eax, 1
cmp rax, rbx
ja 0x450a95
add qword [rdi], r8
sub rdx, rax
sub rbx, rax
mov rcx, rdx
neg rdx
sar rdx, 0x3f
and rax, rdx
add rax, rsi
mov edi, 1
mov rbp, qword [rsp + 0x10]
add rsp, 0x18
ret
mov rcx, rbx
call fcn.00461760
lea r8d, [rcx + 7]
mov ecx, eax
mov eax, r10d
cmp rax, rbx
jae 0x450ad4
movzx r9d, byte [rax + rsi]
lea r10d, [rax + 1]
mov r11d, r9d
and r9d, 0x7f
mov eax, ecx
mov ecx, r8d
shl r9d, cl
or eax, r9d
test r11b, 0x80
jne 0x450a9d
mov r8d, eax
mov eax, r10d
jmp 0x450a68
mov rcx, rbx
call fcn.004616a0
xor eax, eax
mov rcx, rax
call fcn.004616a0
mov eax, r8d
mov rcx, rbx
call fcn.00461760
lea r9d, [rcx + 7]
mov rcx, r12
cmp rbx, rdx
jbe 0x450b2e
movzx r10d, byte [rdx + rax]
inc edx
mov r11d, r10d
and r10d, 0x7f
mov r12, rcx
mov ecx, r9d
shl r10d, cl
or r8d, r10d
test r11b, 0x80
jne 0x450af1
mov rcx, r12
mov r9d, edx
mov edx, r8d
mov r8d, r9d
jmp 0x450a15
mov eax, edx
mov rcx, rbx
call fcn.004616a0
xor eax, eax
mov rcx, rax
nop dword [rax]
call fcn.004616a0
nop
int3
Function at 0x4584c0
Capabilities:
Access peb ldr_data

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x45857b
sub rsp, 0x60
mov qword [rsp + 0x58], rbp
lea rbp, [rsp + 0x58]
mov qword [rsp + 0x70], rbx
mov qword [rsp + 8], 0
movups xmmword [rsp + 0x10], xmm15
movups xmmword [rsp + 0x18], xmm15
movups xmmword [rsp + 0x28], xmm15
movups xmmword [rsp + 0x38], xmm15
movups xmmword [rsp + 0x48], xmm15
lea rdx, [0x004585c0]
mov qword [rsp + 0x10], rdx
mov rdx, qword [rsp + 0x60]
mov qword [rsp + 0x18], rdx
lea rdx, [rsp + 0x68]
mov qword [rsp + 0x20], rdx
mov rdx, r14
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x48], rdi
lea rax, [rsp + 8]
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x10]
mov qword [rsp], rax
call fcn.0045ee80
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
mov rax, qword [rsp + 8]
mov rbp, qword [rsp + 0x58]
add rsp, 0x60
ret
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
call fcn.0045efc0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
jmp fcn.004584c0
Function at 0x4610e0
Capabilities:
Encrypt data using aes via x86 extensions

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x402faf
sub rsp, 0x20
mov qword [rsp + 0x18], rbp
lea rbp, [rsp + 0x18]
mov rdx, qword [rax]
mov rcx, qword [rax + 8]
mov rax, rdx
nop
call fcn.004096a0
mov rbp, qword [rsp + 0x18]
add rsp, 0x20
ret
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call fcn.0045efc0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
jmp 0x402f80
cmp byte [0x005e1bf1], 0
je 0x4610f5
mov rcx, qword [rax + 8]
mov rax, qword [rax]
jmp 0x45e0c0
jmp 0x402f80

Function at 0x461100
Capabilities:
Encrypt data using aes via x86 extensions

Disassembly:
mov eax, dword [rax]
movabs rcx, 0xe7037ed1a0b428db
xor rcx, rax
xor rax, rbx
xor rax, qword [0x005e1ec0]
movabs rdx, 0xa0761d6478bd642f
xor rdx, rax
mov rax, rcx
mul rdx
xor rax, rdx
mov rcx, rax
movabs rax, 0x1d8e4e27c47d124b
mul rcx
nop
nop
xor rax, rdx
ret
cmp byte [0x005e1bf1], 0
je 0x461135
movq xmm0, rbx
pinsrd xmm0, dword [rax], 2
aesenc xmm0, xmmword [0x005e21e0]
aesenc xmm0, xmmword [0x005e21f0]
aesenc xmm0, xmmword [0x005e2200]
movq rax, xmm0
ret
jmp 0x4098a0

Function at 0x461140
Capabilities:
Encrypt data using aes via x86 extensions

Disassembly:
mov rax, qword [rax]
movabs rcx, 0xe7037ed1a0b428db
xor rcx, rax
xor rax, rbx
xor rax, qword [0x005e1ec0]
movabs rdx, 0xa0761d6478bd642f
xor rdx, rax
mov rax, rcx
mul rdx
xor rax, rdx
mov rcx, rax
movabs rax, 0x1d8e4e27c47d1247
mul rcx
nop
nop
xor rax, rdx
ret
cmp byte [0x005e1bf1], 0
je 0x461176
movq xmm0, rbx
pinsrq xmm0, qword [rax], 1
aesenc xmm0, xmmword [0x005e21e0]
aesenc xmm0, xmmword [0x005e21f0]
aesenc xmm0, xmmword [0x005e2200]
movq rax, xmm0
ret
jmp 0x409900

Function at 0x462b00
Capabilities:
Write file on windows

Disassembly:
sub rsp, 0x30
mov rcx, 0xfffffffffffffff4
mov qword [rsp], rcx
mov rax, qword [sym.imp.kernel32.dll_GetStdHandle]
call rax
mov rcx, rax
mov qword [rsp], rcx
lea rdx, [0x005e2160]
mov qword [rsp + 8], rdx
lea r8d, [0x005e1c08]
mov qword [rsp + 0x10], r8
lea r9, [rsp + 0x28]
mov qword [r9], 0
mov qword [rsp + 0x18], r9
mov qword [rsp + 0x20], 0
mov rax, qword [sym.imp.kernel32.dll_WriteFile]
call rax
call fcn.00461020
add rsp, 0x30
ret
Function at 0x140001d30
Capabilities:
Terminate process

Disassembly:
xor r8d, r8d
xor edx, edx
jmp fcn.140001b98
Function at 0x1400047e4
Capabilities:
Identify system language via api

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r14
sub rsp, 0x60
mov rax, qword [0x1400128b8]
xor rax, rsp
mov qword [rsp + 0x58], rax
lea r14, str.en_US
mov rsi, rcx
mov qword [rcx], r14
call qword [sym.imp.KERNEL32.dll_GetSystemDefaultUILanguage]
mov word [rsp + 0x30], ax
mov ebx, 0x10
mov r9d, ebx
lea rdx, [0x140008110]
lea rax, [0x140004df0]
mov r8d, 0x1b3
lea rcx, [rsp + 0x30]
mov qword [rsp + 0x20], rax
call sub.api_ms_win_crt_private_l1_1_0.dll__o_bsearch
xor ebp, ebp
test rax, rax
jne 0x14000485f
mov ecx, 0x57
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x1400048e5
cmp dword [rax + 0xc], 0x7c
jne 0x14000486c
cmp word [rax + 8], 0x7f
jne 0x14000484f
mov r8, qword [rax]
or rcx, 0xffffffffffffffff
inc rcx
cmp word [r8 + rcx*2], bp
jne 0x140004873
inc rcx
cmp rcx, 0x7ffffffe
jbe 0x140004890
mov word [rsp + 0x38], bp
jmp 0x1400048d7
lea rax, [rsp + 0x38]
mov r9d, ebp
sub r8, rax
lea rdx, [rsp + 0x38]
lea rax, [rbx - 0x10]
add rax, rcx
je 0x1400048c0
movzx eax, word [r8 + rdx]
test ax, ax
je 0x1400048c0
mov word [rdx], ax
add rdx, 2
sub rbx, 1
jne 0x1400048a0
test rbx, rbx
jne 0x1400048cf
sub rdx, 2
mov r9d, 0x8007007a
mov word [rdx], bp
test r9d, r9d
jns 0x1400048e1
mov ecx, 0x7a
jmp 0x140004854
test ecx, ecx
jne 0x1400048f1
mov rcx, qword [rsp + 0x78]
call fcn.14000494c
jmp 0x14000492a
mov rbx, rbp
mov rdi, rbp
mov rdx, qword [rdi + r14]
lea rcx, [rsp + 0x38]
call qword [sym.imp.api_ms_win_crt_private_l1_1_0.dll__o__wcsicmp]
test eax, eax
je 0x14000491c
inc rbx
add rdi, 0x30
cmp rdi, 0x750
jb 0x1400048f7
jmp 0x14000492a
lea rax, [rbx + rbx*2]
shl rax, 4
add rax, r14
mov qword [rsi], rax
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.1400050e0
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsp, r11
pop r14
pop rdi
pop rsi
ret

Function at 0x140005104
Capabilities:
Terminate process

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
call qword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
mov ecx, 1
mov dword [0x140012e60], eax
call fcn.1400056f0
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_UnhandledExceptionFilter]
cmp dword [0x140012e60], 0
jne case.default.0x14000515a
mov ecx, 1
call fcn.1400056f0
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rcx, rax
mov edx, 0xc0000409
add rsp, 0x20
pop rbx
jmp qword [sym.imp.KERNEL32.dll_TerminateProcess]
mov ah, 0x4c
lahf
jmp 0x14001ad68
invalid
Function at 0x14000b0b4
Capabilities:
Query service status

Disassembly:
mov rax, rsp
push r14
sub rsp, 0x70
mov qword [rax - 0x50], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x1401600b0]
xor rax, rsp
mov qword [rsp + 0x60], rax
xor edx, edx
xor ecx, ecx
lea r8d, [rdx + 1]
call qword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov r14, rax
xor edi, edi
test rax, rax
je 0x14000b1d9
mov qword [rsp + 0x30], r14
mov r8d, 5
lea rdx, str.NvContainerLocalSystem
mov rcx, r14
call qword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov rsi, rax
test rax, rax
jne 0x14000b137
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x424
sete dil
jmp 0x14000b1cd
mov qword [rsp + 0x38], rsi
lea rdx, [rsp + 0x40]
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
test eax, eax
je 0x14000b15a
mov eax, dword [rsp + 0x44]
add eax, 0xfffffffe
cmp eax, 5
jbe 0x14000b1c3
mov dword [rsp + 0x20], edi
lea r9, [rsp + 0x20]
xor r8d, r8d
xor edx, edx
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_QueryServiceConfigW]
test eax, eax
jne 0x14000b1c3
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x14000b1c3
mov ebx, dword [rsp + 0x20]
mov ecx, ebx
call fcn.140095724
mov rbp, rax
lea r9, [rsp + 0x20]
mov r8d, ebx
mov rdx, rax
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_QueryServiceConfigW]
test eax, eax
je 0x14000b1b0
cmp dword [rbp + 4], 2
setne dil
jmp 0x14000b1b5
test rbp, rbp
je 0x14000b1c3
mov edx, 0x40
mov rcx, rbp
call fcn.140095470
nop
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
nop
mov rcx, r14
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov al, dil
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.140095410
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x10]
mov rbp, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop r14
ret

Function at 0x14000b4b4
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 0x18], rbx
push rdi
sub rsp, 0x260
mov rax, qword [0x1401600b0]
xor rax, rsp
mov qword [rsp + 0x250], rax
mov ebx, edx
mov qword [rsp + 0x30], rcx
mov rdi, rcx
xor edx, edx
lea rcx, [rsp + 0x40]
mov r8d, 0x20a
call fcn.1400b4430
lea rax, [rsp + 0x40]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rax
mov edx, ebx
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
xor ecx, ecx
test eax, eax
js 0x14000b562
mov qword [rdi + 0x10], rcx
lea rax, [rsp + 0x40]
mov qword [rdi + 0x18], 7
or r8, 0xffffffffffffffff
mov word [rdi], cx
inc r8
cmp word [rax + r8*2], cx
jne 0x14000b527
lea rdx, [rsp + 0x40]
mov rcx, rdi
call fcn.140005dd4
mov rax, rdi
mov rcx, qword [rsp + 0x250]
xor rcx, rsp
call fcn.140095410
mov rbx, qword [rsp + 0x280]
add rsp, 0x260
pop rdi
ret
lfence
mov r8d, reloc.OLEAUT32.dll_SafeArrayLock
lea rdx, str.C:dvsp4_build_sw_relgfclient_rel_03_25_1_backendClientCommon_srcClientPaths.cpp
mov ecx, eax
call fcn.14000b32c
int3
Function at 0x140041f58
Capabilities:
Query or enumerate registry value

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r14
lea rbp, [rsp - 0x60]
sub rsp, 0x160
mov qword [rsp + 0x48], 0xfffffffffffffffe
mov rdi, rcx
call fcn.14008b144
mov rcx, qword [rax]
mov rax, qword [rcx]
lea r8, str.Enter_updtShimAPIClass::GetVerifierInfo
mov edx, 3
mov rax, qword [rax + 0x38]
call qword [case.0x14007c430.0]
lea rbx, [rdi + 0x1f8]
xor r14d, r14d
mov dword [rbx], r14d
mov byte [rdi + 0x220], r14b
lea rsi, [rdi + 0x200]
lea r8d, [r14 + 7]
lea rdx, str.Unknown
mov rcx, rsi
call fcn.140005dd4
lea rax, [rbp + 0xa0]
mov qword [rsp + 0x20], rax
mov r9d, 0x20019
xor r8d, r8d
lea rdx, str.SYSTEMCurrentControlSetControlSession_ManagerMemory_Management
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x140042066
call fcn.14008b144
lea r9d, [r14 + 1]
mov r8, qword [rax]
lea edx, [r14 + 2]
lea rcx, [rsp + 0x50]
call fcn.14000499c
nop
lea rbx, [rax + 0x10]
lea rdx, str._GetVerifierInfo__Open_key:
mov rcx, rbx
call fcn.1400098d0
lea rdx, str.SYSTEMCurrentControlSetControlSession_ManagerMemory_Management
mov rcx, rbx
call fcn.1400098d0
lea rdx, str._failed
mov rcx, rbx
call fcn.1400098d0
nop
lea rcx, [rbp - 8]
call fcn.140004938
nop
lea rax, vtable.std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__.0
mov qword [rbp - 8], rax
lea rcx, [rbp - 8]
call fcn.140002658
nop
xor al, al
jmp 0x1400421b3
mov dword [rbp + 0x98], 4
lea rax, [rbp + 0x98]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
xor r9d, r9d
xor r8d, r8d
lea rdx, str.VerifyDriverLevel
mov rcx, qword [rbp + 0xa0]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
je 0x1400420c5
call fcn.14008b144
mov rcx, qword [rax]
mov rax, qword [rcx]
lea r8, str.Query_VerifyDriverLevel_failed
mov edx, 2
mov rax, qword [rax + 0x38]
call qword [case.0x14007c430.0]
jmp 0x140042177
mov dword [rbp + 0x98], r14d
lea rax, [rbp + 0x98]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r14
xor r9d, r9d
xor r8d, r8d
lea rdx, str.VerifyDrivers
mov rcx, qword [rbp + 0xa0]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x140042177
mov word [rbp + 0x90], r14w
mov edx, dword [rbp + 0x98]
shr rdx, 1
inc rdx
lea r8, [rbp + 0x90]
lea rcx, [rsp + 0x30]
call fcn.140044d08
nop
lea rax, [rbp + 0x98]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea rdx, str.VerifyDrivers
mov rcx, qword [rbp + 0xa0]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov rdx, qword [rsp + 0x30]
or r8, 0xffffffffffffffff
inc r8
cmp word [rdx + r8*2], r14w
jne 0x14004215a
mov rcx, rsi
call fcn.140005dd4
nop
lea rcx, [rsp + 0x30]
call fcn.140044f6c
mov rcx, qword [rbp + 0xa0]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [rbx], r14d
setne al
mov byte [rdi + 0x220], al
call fcn.14008b144
mov rcx, qword [rax]
mov rax, qword [rcx]
lea r8, str.Exit_updtShimAPIClass::GetVerifierInfo
mov edx, 3
mov rax, qword [rax + 0x38]
call qword [case.0x14007c430.0]
mov al, 1
add rsp, 0x160
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret
Function at 0x140042ff4
Capabilities:
Query or enumerate registry value

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0xa0
mov rax, qword [0x1401600b0]
xor rax, rsp
mov qword [rsp + 0x90], rax
mov rbx, rdx
lea rax, [rsp + 0x38]
xor edi, edi
mov qword [rsp + 0x20], rax
lea rdx, str.SOFTWARENVIDIA_CorporationGlobalNvBackend
mov qword [rsp + 0x38], rdi
mov r9d, 0x20219
xor r8d, r8d
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1400430b4
mov rcx, qword [rsp + 0x38]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea rdx, str.Link
lea rax, [rsp + 0x40]
mov dword [rsp + 0x30], 0x4e
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1400430b4
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x140043090
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea rax, [rsp + 0x40]
or r8, 0xffffffffffffffff
inc r8
cmp word [rax + r8*2], di
jne 0x140043099
lea rdx, [rsp + 0x40]
mov rcx, rbx
call fcn.140004c90
mov al, 1
jmp 0x1400430b6
xor al, al
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
call fcn.140095410
mov rbx, qword [rsp + 0xb0]
add rsp, 0xa0
pop rdi
ret
Function at 0x140047a2c
Capabilities:
Get memory capacity

Disassembly:
mov rax, rsp
push rdi
push r14
push r15
sub rsp, 0xa0
mov qword [rsp + 0x28], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov rax, qword [0x1401600b0]
xor rax, rsp
mov qword [rsp + 0x90], rax
call fcn.140050bd0
mov rdi, rax
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x30], rax
xor r15d, r15d
test rax, rax
jne 0x140047a7d
jmp 0x140047bd2
mov rax, qword [rax + 0x17]
cmp qword [rdi + 0xf], rax
jne 0x140047a8f
mov rcx, rdi
jmp 0x140047bcd
mov ecx, 0x58
call fcn.140095434
mov rbx, rax
mov qword [rsp + 0x38], rax
lea rsi, [rax + 8]
mov qword [rsi + 0x10], r15
mov qword [rsi + 0x18], r15
mov qword [rsi + 0x10], r15
mov eax, 7
mov qword [rsi + 0x18], rax
mov word [rsi], r15w
mov qword [rbx + 0x40], r15
mov qword [rbx + 0x48], r15
mov qword [rbx + 0x40], r15
mov qword [rbx + 0x48], rax
mov word [rbx + 0x30], r15w
mov qword [rsp + 0x40], rbx
mov dword [rbx + 0x28], r15d
mov qword [rbx], r15
mov rax, qword [rdi + 0x17]
sub rax, qword [rdi + 0xf]
sar rax, 3
mov dword [rbx + 0x50], eax
xor r8d, r8d
lea rdx, [0x14011bdd0]
mov rcx, rsi
call fcn.140005dd4
mov r14, r15
mov rcx, qword [rdi + 0xf]
mov rax, qword [rdi + 0x17]
sub rax, rcx
sar rax, 3
test rax, rax
je 0x140047b88
mov rcx, qword [rcx + r14*8]
cmp word [rcx + 0xc], r15w
je 0x140047b71
movzx eax, word [rcx + 0xc]
add dword [rbx], eax
movzx eax, word [rcx + 0x15]
cmp dword [rbx + 0x28], eax
jae 0x140047b34
mov dword [rbx + 0x28], eax
cmp qword [rsi + 0x10], r15
jne 0x140047b71
cmp byte [rcx + 0x12], 0x1f
jae 0x140047b5f
movzx eax, byte [rcx + 0x12]
lea rdx, [0x140121a10]
mov rdx, qword [rdx + rax*8]
or r8, 0xffffffffffffffff
inc r8
cmp word [rdx + r8*2], r15w
jne 0x140047b53
jmp 0x140047b69
xor r8d, r8d
lea rdx, [0x14011bdd0]
mov rcx, rsi
call fcn.140005dd4
inc r14
mov rcx, qword [rdi + 0xf]
mov rax, qword [rdi + 0x17]
sub rax, rcx
sar rax, 3
cmp r14, rax
jb 0x140047b17
mov esi, 0x40
mov r8d, esi
xor edx, edx
lea rcx, [rsp + 0x50]
call fcn.1400b4430
mov dword [rsp + 0x50], esi
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
test eax, eax
je 0x140047bbb
mov rax, qword [rsp + 0x58]
shr rax, 0x14
mov dword [rbx + 4], eax
mov rcx, rdi
call fcn.140048608
mov rax, rbx
jmp 0x140047bd4
call fcn.140048608
xor eax, eax
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
call fcn.140095410
lea r11, [rsp + 0xa0]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r15
pop r14
pop rdi
ret
Function at 0x140058400
Capabilities:
Get file version info

Disassembly:
mov rax, rsp
push rbp
push r14
push r15
lea rbp, [rax - 0x178]
sub rsp, 0x260
mov qword [rsp + 0x48], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov r14, r9
mov r15, r8
mov rdi, rdx
mov esi, 1
lea rdx, [rsp + 0x38]
mov rcx, rdi
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeA]
mov ebx, eax
test eax, eax
je 0x1400585ef
mov rdx, rbx
lea r8, [rbp + 0x180]
lea rcx, [rsp + 0x20]
call fcn.14003f1fc
nop
mov r9, qword [rsp + 0x20]
mov r8d, ebx
xor edx, edx
mov rcx, rdi
call qword [sym.imp.VERSION.dll_GetFileVersionInfoA]
test eax, eax
jne 0x1400584e2
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
call fcn.14008b144
mov r9d, esi
mov r8, qword [rax]
mov edx, 2
lea rcx, [rsp + 0x50]
call fcn.14000499c
nop
lea rbx, [rax + 0x10]
lea rdx, str.GetBasicFileVersion::GetFileVersionInfo_failedError_code_
mov rcx, rbx
call fcn.1400098d0
mov edx, edi
mov rcx, rbx
call fcn.14003fd60
nop
lea rcx, [rbp - 8]
call fcn.140004938
nop
lea rax, vtable.std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__.0
mov qword [rbp - 8], rax
lea rcx, [rbp - 8]
call fcn.140002658
nop
jmp 0x14005859d
lea r9, [rsp + 0x3c]
lea r8, [rsp + 0x40]
lea rdx, [0x140119238]
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x140058535
mov rdx, qword [rsp + 0x40]
movzx eax, word [rdx + 0xa]
mov word [r15], ax
movzx eax, word [rdx + 8]
mov word [r14], ax
movzx ecx, word [rdx + 0xe]
mov rax, qword [rbp + 0x1a0]
mov word [rax], cx
movzx ecx, word [rdx + 0xc]
mov rax, qword [rbp + 0x1a8]
mov word [rax], cx
jmp 0x1400585a0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
call fcn.14008b144
mov r9d, esi
mov r8, qword [rax]
mov edx, 2
lea rcx, [rbp + 0x58]
call fcn.14000499c
nop
lea rbx, [rax + 0x10]
lea rdx, str.GetBasicFileVersion::VerQueryValue_failedError_code_
mov rcx, rbx
call fcn.1400098d0
mov edx, edi
mov rcx, rbx
call fcn.14003fd60
nop
lea rcx, [rbp + 0x100]
call fcn.140004938
nop
lea rax, vtable.std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__.0
mov qword [rbp + 0x100], rax
lea rcx, [rbp + 0x100]
call fcn.140002658
nop
xor sil, sil
mov rcx, qword [rsp + 0x20]
test rcx, rcx
je 0x1400585ec
mov rdx, qword [rsp + 0x30]
sub rdx, rcx
cmp rdx, 0x1000
jb 0x1400585d8
lfence
add rdx, 0x27
mov rax, qword [rsp + 0x20]
mov rcx, qword [rax - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005860c
call fcn.140095470
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x20], xmm0
and qword [rsp + 0x30], 0
mov al, sil
lea r11, [rsp + 0x260]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
call fcn.1400bb190
int3
Function at 0x14006b674
Capabilities:
Get common file path

Disassembly:
mov rax, rsp
push rbp
push rsi
push rdi
lea rbp, [rax - 0x2f8]
sub rsp, 0x3e0
mov qword [rsp + 0x38], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov rax, qword [0x1401600b0]
xor rax, rsp
mov qword [rbp + 0x2d0], rax
mov rsi, rdx
mov rdi, rcx
mov qword [rsp + 0x40], rcx
and dword [rsp + 0x34], 0
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0xc0]
call fcn.1400b4430
lea rax, [rbp + 0xc0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0x24]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov ebx, eax
mov dword [rsp + 0x30], eax
test eax, eax
js 0x14006b7a6
lea rdx, [rbp + 0xc0]
lea rcx, [rbp + 0xa0]
call fcn.14008cef8
mov rbx, rax
lea rdx, [0x140129b18]
lea rcx, [rbp + 0x60]
call fcn.14008cef8
nop
lea rdx, [rbp + 0x60]
mov rcx, rbx
call fcn.14008cfcc
mov rbx, rax
mov rdx, rsi
lea rcx, [rbp + 0x80]
call fcn.14008cec0
nop
lea rdx, [rbp + 0x80]
mov rcx, rbx
call fcn.14008cfcc
mov rdx, rax
mov rcx, rdi
call fcn.140004d88
mov dword [rsp + 0x34], 1
lea rcx, [rbp + 0x80]
call fcn.140002e10
nop
lea rcx, [rbp + 0x60]
call fcn.140002e10
nop
lea rcx, [rbp + 0xa0]
call fcn.140002e10
mov rax, rdi
mov rcx, qword [rbp + 0x2d0]
xor rcx, rsp
call fcn.140095410
mov rbx, qword [rsp + 0x410]
add rsp, 0x3e0
pop rdi
pop rsi
pop rbp
ret
lea rcx, [rsp + 0x70]
call fcn.14003a628
nop
mov rcx, rax
call fcn.14006eb84
lea rdx, [fcn.140010ab0]
mov rcx, rax
call fcn.14003add8
lea rdx, [rsp + 0x30]
mov rcx, rax
call fcn.140065204
lea rdx, [0x140010aa0]
mov rcx, rax
call fcn.14003add8
lea rdx, str._at__
mov rcx, rax
call fcn.14003ae04
mov rcx, rax
call fcn.14006eba4
lea rdx, [0x1401191b0]
mov rcx, rax
call fcn.14003ae04
mov dword [rsp + 0x30], 0x221
lea rdx, [rsp + 0x30]
mov rcx, rax
call fcn.14003ae3c
lea rdx, [0x1401191b4]
mov rcx, rax
call fcn.14003ae04
lea rdx, [rbp + 0xa0]
mov rcx, rax
call fcn.14003a5e0
nop
call fcn.140001cd0
mov r8, rax
mov edx, ebx
lea rcx, [rbp + 0x80]
call fcn.1400014d4
movups xmm0, xmmword [rax]
movdqu xmmword [rbp + 0x60], xmm0
lea r8, [rbp + 0xa0]
lea rdx, [rbp + 0x60]
lea rcx, [rsp + 0x48]
call fcn.14000192c
lea rdx, [0x14015d8a0]
lea rcx, [rsp + 0x48]
call fcn.1400b45d0
int3