joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14000ccf0
Capabilities:
Check mutex on windows

Disassembly:
mov rax, rsp
push rbp
lea rbp, [rax - 0x5f]
sub rsp, 0xc0
mov qword [rbp - 0x31], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x1402bb8e8]
xor rax, rsp
mov qword [rbp + 0x47], rax
mov rbx, rcx
mov qword [rbp - 0x29], rcx
lea rcx, [rbp + 7]
call fcn.1400049d0
lea rcx, [rbp + 7]
call fcn.140004a50
mov edi, 7
mov qword [rax], rdi
lea rcx, [rbp + 7]
call fcn.1400044e0
xor esi, esi
mov word [rbp - 0x39], si
mov qword [rax + 0x10], rsi
cmp qword [rax + 0x18], 8
jb 0x14000cd5f
mov rax, qword [rax]
lea rdx, [rbp - 0x39]
mov rcx, rax
call fcn.140004a60
nop
cmp qword [rbx + 0x10], rsi
jne 0x14000ce34
lea rcx, [rbp - 0x19]
call fcn.1400049d0
lea rcx, [rbp - 0x19]
call fcn.140004a50
mov qword [rax], rdi
lea rcx, [rbp - 0x19]
call fcn.1400044e0
mov word [rbp - 0x39], si
mov qword [rax + 0x10], rsi
cmp qword [rax + 0x18], 8
jb 0x14000cda6
mov rax, qword [rax]
lea rdx, [rbp - 0x39]
mov rcx, rax
call fcn.140004a60
nop
lea rdx, [rbp + 7]
lea rcx, str.ExtMonitor
call fcn.14000e024
lea r8, str.Lock
lea rdx, [rbp + 7]
lea rcx, [rbp + 0x27]
call fcn.14000d428
mov rdi, rax
lea rax, [rbp - 0x19]
cmp rax, rdi
je 0x14000cdfe
xor r8d, r8d
mov dl, 1
lea rcx, [rbp - 0x19]
call fcn.140004a70
mov rdx, rdi
lea rcx, [rbp - 0x19]
call fcn.14000c6e0
nop
lea rcx, [rbp + 0x27]
call fcn.140004af0
lea rcx, [rbp - 0x19]
call fcn.1400044e0
cmp qword [rax + 0x18], 8
jb 0x14000ce1a
mov rax, qword [rax]
mov r8, rax
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateMutexW]
mov qword [rbx + 0x10], rax
lea rcx, [rbp - 0x19]
call fcn.140004af0
mov edx, 0x32
mov rcx, qword [rbx + 0x10]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x14000cf0c
lea r8, str.MappedFile
lea rdx, [rbp + 7]
lea rcx, [rbp - 0x19]
call fcn.14000d428
nop
lea rcx, [rbp - 0x19]
call fcn.1400044e0
cmp qword [rax + 0x18], 8
jb 0x14000ce73
mov rax, qword [rax]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], VarBstrFromDisp
xor r9d, r9d
xor edx, edx
lea r8d, [r9 + 4]
or rcx, 0xffffffffffffffff
call qword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov qword [rbx + 8], rax
test rax, rax
je 0x14000cef8
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, esi
cmp eax, 0xb7
setne dil
mov qword [rsp + 0x20], VarBstrFromDisp
xor r9d, r9d
xor r8d, r8d
mov edx, 0xf001f
mov rcx, qword [rbx + 8]
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov qword [rbx + 0x18], rax
test rax, rax
je 0x14000cef8
test edi, edi
je 0x14000cee5
mov qword [rbp - 0x21], rax
mov rcx, rax
call fcn.140007e78
nop
mov rax, qword [rbx + 0x18]
lea rcx, [rax + 8]
neg rax
sbb rdx, rdx
and rdx, rcx
inc dword [rdx]
mov rcx, qword [rbx + 0x10]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
nop
lea rcx, [rbp - 0x19]
call fcn.140004af0
mov rbx, qword [rbx + 0x18]
lea rcx, [rbp + 7]
call fcn.140004af0
mov rax, rbx
mov rcx, qword [rbp + 0x47]
xor rcx, rsp
call fcn.1401c4500
lea r11, [rsp + 0xc0]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret
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.14001b450
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.14001b448
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.1400235a4
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.1400235a4
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.14002eed8
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.1401c6f30
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.1401ef9d0
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.14001b450
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, [0x1402cf1f8]
mov rdx, qword [0x1402ce8a0]
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.1401c4500
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.14001b448
mov ecx, ebp
mov eax, 2
mul rcx
cmovo rax, rsi
mov rcx, rax
call fcn.14001b450
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.14001b448
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.14001b448
mov ecx, r14d
call fcn.14001b450
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.1401cb610
mov r8, rax
mov rdx, rsi
mov rcx, r12
call fcn.14000bd98
mov rcx, rsi
call fcn.14001b448
test ebx, ebx
setne al
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.1401c4500
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 0x14001abc4
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 0x14001ac1e
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea eax, [rbx + 3]
jmp 0x14001adb2
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 0x14001ac56
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 0x14001acbb
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 0x14001ad00
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 0x14001ad14
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 0x14001ad30
mov ebx, 2
jmp 0x14001ad86
lea rcx, [rbp - 0x50]
call fcn.1400044e0
cmp qword [rax + 0x18], 8
jb 0x14001ad43
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, [0x1402cf298]
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.1401c4500
lea r11, [rsp + 0x540]
mov rbx, qword [r11 + 0x10]
mov rdi, qword [r11 + 0x18]
mov rsp, r11
pop rbp
ret
Function at 0x1400213d8
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 0x140021452
xor r8d, r8d
call fcn.140021698
mov rsi, rax
test rax, rax
jne 0x14002140e
mov eax, edi
jmp 0x140021468
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 0x14002140a
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 0x1400219ec
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 0x140021a6e
xor r8d, r8d
call fcn.140021698
mov rsi, rax
test rax, rax
je 0x140021b07
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 0x140021b07
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.14001b450
mov r14, rax
mov r8d, edi
test ebp, ebp
je 0x140021ad2
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 0x140021aa7
lea eax, [r8 + r8]
mov word [r14 + rax*2], di
mov rax, qword [rsi]
mov rbx, qword [rax + 0x110]
mov rcx, rbx
call fcn.1401c4b2c
mov r9, r14
mov r8, r12
mov rdx, r15
mov rcx, rsi
call rbx
mov rcx, r14
mov ebx, eax
call fcn.14001b448
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 0x1400220f4
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 0x140022167
lea rcx, str.Advapi32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x14002217b
lea rdx, str.RegDeleteKeyTransactedW
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rdi, rax
test rax, rax
je 0x14002217b
mov rcx, rax
call fcn.1401c4b2c
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 0x140022180
cmp dword [rcx + 8], 0
je 0x14002217b
mov rdx, rsi
mov rcx, rbp
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
jmp 0x140022180
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 0x14002304c
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 0x14002308b
cmp dword [rcx + 0xe8], 0
jne 0x14002308b
movzx eax, di
mov dword [rcx + 0xe8], eax
call fcn.14002eed8
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.140023444
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 0x1400230e8
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.14002eed8
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 0x140023144
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.14002317c
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