joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140122b80
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x30
sub edx, 0x23000701
mov rdi, rcx
je 0x140122c86
sub edx, 7
je 0x140122c6c
sub edx, 2
je 0x140122be5
cmp edx, 3
jne 0x140122cea
mov dword [rcx + 0xbc], r8d
mov rcx, qword [0x14022c3b0]
test rcx, rcx
je 0x140122cea
mov rax, qword [rcx]
xor r8d, r8d
mov edx, 0x2300070d
call qword [rax + 0x58]
mov eax, 1
mov rbx, qword [rsp + 0x40]
add rsp, 0x30
pop rdi
ret
mov rcx, qword [rcx + 0xd8]
test rcx, rcx
jne 0x140122c00
xor ebx, ebx
mov eax, ebx
mov rbx, qword [rsp + 0x40]
add rsp, 0x30
pop rdi
ret
mov rax, qword [rcx]
call qword [rax + 0x30]
mov rcx, qword [0x14022c3b0]
xor ebx, ebx
test rcx, rcx
mov edi, eax
je 0x140122c5a
lea r9, [0x1402239b8]
lea r8, [0x140225188]
xor edx, edx
mov dword [rsp + 0x20], ebx
call fcn.14015da90
test rax, rax
je 0x140122c5a
mov rcx, qword [rax + 0x40]
call fcn.140142b30
test rax, rax
je 0x140122c5a
mov rcx, qword [rax + 0x40]
xor r9d, r9d
mov edx, 0x9112
mov r8d, 0x2300070a
call qword [sym.imp.USER32.dll_PostMessageW]
test edi, edi
setns bl
mov eax, ebx
mov rbx, qword [rsp + 0x40]
add rsp, 0x30
pop rdi
ret
mov dword [rcx + 0xb8], 1
mov eax, 1
mov rbx, qword [rsp + 0x40]
add rsp, 0x30
pop rdi
ret
mov rcx, qword [0x14022c3b0]
xor ebx, ebx
test rcx, rcx
mov dword [rsp + 0x48], ebx
je 0x140122cc0
mov rax, qword [rcx]
xor r8d, r8d
mov edx, 0x23000702
call qword [rax + 0x58]
mov rcx, qword [0x14022c3b0]
test rcx, rcx
je 0x140122cc0
mov rax, qword [rcx]
xor r8d, r8d
mov edx, 0x23000703
call qword [rax + 0x58]
lea rcx, [rsp + 0x48]
lea r9, [rdi - 8]
lea r8, [0x140122d30]
mov qword [rsp + 0x28], rcx
xor ecx, ecx
xor edx, edx
mov dword [rsp + 0x20], ebx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [rdi + 0x98], rax
mov eax, 1
mov rbx, qword [rsp + 0x40]
add rsp, 0x30
pop rdi
ret
Function at 0x140128490
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
sub rsp, 0x90
mov rbx, rdx
xor edx, edx
mov rsi, rcx
lea r8d, [rdx + 0x64]
lea rcx, [rsp + 0x20]
call fcn.1401601f0
call fcn.140152e58
lea r8, str.WAVE
mov rcx, qword [rax + 0x10]
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_FindResourceW]
test rbx, rbx
mov rbp, rax
je 0x140128659
test rax, rax
je 0x140128659
mov qword [rsp + 0xa0], rdi
call fcn.140152e58
mov rdx, rbp
mov rcx, qword [rax + 0x10]
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov rdi, rax
call fcn.140152e58
mov rdx, rbp
mov rcx, qword [rax + 0x10]
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov rcx, rdi
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_LockResource]
lea rdx, [rsp + 0x20]
xor r8d, r8d
xor ecx, ecx
mov dword [rsp + 0x24], 0x204d454d
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x3c], ebx
call qword [sym.imp.WINMM.dll_mmioOpenW]
lea rdx, [rsi + 0x94]
mov r9d, 0x20
xor r8d, r8d
mov rcx, rax
mov rbx, rax
mov dword [rsi + 0x9c], 0x45564157
call qword [sym.imp.WINMM.dll_mmioDescend]
test eax, eax
jne 0x14012864a
lea r9d, [rax + 0x10]
lea r8, [rsi + 0x94]
lea rdx, [rsi + 0x80]
mov rcx, rbx
mov dword [rsi + 0x80], 0x20746d66
call qword [sym.imp.WINMM.dll_mmioDescend]
test eax, eax
jne 0x14012864a
lea rdx, [rsi + 0x80]
xor r8d, r8d
mov rcx, rbx
call qword [sym.imp.WINMM.dll_mmioAscend]
lea r8, [rsi + 0x94]
lea rdx, [rsi + 0x6c]
mov r9d, 0x10
mov rcx, rbx
mov dword [rsi + 0x6c], 0x61746164
call qword [sym.imp.WINMM.dll_mmioDescend]
test eax, eax
jne 0x14012864a
lea rdx, [rsi + 0x6c]
xor r8d, r8d
mov rcx, rbx
call qword [sym.imp.WINMM.dll_mmioAscend]
mov edx, dword [rsi + 0x8c]
xor r8d, r8d
mov rcx, rbx
call qword [sym.imp.WINMM.dll_mmioSeek]
mov r8d, dword [rsi + 0x84]
lea rdx, [rsi + 0x44]
mov rcx, rbx
call qword [sym.imp.WINMM.dll_mmioRead]
cmp dword [rsi + 0x84], eax
jne 0x14012864a
cmp word [rsi + 0x46], 1
jne 0x14012864a
cmp word [rsi + 0x52], 0x10
jne 0x14012864a
mov dword [rsi + 0xe8], 0
mov rax, rbx
mov rdi, qword [rsp + 0xa0]
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x18]
mov rbp, qword [r11 + 0x20]
mov rsp, r11
pop rsi
ret
xor edx, edx
mov rcx, rbx
call qword [sym.imp.WINMM.dll_mmioClose]
xor eax, eax
jmp 0x14012862d
xor eax, eax
jmp 0x140128635
Function at 0x14012a9e0
Capabilities:
Get common file path
Get program files directory
Get system information on windows

Disassembly:
push rdi
sub rsp, 0x290
mov rax, qword [0x14020e318]
xor rax, rsp
mov qword [rsp + 0x270], rax
xor edx, edx
mov rdi, rcx
lea rcx, [rsp + 0x34]
lea r8d, [rdx + 0x2c]
mov dword [rsp + 0x30], 0
call fcn.1401601f0
mov rcx, rdi
call fcn.14012fea0
mov rax, qword [rdi + 0x10]
test rax, rax
je 0x14012ab90
test byte [rdi + 0x80], 8
je 0x14012aa50
cmp qword [rax + 0x518], 0
jle 0x14012aa50
or dword [rax + 0x2c], 0x2000000
mov rax, qword [rdi + 0x10]
or dword [rax + 0x2c], 0x4000000
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
cmp word [rsp + 0x30], 9
mov edx, 0x26
mov eax, 0x2a
cmove edx, eax
lea rax, [rsp + 0x60]
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
mov qword [rsp + 0x20], rax
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
js 0x14012ab90
mov qword [rsp + 0x2a8], rbx
or rcx, 0xffffffffffffffff
lea rbx, [rdi + 0x88]
mov qword [rsp + 0x2b0], rbp
xor eax, eax
mov qword [rsp + 0x2b8], rsi
lea rdi, [rsp + 0x60]
lea rdx, [rsp + 0x60]
mov qword [rsp + 0x288], r12
repne scasw ax, word [rdi]
mov qword [rsp + 0x280], r13
not rcx
lea r8d, [rcx - 1]
mov rcx, rbx
call fcn.1400038f0
xor eax, eax
or rcx, 0xffffffffffffffff
lea rbp, str.RealtekAudioHelp_
mov edx, 1
mov rdi, rbp
mov rsi, rbp
repne scasw ax, word [rdi]
mov rax, qword [rbx]
mov r12d, dword [rax - 0x10]
sub edx, dword [rax - 8]
sub rsi, rax
mov eax, dword [rax - 0xc]
not rcx
sar rsi, 1
lea edi, [r12 + rcx - 1]
lea r13, [rcx - 1]
sub eax, edi
or edx, eax
jge 0x14012ab29
mov edx, edi
mov rcx, rbx
call fcn.140001c90
mov rax, qword [rbx]
mov rcx, r12
mov r12, qword [rsp + 0x288]
cmp rsi, rcx
ja 0x14012ab40
lea rbp, [rax + rsi*2]
movsxd rdx, r13d
lea rcx, [rax + rcx*2]
mov r8, rbp
add rdx, rdx
mov r9, rdx
call fcn.14015c410
test edi, edi
mov r13, qword [rsp + 0x280]
mov rsi, qword [rsp + 0x2b8]
mov rbp, qword [rsp + 0x2b0]
js 0x14012aba9
mov rax, qword [rbx]
cmp edi, dword [rax - 0xc]
jg 0x14012aba9
mov dword [rax - 0x10], edi
mov rax, qword [rbx]
mov rbx, qword [rsp + 0x2a8]
movsxd rcx, edi
mov word [rax + rcx*2], 0
mov rcx, qword [rsp + 0x270]
xor rcx, rsp
call fcn.14015b6f0
add rsp, 0x290
pop rdi
ret
mov ecx, 0x80070057
call fcn.140001c70
int3
Function at 0x1401305b0
Capabilities:
Check os version

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x20
cmp qword [rcx + 8], 0
mov edi, edx
mov rbx, rcx
je 0x1401305dd
mov rcx, qword [rcx + 8]
mov edx, edi
mov rax, qword [rcx]
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
jmp qword [rax + 0x30]
mov rax, qword [rcx + 0x10]
test rax, rax
je 0x140130732
bt dword [rax + 0x30], 0xf
jae 0x14013069b
call fcn.140073a40
test eax, eax
jne 0x14013068e
mov eax, dword [0x14022c3f4]
test eax, eax
jne 0x140130629
lea rcx, [0x14022c3f0]
mov dword [0x14022c3f0], 0x114
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
mov eax, dword [0x14022c3f4]
cmp eax, 6
jne 0x14013063b
mov eax, dword [0x14022c3f8]
cmp eax, 2
jne 0x140130667
jmp 0x14013066c
test eax, eax
jne 0x14013065c
lea rcx, [0x14022c3f0]
mov dword [0x14022c3f0], 0x114
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
mov eax, dword [0x14022c3f4]
cmp eax, 6
jne 0x14013069b
mov eax, dword [0x14022c3f8]
cmp eax, 3
jne 0x14013069b
call fcn.14011a8b0
test eax, eax
je 0x14013069b
lea rcx, [rsp + 0x30]
mov dword [rsp + 0x30], 0
call sub.ToastDll64.dll_bool___cdecl_GetDisplayMode_unsigned_long_int____ptr64_
cmp dword [rsp + 0x30], 2
jne 0x14013069b
xor eax, eax
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov rax, qword [rbx + 0x10]
cmp dword [rax + 0x568], 0
je 0x140130732
bt dword [rax + 0x50], 8
jb 0x14013068e
lea r8, str.JDPopup
lea rdx, str.General
lea rcx, [0x14022c580]
mov r9d, 1
call fcn.14014cc50
test eax, eax
jne 0x140130732
mov rdx, qword [rbx + 0x10]
mov r8d, dword [rdx + 0x274]
bt r8d, 0x11
jae 0x140130708
mov rax, rdi
imul rax, rax, 0xac
mov ecx, dword [rax + rdx + 0x61c]
and ecx, 0xf000
cmp ecx, 0x2000
je 0x14013068e
bt r8d, 0x12
jae 0x140130732
mov rax, rdi
imul rax, rax, 0xac
mov ecx, dword [rax + rdx + 0x61c]
and ecx, 0xf000
cmp ecx, 0x1000
je 0x14013068e
mov eax, 1
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x140131980
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push rdi
sub rsp, 0x20
cmp qword [rcx + 8], 0
mov rdi, rcx
je 0x1401319a3
mov rcx, qword [rcx + 8]
mov rax, qword [rcx]
add rsp, 0x20
pop rdi
jmp qword [rax + 0x88]
cmp dword [0x14022c3e8], 0
jne 0x140131a72
lea r8, str.Finished
lea rdx, str.DefLevel
lea rcx, [0x14022c580]
xor r9d, r9d
call fcn.14014cc50
test eax, eax
mov dword [0x14022c3e8], eax
jne 0x140131a72
call fcn.14007cf10
mov rcx, qword [0x14022d680]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x140131a22
lea r8, str.Finished
lea rdx, str.DefLevel
lea rcx, [0x14022c580]
mov r9d, 1
call fcn.14014ccf0
mov dword [0x14022c3e8], 1
add rsp, 0x20
pop rdi
ret
mov ecx, 0x20
mov qword [rsp + 0x30], rbx
call fcn.14013c710
test rax, rax
mov rbx, rax
je 0x140131a6d
lea rax, method.j.1.virtual_0
mov rcx, rbx
mov qword [rbx], rax
xor eax, eax
mov qword [rbx + 8], rax
mov dword [rbx + 0x10], eax
mov dword [rbx + 0x14], eax
mov dword [rbx + 0x18], eax
mov rdx, qword [rdi + 0x10]
call fcn.14007cd50
mov r11, qword [rbx]
mov edx, 1
mov rcx, rbx
call qword [r11 + reloc.OLEAUT32.dll_VariantClear]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
Function at 0x140135120
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x30
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x78], rbp
lea rcx, [rsp + 0x68]
call fcn.140075a60
nop
xor eax, eax
or rbp, 0xffffffffffffffff
mov rcx, rbp
lea rbx, str.HPHPAudioSwitchHPAudioSwitch.exe
mov rdi, rbx
repne scasw ax, word [rdi]
not rcx
lea r14, [rcx - 1]
mov rsi, rbx
mov rax, qword [rsp + 0x68]
sub rsi, rax
sar rsi, 1
mov r13d, dword [rax - 0x10]
lea edi, [r13 + rcx - 1]
mov r12d, 1
mov edx, r12d
sub edx, dword [rax - 8]
mov ecx, dword [rax - 0xc]
sub ecx, edi
or ecx, edx
jge 0x1401351a5
mov edx, edi
lea rcx, [rsp + 0x68]
call fcn.140001c90
mov rax, qword [rsp + 0x68]
cmp rsi, r13
ja 0x1401351ae
lea rbx, [rax + rsi*2]
movsxd rdx, r14d
add rdx, rdx
lea rcx, [rax + r13*2]
mov r9, rdx
mov r8, rbx
call fcn.14015c410
test edi, edi
js 0x140135309
mov rax, qword [rsp + 0x68]
cmp edi, dword [rax - 0xc]
jg 0x140135309
mov dword [rax - 0x10], edi
movsxd rcx, edi
mov rax, qword [rsp + 0x68]
mov word [rax + rcx*2], 0
mov rdi, qword [rsp + 0x68]
mov rcx, qword [rdi - 0x18]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rdi - 8], 0
jl 0x140135213
cmp rax, qword [rdi - 0x18]
jne 0x140135213
lea rbx, [rdi - 0x18]
lock add dword [rdi - 8], r12d
jmp 0x140135251
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [rdi - 0x10]
call qword [rax]
mov rbx, rax
test rax, rax
jne 0x14013522f
call fcn.1400c63c0
int3
mov eax, dword [rdi - 0x10]
mov dword [rbx + 8], eax
mov eax, dword [rdi - 0x10]
add eax, r12d
movsxd rdx, eax
lea r9, [rdx + rdx]
mov r8, rdi
add rdx, rdx
lea rcx, [rbx + 0x18]
call fcn.14015c410
add rbx, 0x18
mov qword [rsp + 0x70], rbx
xor eax, eax
lea rdi, [0x14019bd68]
mov rsi, rbx
mov rcx, r12
repe cmpsw word [rsi], word [rdi]
je 0x140135273
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
setne al
test al, al
jne 0x14013529c
lea rdx, [rbx - 0x18]
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140135297
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor r12d, r12d
jmp 0x1401352e6
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x1401352ca
lea rdx, [rbx - 0x18]
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1401352c5
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor r12d, r12d
jmp 0x1401352e6
lea rdx, [rbx - 0x18]
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1401352e6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebp
add ebp, 0xffffffff
test ebp, ebp
jg 0x140135304
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, r12d
jmp 0x140135314
mov ecx, 0x80070057
call fcn.140001c70
nop
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x78]
add rsp, 0x30
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret
Function at 0x14013faa8
Capabilities:
Get graphical window text

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov rbp, rcx
mov rcx, qword [rcx + 0x40]
mov rbx, r8
call fcn.140157e2c
test rax, rax
mov rsi, rax
je 0x14013fb25
mov rcx, rax
call qword [sym.imp.USER32.dll_GetDlgCtrlID]
test rbx, rbx
movzx edi, ax
je 0x14013fb20
cmp dword [rbx], 0x38
jb 0x14013fb20
mov rax, qword [rbp + 0x40]
or dword [rbx + 4], 1
or qword [rbx + 0x30], 0xffffffffffffffff
xor r9d, r9d
xor r8d, r8d
mov edx, 0x87
mov rcx, rsi
mov qword [rbx + 8], rax
mov qword [rbx + 0x10], rsi
call qword [sym.imp.USER32.dll_SendMessageW]
bt rax, 0xd
jb 0x14013fb20
or dword [rbx + 4], 0x80000002
mov rax, rdi
jmp 0x14013fb29
or rax, 0xffffffffffffffff
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret

Function at 0x140140aa4
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov edi, ecx
call fcn.140152ea8
mov rbx, rax
mov rax, qword [rax + 0x78]
test rax, rax
je 0x140140adb
mov rcx, qword [rax + 0x40]
test rcx, rcx
je 0x140140adb
xor r9d, r9d
xor r8d, r8d
mov edx, 0x401
call qword [sym.imp.USER32.dll_SendMessageW]
test edi, edi
mov rbx, qword [rbx + 0xa0]
je 0x140140b0b
test rbx, rbx
je 0x140140b0b
mov ecx, 1
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
js 0x140140b0b
mov rax, qword [rbx]
or rdx, 0xffffffffffffffff
mov rcx, rbx
call qword [rax + 0x2d0]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret

Function at 0x1401441f8
Capabilities:
Get graphical window text

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
cmp qword [rcx + 0xa0], 0
mov rbx, rdx
mov rsi, rcx
jne 0x1401442b0
mov rcx, qword [rcx + 0x40]
call qword [sym.imp.USER32.dll_GetWindowTextLengthW]
mov r8, qword [rbx]
mov edx, 1
mov ecx, dword [r8 - 0xc]
sub edx, dword [r8 - 8]
movsxd rdi, eax
sub ecx, edi
or edx, ecx
jge 0x140144248
mov edx, edi
mov rcx, rbx
call fcn.140001c90
test edi, edi
mov rdx, qword [rbx]
js 0x1401442a5
cmp edi, dword [rdx - 0xc]
jg 0x1401442a5
mov dword [rdx - 0x10], edi
mov rax, qword [rbx]
lea r8d, [rdi + 1]
and word [rax + rdi*2], 0
mov rcx, qword [rsi + 0x40]
call qword [sym.imp.USER32.dll_GetWindowTextW]
mov rcx, qword [rbx]
test rcx, rcx
jne 0x140144279
xor eax, eax
jmp 0x140144282
call fcn.14015f630
test eax, eax
js 0x14014429a
mov rcx, qword [rbx]
cmp eax, dword [rcx - 0xc]
jg 0x14014429a
mov dword [rcx - 0x10], eax
movsxd rcx, eax
mov rax, qword [rbx]
and word [rax + rcx*2], 0
jmp 0x1401442c0
mov ecx, 0x80070057
call fcn.140001c70
int3
mov ecx, 0x80070057
call fcn.140001c70
int3
mov rcx, qword [rcx + 0xa0]
mov rax, qword [rcx]
call qword [rax + 0x118]
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x140146dfc
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
sub rsp, 0x20
xor edi, edi
xor ebx, ebx
test rdx, rdx
mov rsi, rdx
mov rbp, rcx
je 0x140146e64
call fcn.140152e58
mov r8d, 0xf0
mov rdx, rsi
mov r12, qword [rax + 0x18]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_FindResourceW]
test rax, rax
je 0x140146e64
mov rdx, rax
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LoadResource]
test rax, rax
mov rbx, rax
je 0x140146e86
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rdi, rax
mov rdx, rdi
mov rcx, rbp
call fcn.140146858
test rdi, rdi
mov esi, eax
je 0x140146e84
test rbx, rbx
je 0x140146e84
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 r12
ret
Function at 0x14014beb4
Capabilities:
Delete registry key
Query or enumerate registry key

Disassembly:
mov rax, rsp
push rdi
sub rsp, 0x280
mov qword [rsp + 0x48], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rsi
mov rax, qword [0x14020e318]
xor rax, rsp
mov qword [rsp + 0x270], rax
mov rsi, rdx
mov rdi, rcx
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x40], rdx
lea r8, [rsp + 0x30]
mov rdx, qword [rdx]
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
mov ebx, eax
test eax, eax
jne 0x14014bfb3
mov r9d, 0x104
lea r8, [rsp + 0x60]
xor edx, edx
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.ADVAPI32.dll_RegEnumKeyW]
mov ebx, eax
test eax, eax
jne 0x14014bf8a
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x28]
call fcn.140005060
nop
lea rdx, [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
call fcn.14014beb4
mov ebx, eax
test eax, eax
setne byte [rsp + 0x20]
mov rdx, qword [rsp + 0x28]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14014bf71
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
cmp byte [rsp + 0x20], 0
je 0x14014bf7a
jmp 0x14014bf8a
jmp 0x14014bf0a
cmp ebx, 0x103
je 0x14014bf9a
cmp ebx, 0x3f2
jne 0x14014bfa8
mov rdx, qword [rsi]
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov ebx, eax
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, ebx
mov rcx, qword [rsp + 0x270]
xor rcx, rsp
call fcn.14015b6f0
lea r11, [rsp + 0x280]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret

Function at 0x14014cc50
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 + 0xa8], 0
mov edi, r9d
mov rbx, r8
mov rax, rdx
je 0x14014ccc7
call fcn.14014cbdc
test rax, rax
mov rsi, rax
jne 0x14014cc83
mov eax, edi
jmp 0x14014ccdd
lea rax, [rsp + 0x50]
lea r9, [rsp + 0x34]
xor r8d, r8d
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x30]
mov rdx, rbx
mov rcx, rsi
mov dword [rsp + 0x50], 4
mov qword [rsp + 0x20], rax
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 0x14014cc7f
mov r9, qword [rcx + 0xd0]
mov r8d, edi
mov rdx, rbx
mov rcx, rax
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 0x14014cdb0
Capabilities:
Delete registry key
Delete registry value
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
sub rsp, 0x30
xor ebx, ebx
mov rdi, r9
mov rbp, r8
cmp qword [rcx + 0xa8], rbx
mov rsi, rdx
je 0x14014ce77
cmp r8, rbx
jne 0x14014ce0b
call fcn.14014cad8
cmp rax, rbx
mov rdi, rax
jne 0x14014cdfa
xor eax, eax
jmp 0x14014ce8d
mov rdx, rsi
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov rcx, rdi
jmp 0x14014ce66
cmp r9, rbx
jne 0x14014ce2b
call fcn.14014cbdc
cmp rax, rbx
mov rdi, rax
je 0x14014cdf3
mov rdx, rbp
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
jmp 0x14014ce06
call fcn.14014cbdc
cmp rax, rbx
mov r12, rax
je 0x14014cdf3
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r9d, 1
xor r8d, r8d
lea eax, [rax + rax + 2]
mov rdx, rbp
mov rcx, r12
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rdi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, r12
mov esi, eax
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp esi, ebx
sete bl
mov eax, ebx
jmp 0x14014ce8d
mov r9, qword [rcx + 0xd0]
mov r8, rdi
mov rdx, rbp
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
add rsp, 0x30
pop r12
ret

Function at 0x14014cea8
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 r13
push r14
sub rsp, 0x30
xor edi, edi
mov rbp, r9
mov r14, r8
cmp qword [rcx + 0xa8], rdi
mov rsi, rdx
mov rbx, rcx
je 0x14014cf2a
call fcn.14014cbdc
cmp rax, rdi
mov rsi, rax
jne 0x14014cef0
xor eax, eax
jmp 0x14014cfb8
mov ecx, dword [rsp + 0x70]
mov r9d, 3
xor r8d, r8d
mov dword [rsp + 0x28], ecx
mov rcx, rax
mov rdx, r14
mov qword [rsp + 0x20], rbp
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, rsi
mov ebx, eax
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp ebx, edi
sete dil
mov eax, edi
jmp 0x14014cfb8
mov r12d, dword [rsp + 0x70]
mov eax, 2
lea ecx, [r12 + r12 + 1]
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.14013c710
cmp r12d, edi
mov r9d, edi
mov r13, rax
jbe 0x14014cf91
mov rdx, rax
mov r9, r12
mov r8, r12
mov al, byte [rbp]
and al, 0xf
movzx ecx, al
add cx, 0x41
mov word [rdx], cx
mov al, byte [rbp]
add rdx, 4
shr al, 4
add rbp, 1
movzx ecx, al
add cx, 0x41
sub r8, 1
mov word [rdx - 2], cx
jne 0x14014cf63
lea eax, [r9 + r9]
mov r8, r14
mov rdx, rsi
mov r9, r13
mov rcx, rbx
mov word [r13 + rax*2], di
call fcn.14014cdb0
mov rcx, r13
mov ebx, eax
call fcn.14013c754
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 r14
pop r13
pop r12
ret