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

Disassembly:
test rcx, rcx
je 0x14000de50
mov r11, rsp
push rbx
sub rsp, 0x40
mov rbx, r8
test rbx, rbx
je 0x14000de4b
lea rax, [r11 + 8]
mov dword [rsp + 0x50], 4
mov qword [r11 - 0x20], rax
lea r9, [r11 + 0x20]
lea rax, [r11 - 0x18]
xor r8d, r8d
mov qword [r11 - 0x28], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x14000de4b
cmp dword [rsp + 0x68], 4
jne 0x14000de4b
mov eax, dword [rsp + 0x30]
mov dword [rbx], eax
add rsp, 0x40
pop rbx
ret

Function at 0x14000de54
Capabilities:
Query or enumerate registry value

Disassembly:
test rcx, rcx
je 0x14000df26
mov r11, rsp
mov qword [r11 + 0x10], rbx
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0x30
lea rax, [r11 + 8]
mov r15, r8
xor ebx, ebx
mov qword [r11 - 0x30], rax
lea r9, [r11 + 0x20]
mov qword [r11 - 0x38], rbx
xor r8d, r8d
mov dword [rsp + 0x60], ebx
mov r14, rdx
mov rbp, rcx
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x14000df16
cmp dword [rsp + 0x78], 1
jne 0x14000df16
mov ecx, dword [rsp + 0x60]
lea eax, [rbx + 2]
shr ecx, 1
lea rsi, [rbx - 1]
inc ecx
mul rcx
cmovo rax, rsi
mov rcx, rax
call fcn.14001b414
mov rdi, rax
test rax, rax
je 0x14000df16
lea rax, [rsp + 0x60]
xor r8d, r8d
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x78]
mov rdx, r14
mov qword [rsp + 0x20], rdi
mov rcx, rbp
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x14000df0e
cmp word [rdi], bx
je 0x14000df00
inc rsi
cmp word [rdi + rsi*2], bx
jne 0x14000def4
mov rbx, rsi
mov r8, rbx
mov rdx, rdi
mov rcx, r15
call fcn.140004880
mov rcx, rdi
call fcn.14001b40c
mov rbx, qword [rsp + 0x68]
add rsp, 0x30
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
Function at 0x1400130fc
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r12
push r14
push r15
sub rsp, 0x20
movzx eax, word [rcx + 0x14a]
mov r14, rcx
mov ecx, 0x3ff
or r15, 0xffffffffffffffff
and ax, cx
cmp ax, 1
je 0x14001314b
cmp ax, 0xd
je 0x14001314b
mov rcx, r14
call fcn.140023568
mov r15, rax
jmp 0x14001321d
mov rdx, qword [r14 + 0xf0]
xor r12b, r12b
mov rbp, qword [r14 + 0x100]
test rdx, rdx
je 0x140013175
test rbp, rbp
jne 0x140013175
call fcn.14001329c
test rax, rax
mov rbp, rax
setne r12b
mov rcx, qword [r14 + 0xf8]
test rcx, rcx
je 0x14001318f
test rbp, rbp
jne 0x140013194
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rbp, rax
test rbp, rbp
je 0x14001320a
mov eax, 0xffff
cmp word [rbp + 2], ax
mov eax, 0x400000
jne 0x1400131b2
mov ecx, dword [rbp + 8]
test eax, ecx
jne 0x1400131be
or ecx, eax
mov dword [rbp + 8], ecx
jmp 0x1400131be
mov ecx, dword [rbp + 4]
test eax, ecx
jne 0x1400131be
or ecx, eax
mov dword [rbp + 4], ecx
mov rsi, qword [r14 + 0xf0]
mov rcx, r14
mov rdi, qword [r14 + 0xf8]
mov rbx, qword [r14 + 0x100]
and qword [r14 + 0xf0], 0
and qword [r14 + 0xf8], 0
mov qword [r14 + 0x100], rbp
call fcn.140023568
mov r15, rax
mov qword [r14 + 0x100], rbx
mov qword [r14 + 0xf8], rdi
mov qword [r14 + 0xf0], rsi
test r12b, r12b
je 0x14001321d
test rbp, rbp
je 0x14001321d
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_GlobalFree]
mov rbx, qword [rsp + 0x40]
mov rax, r15
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
add rsp, 0x20
pop r15
pop r14
pop r12
ret

Function at 0x14001329c
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
xor ebx, ebx
mov rdi, rdx
test rdx, rdx
je 0x140013335
call fcn.14002ee9c
lea r8d, [rbx + 5]
mov rdx, rdi
mov rbp, qword [rax + 0x18]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov rdi, rax
test rax, rax
je 0x140013335
mov rdx, rax
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_LoadResource]
test rax, rax
je 0x140013335
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rsi, rax
test rax, rax
je 0x140013335
mov rdx, rdi
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_SizeofResource]
test eax, eax
je 0x140013335
mov edx, eax
lea ecx, [rbx + 0x40]
mov edi, eax
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov rbx, rax
test rax, rax
je 0x140013335
test rdi, rdi
je 0x140013335
mov r8d, edi
mov rdx, rsi
mov rcx, rax
call fcn.1401c6ef0
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 0x140013400
Capabilities:
Identify system language via api

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rdx
push rdi
sub rsp, 0x50
mov qword [rax - 0x10], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rsi
movzx eax, r8w
mov rsi, rdx
mov edi, ecx
xor ebx, ebx
test r8w, r8w
jne 0x140013433
call qword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
mov qword [rsp + 0x78], rbx
movzx r9d, ax
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], ebx
lea rax, [rsp + 0x78]
mov qword [rsp + 0x20], rax
mov r8d, edi
xor edx, edx
mov ecx, 0x1300
call qword [sym.imp.KERNEL32.dll_FormatMessageW]
test eax, eax
jne 0x1400134dc
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x140013478
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov qword [rsp + 0x78], rbx
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], ebx
lea rax, [rsp + 0x78]
mov qword [rsp + 0x20], rax
mov r9d, 0x400
mov r8d, edi
xor edx, edx
mov ecx, 0x1300
call qword [sym.imp.KERNEL32.dll_FormatMessageW]
test eax, eax
jne 0x1400134dc
mov rax, qword [rsp + 0x78]
test rax, rax
jne 0x1400134c0
lea edx, [rax + 0x64]
lea ecx, [rax + 0x40]
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov qword [rsp + 0x78], rax
mov dword [rsp + 0x20], edi
mov r9d, edi
lea r8, str._u__0x_08X__error
mov edx, 0x32
mov rcx, rax
call fcn.14000512c
nop
jmp 0x1400134e5
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x140013535
mov qword [rsp + 0x40], rbx
lea r8, [rsp + 0x40]
lea rdx, [0x1402708b8]
call fcn.1401ef990
mov rdx, qword [rsp + 0x78]
cmp word [rdx], bx
je 0x14001351f
or rax, 0xffffffffffffffff
inc rax
cmp word [rdx + rax*2], bx
jne 0x140013513
mov rbx, rax
mov r8, rbx
mov rcx, rsi
call fcn.140004880
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rbx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x70]
add rsp, 0x50
pop rdi
ret
Function at 0x140016198
Capabilities:
Get file version info

Disassembly:
mov r11, rsp
mov qword [r11 + 0x10], rdx
mov qword [r11 + 8], rcx
push rbx
push rsi
push r14
sub rsp, 0x30
mov qword [r11 - 0x28], 0xfffffffffffffffe
mov r14, rdx
mov rbx, rcx
lea rax, vtable.NGUtils::AFileVersionInfo.0
mov qword [rcx], rax
lea rax, vtable.NGUtils::CFileVersionInfo.0
mov qword [rcx], rax
and dword [rcx + 0x10], 0
and qword [rcx + 0x18], 0
and qword [rcx + 0x20], 0
and qword [rcx + 8], 0
test rdx, rdx
je 0x14001628e
and dword [rsp + 0x60], 0
lea rdx, [r11 + 0x18]
mov rcx, r14
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
mov esi, eax
mov dword [rsp + 0x68], esi
test eax, eax
je 0x14001628e
mov ecx, esi
call fcn.14001b414
mov qword [rbx + 0x18], rax
jmp 0x140016224
mov r9, qword [rbx + 0x18]
test r9, r9
je 0x14001628e
mov r8d, esi
mov edx, dword [rsp + 0x60]
mov rcx, r14
call qword [sym.imp.VERSION.dll_GetFileVersionInfoW]
test eax, eax
je 0x14001628e
and dword [rsp + 0x58], 0
and dword [rsp + 0x68], 0
lea r8, [rbx + 0x20]
lea r9, [rsp + 0x58]
lea rdx, str.VarFileInfoTranslation
mov rcx, qword [rbx + 0x18]
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x140016273
mov eax, dword [rsp + 0x58]
shr eax, 2
mov dword [rbx + 0x10], eax
lea r8, [rbx + 8]
lea r9, [rsp + 0x68]
lea rdx, [0x140270ca8]
mov rcx, qword [rbx + 0x18]
call qword [sym.imp.VERSION.dll_VerQueryValueW]
nop
mov rax, rbx
add rsp, 0x30
pop r14
pop rsi
pop rbx
ret
Function at 0x140017044
Capabilities:
Check if file exists
Delete file
Get file attributes
Set file attributes

Disassembly:
mov rax, rsp
push rdi
sub rsp, 0x100
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov rax, qword [0x1402bb8e8]
xor rax, rsp
mov qword [rsp + 0xf0], rax
mov rbx, rcx
mov dword [rsp + 0x20], 0x1ac
lea r9, str.NGUtils::CFileUtils::DeleteFileW
lea r8, [0x1402cf1e8]
mov rdx, qword [0x1402ce890]
lea rcx, [rsp + 0x50]
call fcn.140005704
nop
mov rcx, rbx
call fcn.1400044e0
mov rbx, rax
cmp qword [rax + 0x18], 8
jb 0x1400170b4
mov rcx, qword [rax]
jmp 0x1400170b7
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov edi, eax
cmp eax, 0xffffffff
je 0x140017177
mov sil, 1
test sil, dil
je 0x140017129
and edi, 0xfffffffe
cmp qword [rbx + 0x18], 8
jb 0x1400170df
mov rcx, qword [rbx]
jmp 0x1400170e2
mov rcx, rbx
mov edx, edi
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test eax, eax
jne 0x140017129
cmp qword [rbx + 0x18], 8
jb 0x1400170f8
mov rbx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], rbx
lea r9, str.::SetFileAttributes__s__0x_X___error_d
mov edx, 0x80
mov r8d, 0x1bb
lea rcx, [rsp + 0x50]
call fcn.140005bc0
jmp 0x140017177
cmp qword [rbx + 0x18], 8
jb 0x140017135
mov rcx, qword [rbx]
jmp 0x140017138
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x14001717a
cmp qword [rbx + 0x18], 8
jb 0x14001714c
mov rbx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rbx
lea r9, str.::DeleteFile__s___error_d
mov edx, 0x80
mov r8d, 0x1c2
lea rcx, [rsp + 0x50]
call fcn.140005bc0
xor sil, sil
lea rcx, [rsp + 0x50]
call fcn.140005870
mov al, sil
mov rcx, qword [rsp + 0xf0]
xor rcx, rsp
call fcn.1401c44c0
lea r11, [rsp + 0x100]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rsp, r11
pop rdi
ret
Function at 0x140017638
Capabilities:
Read .ini file

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], r9
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
xor ebx, ebx
mov r12, r8
mov ebp, ebx
mov edi, ebx
or rsi, 0xffffffffffffffff
mov r13, rdx
mov r15, rcx
add ebp, 0x200
test rdi, rdi
je 0x14001767e
mov rcx, rdi
call fcn.14001b40c
mov ecx, ebp
mov eax, 2
mul rcx
cmovo rax, rsi
mov rcx, rax
call fcn.14001b414
mov rdi, rax
test rax, rax
je 0x14001770d
lea rcx, [r15 + 8]
mov word [rax], bx
call fcn.1400044e0
cmp qword [rax + 0x18], 8
jb 0x1400176b2
mov rax, qword [rax]
mov qword [rsp + 0x28], rax
lea r8, [0x14026c9e8]
mov r9, rdi
mov dword [rsp + 0x20], ebp
mov rdx, r12
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov r14d, eax
lea eax, [rbp - 1]
cmp r14d, eax
jae 0x14001766b
cmp word [rdi], bx
jne 0x1400176e6
mov rsi, rbx
jmp 0x1400176ef
inc rsi
cmp word [rdi + rsi*2], bx
jne 0x1400176e6
mov rcx, qword [rsp + 0x78]
mov r8, rsi
mov rdx, rdi
call fcn.140004880
mov rcx, rdi
call fcn.14001b40c
test r14d, r14d
setne al
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
Function at 0x14001772c
Capabilities:
Read .ini file

Disassembly:
mov rax, rsp
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
mov qword [rbp - 0x30], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov rax, qword [0x1402bb8e8]
xor rax, rsp
mov qword [rbp - 8], rax
mov r12, r9
mov qword [rbp - 0x40], r8
mov qword [rbp - 0x38], rdx
mov r13, rcx
xor edi, edi
mov r14d, edi
mov esi, edi
add r14d, 0x200
test rsi, rsi
je 0x140017784
mov rcx, rsi
call fcn.14001b40c
mov ecx, r14d
call fcn.14001b414
mov rsi, rax
test rax, rax
je 0x14001788c
mov byte [rax], dil
mov qword [rbp - 0x18], rdi
mov qword [rbp - 0x10], rdi
mov qword [rbp - 0x10], 0xf
mov qword [rbp - 0x18], rdi
mov byte [rbp - 0x28], dil
lea rcx, [r13 + 8]
call fcn.1400044e0
cmp qword [rax + 0x18], 8
jb 0x1400177c8
mov rcx, qword [rax]
jmp 0x1400177cb
mov rcx, rax
mov rax, qword [rax + 0x10]
lea rbx, [rcx + rax*2]
lea rcx, [r13 + 8]
call fcn.1400044e0
cmp qword [rax + 0x18], 8
jb 0x1400177e6
mov rax, qword [rax]
mov r8, rbx
mov rdx, rax
lea rcx, [rbp - 0x28]
call fcn.1400180f4
lea rax, [rbp - 0x28]
cmp qword [rbp - 0x10], 0x10
cmovae rax, qword [rbp - 0x28]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r14d
mov r9, rsi
lea r8, [0x140270990]
mov rdx, qword [rbp - 0x40]
mov rcx, qword [rbp - 0x38]
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ebx, eax
mov rdx, qword [rbp - 0x10]
cmp rdx, 0x10
jb 0x140017843
inc rdx
mov r8d, 1
mov rcx, qword [rbp - 0x28]
call fcn.140004110
mov qword [rbp - 0x10], 0xf
mov qword [rbp - 0x18], rdi
mov byte [rbp - 0x28], dil
lea eax, [r14 - 1]
cmp ebx, eax
jae 0x140017770
cmp byte [rsi], dil
jne 0x140017869
mov rax, rdi
jmp 0x140017871
mov rcx, rsi
call fcn.1401cb5d0
mov r8, rax
mov rdx, rsi
mov rcx, r12
call fcn.14000bd98
mov rcx, rsi
call fcn.14001b40c
test ebx, ebx
setne al
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.1401c44c0
mov rbx, qword [rsp + 0xb0]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
Function at 0x14001ab88
Capabilities:
Get common file path

Disassembly:
mov rax, rsp
push rbp
lea rbp, [rax - 0x448]
sub rsp, 0x540
mov qword [rsp + 0x28], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rdi
mov rax, qword [0x1402bb8e8]
xor rax, rsp
mov qword [rbp + 0x430], rax
lea rdx, [rbp + 0x220]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
xor ebx, ebx
test eax, eax
jne 0x14001abe2
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea eax, [rbx + 3]
jmp 0x14001ad76
lea rcx, [rsp + 0x30]
call fcn.1400049d0
lea rcx, [rsp + 0x30]
call fcn.140004a50
mov qword [rax], 7
lea rcx, [rsp + 0x30]
call fcn.1400044e0
mov word [rsp + 0x20], bx
mov qword [rax + 0x10], rbx
cmp qword [rax + 0x18], 8
jb 0x14001ac1a
mov rax, qword [rax]
lea rdx, [rsp + 0x20]
mov rcx, rax
call fcn.140004a60
nop
lea rdx, [rbp + 0x220]
lea rcx, [rsp + 0x70]
call fcn.1400043a0
nop
mov r9d, 3
xor r8d, r8d
lea rdx, [0x140274978]
lea rcx, [rsp + 0x70]
call fcn.14000ee28
lea r9, [rax - 1]
xor r8d, r8d
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x70]
call fcn.14000eb14
nop
lea rcx, [rsp + 0x50]
call fcn.1400044e0
cmp qword [rax + 0x18], 8
jb 0x14001ac7f
mov rax, qword [rax]
mov rdx, rax
lea rcx, [rbp - 0x50]
call fcn.1400043a0
nop
mov r8d, VariantTimeToDosDateTime
lea rdx, str.config.ini
lea rcx, [rsp + 0x50]
call fcn.140005e00
lea rcx, [rsp + 0x30]
or rbx, 0xffffffffffffffff
cmp rcx, rax
je 0x14001acc4
mov r9, rbx
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.1400044f0
lea rcx, [rsp + 0x30]
call fcn.1400044e0
cmp qword [rax + 0x18], 8
jb 0x14001acd8
mov rax, qword [rax]
lea rdx, [rbp - 0x30]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov rdi, rax
cmp rax, rbx
jne 0x14001acf4
mov ebx, 2
jmp 0x14001ad4a
lea rcx, [rbp - 0x50]
call fcn.1400044e0
cmp qword [rax + 0x18], 8
jb 0x14001ad07
mov rax, qword [rax]
mov rdx, rax
lea rcx, [rbp - 0x70]
call fcn.1400043a0
nop
mov r9, rbx
xor r8d, r8d
lea rdx, [rbp - 0x70]
lea rcx, [0x1402cf288]
call fcn.1400044f0
nop
lea rcx, [rbp - 0x70]
call fcn.140004af0
call fcn.140018cdc
mov ebx, eax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindClose]
call fcn.1400189c8
nop
lea rcx, [rbp - 0x50]
call fcn.140004af0
nop
lea rcx, [rsp + 0x50]
call fcn.140004af0
nop
lea rcx, [rsp + 0x70]
call fcn.140004af0
nop
lea rcx, [rsp + 0x30]
call fcn.140004af0
mov eax, ebx
mov rcx, qword [rbp + 0x430]
xor rcx, rsp
call fcn.1401c44c0
lea r11, [rsp + 0x540]
mov rbx, qword [r11 + 0x10]
mov rdi, qword [r11 + 0x18]
mov rsp, r11
pop rbp
ret
Function at 0x14002139c
Capabilities:
Query or enumerate registry value
Read .ini file

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x40
cmp qword [rcx + 0xb0], 0
mov edi, r9d
mov rbx, r8
mov rax, rdx
je 0x140021416
xor r8d, r8d
call fcn.14002165c
mov rsi, rax
test rax, rax
jne 0x1400213d2
mov eax, edi
jmp 0x14002142c
lea rax, [rsp + 0x50]
mov dword [rsp + 0x50], 4
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x34]
lea rax, [rsp + 0x30]
xor r8d, r8d
mov rdx, rbx
mov qword [rsp + 0x20], rax
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov rcx, rsi
mov ebx, eax
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test ebx, ebx
cmove edi, dword [rsp + 0x30]
jmp 0x1400213ce
mov r9, qword [rcx + 0xd8]
mov r8d, edi
mov rcx, rax
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov rbx, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x40
pop rdi
ret

Function at 0x1400219b0
Capabilities:
Set registry value

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r12
push r14
push r15
sub rsp, 0x30
xor edi, edi
mov rbx, r9
mov r12, r8
mov r15, rdx
mov rsi, rcx
cmp qword [rcx + 0xb0], rdi
je 0x140021a32
xor r8d, r8d
call fcn.14002165c
mov rsi, rax
test rax, rax
je 0x140021acb
mov ecx, dword [rsp + 0x70]
mov r9d, 3
mov dword [rsp + 0x28], ecx
xor r8d, r8d
mov rcx, rsi
mov qword [rsp + 0x20], rbx
mov rdx, r12
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, rsi
mov ebx, eax
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test ebx, ebx
sete dil
mov eax, edi
jmp 0x140021acb
mov ebp, dword [rsp + 0x70]
mov eax, 2
lea ecx, [rbp*2 + 1]
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.14001b414
mov r14, rax
mov r8d, edi
test ebp, ebp
je 0x140021a96
mov rdx, rax
mov r8d, ebp
mov r9d, ebp
mov al, byte [rbx]
and al, 0xf
movzx ecx, al
add cx, 0x41
mov word [rdx], cx
lea rdx, [rdx + 4]
mov al, byte [rbx]
inc rbx
shr al, 4
movzx ecx, al
add cx, 0x41
mov word [rdx - 2], cx
sub r9, 1
jne 0x140021a6b
lea eax, [r8 + r8]
mov word [r14 + rax*2], di
mov rax, qword [rsi]
mov rbx, qword [rax + 0x110]
mov rcx, rbx
call fcn.1401c4aec
mov r9, r14
mov r8, r12
mov rdx, r15
mov rcx, rsi
call rbx
mov rcx, r14
mov ebx, eax
call fcn.14001b40c
mov eax, ebx
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x68]
add rsp, 0x30
pop r15
pop r14
pop r12
ret
Function at 0x1400220b8
Capabilities:
Delete registry key

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x30
cmp qword [rcx], 0
mov rsi, r8
mov rbp, rdx
mov rbx, rcx
je 0x14002212b
lea rcx, str.Advapi32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x14002213f
lea rdx, str.RegDeleteKeyTransactedW
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rdi, rax
test rax, rax
je 0x14002213f
mov rcx, rax
call fcn.1401c4aec
mov rcx, qword [rbx]
xor r9d, r9d
and qword [rsp + 0x28], 0
xor r8d, r8d
mov qword [rsp + 0x20], rcx
mov rdx, rsi
mov rcx, rbp
call rdi
jmp 0x140022144
cmp dword [rcx + 8], 0
je 0x14002213f
mov rdx, rsi
mov rcx, rbp
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
jmp 0x140022144
mov eax, 1
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret

Function at 0x140023010
Capabilities:
Extract resource via kernel32 functions

Disassembly:
movzx edx, dx
jmp method.CDialog.virtual_720
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov qword [rcx + 0xf0], rdx
mov rbp, r8
mov rdi, rdx
mov rsi, rcx
cmp rdx, 0x10000
jae 0x14002304f
cmp dword [rcx + 0xe8], 0
jne 0x14002304f
movzx eax, di
mov dword [rcx + 0xe8], eax
call fcn.14002ee9c
mov r8d, 5
mov rdx, rdi
mov rbx, qword [rax + 0x18]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov rdx, rax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov r9, rbx
mov r8, rbp
mov rdx, rax
mov rcx, rsi
mov rdi, rax
call fcn.140023408
mov rcx, rdi
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_FreeResource]
mov rbp, qword [rsp + 0x38]
mov eax, ebx
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret

Function at 0x1400230ac
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0x20
mov r14, r8
mov rbx, rdx
mov r15, rcx
xor edi, edi
call fcn.14002ee9c
lea r8d, [rdi + 5]
mov rdx, rbx
mov rbp, qword [rax + 0x18]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov rdx, rax
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov rsi, rax
test rax, rax
je 0x140023108
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rdi, rax
mov r9, rbp
mov r8, r14
mov rdx, rdi
mov rcx, r15
call fcn.140023140
mov rcx, rsi
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_FreeResource]
mov rbp, qword [rsp + 0x48]
mov eax, ebx
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x50]
add rsp, 0x20
pop r15
pop r14
pop rdi
ret
Function at 0x140023efc
Capabilities:
Print debug messages

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r14
push r15
sub rsp, 0x40
mov rdi, r9
mov rsi, r8
mov r14, rdx
mov r15, rcx
and qword [rax - 0x10], 0
and qword [rax - 0x18], 0
xor ebx, ebx
mov eax, dword [0x1402c2280]
test eax, eax
je 0x140023f4e
lea rcx, str.IsolationAware_function_called_after_IsolationAwareCleanup_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [0x1402c2280]
test eax, eax
jne 0x140023f57
call fcn.14002404c
test eax, eax
je 0x140023f73
lea rdx, [rsp + 0x30]
mov rcx, qword [0x1402ba130]
call qword [sym.imp.KERNEL32.dll_ActivateActCtx]
mov ecx, 1
test eax, eax
cmovne ebx, ecx
test ebx, ebx
jne 0x140023f7b
xor eax, eax
jmp 0x140023fd3
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x20], rax
mov r9, rdi
mov r8, rsi
mov rdx, r14
mov rcx, r15
call qword [sym.imp.USER32.dll_CreateDialogIndirectParamW]
mov rsi, rax
mov qword [rsp + 0x38], rax
xor ebx, ebx
test rsi, rsi
sete bl
test ebx, ebx
je 0x140023fb5
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
jmp 0x140023fb7
xor edi, edi
mov rdx, qword [rsp + 0x30]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_DeactivateActCtx]
test ebx, ebx
je 0x140023fd0
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rax, rsi
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x60]
mov r14, qword [rsp + 0x68]
add rsp, 0x40
pop r15
ret

Function at 0x140026d84
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r14
sub rsp, 0x20
xor edi, edi
xor ebx, ebx
mov rsi, rdx
mov r14, rcx
test rdx, rdx
je 0x140026dec
call fcn.14002ee9c
mov r8d, 0xf0
mov rdx, rsi
mov rbp, qword [rax + 0x18]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_FindResourceW]
test rax, rax
je 0x140026dec
mov rdx, rax
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov rbx, rax
test rax, rax
je 0x140026e0e
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rdi, rax
mov rdx, rdi
mov rcx, r14
call fcn.1400775a8
mov esi, eax
test rdi, rdi
je 0x140026e0c
test rbx, rbx
je 0x140026e0c
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeResource]
mov eax, esi
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret