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

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x100
mov esi, edx
lea rax, [rsp + 0x30]
mov rbx, rcx
lea rdx, str.SoftwareRealtekAEAPO
mov r9d, 0x20119
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov qword [rsp + 0x20], rax
xor edi, edi
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1401efb61
mov rcx, qword [rsp + 0x30]
lea rax, [rsp + 0x130]
lea r9, [rsp + 0x138]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x40]
lea rdx, str.RenProperties
xor r8d, r8d
mov qword [rsp + 0x120], rbp
mov dword [rsp + 0x130], 0x60
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea ebp, [rdi + 1]
test eax, eax
jne 0x1401efa94
cmp dword [rsp + 0x130], 0x60
jne 0x1401efa94
cmp dword [rsp + 0x40], 0xaee0aee0
cmove edi, ebp
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test edi, edi
je 0x1401efb59
lea rcx, [rsp + 0xa0]
mov rdx, rbx
mov r8d, 0x60
call fcn.14022e920
lea rdx, [rsp + 0x40]
mov rcx, rbx
mov r8d, 0x60
call fcn.14022e920
or r9d, 0xffffffff
lea rdx, str.LoadEQInfo_successful
mov rcx, rbx
or r8d, r9d
mov dword [rsp + 0x20], 0
call fcn.1401f0010
test esi, esi
je 0x1401efb59
mov rax, qword [rbx + 0x60]
test rax, rax
je 0x1401efb59
mov edx, dword [rsp + 0x4c]
cmp edx, dword [rsp + 0xac]
je 0x1401efb13
mov r8, qword [rbx + 0xa0]
xor ecx, ecx
call rax
mov r8, qword [rbx + 0xa0]
xor edx, edx
mov ecx, ebp
call qword [rbx + 0x60]
mov edx, dword [rsp + 0x48]
cmp edx, dword [rsp + 0xa8]
je 0x1401efb3d
mov r8, qword [rbx + 0xa0]
mov ecx, 2
call qword [rbx + 0x60]
mov edx, dword [rsp + 0x78]
cmp edx, dword [rsp + 0xd8]
je 0x1401efb59
mov r8, qword [rbx + 0xa0]
mov ecx, 3
call qword [rbx + 0x60]
mov rbp, qword [rsp + 0x120]
add rsp, 0x100
pop rdi
pop rsi
pop rbx
ret
Function at 0x1401f2bcc
Capabilities:
Get graphical window text

Disassembly:
push rdi
sub rsp, 0x30
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x50], rsi
movsxd rsi, r8d
mov rdi, rdx
mov rbx, rcx
cmp qword [rcx + 0xa0], 0
jne 0x1401f2c0a
mov r8d, esi
mov rcx, qword [rcx + 0x40]
call qword [sym.imp.USER32.dll_GetWindowTextW]
jmp 0x1401f2cbe
call fcn.1401ff164
mov r11, rax
xor ecx, ecx
test rax, rax
setne cl
test ecx, ecx
jne 0x1401f2c29
mov ecx, 0x80004005
call fcn.140002bc0
int3
mov rax, qword [rax]
mov rcx, r11
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x40], rax
mov rcx, qword [rbx + 0xa0]
mov rax, qword [rcx]
lea rdx, [rsp + 0x40]
call qword [rax + 0x118]
mov rdx, rsi
or rsi, 0xffffffffffffffff
mov r9, rsi
mov r8, qword [rsp + 0x40]
mov rcx, rdi
call fcn.14022e700
test eax, eax
je 0x1401f2c91
cmp eax, 0xc
je 0x1401f2c8b
cmp eax, 0x16
je 0x1401f2c85
cmp eax, 0x22
je 0x1401f2c85
cmp eax, 0x50
je 0x1401f2c91
call fcn.1401fd6b8
int3
call fcn.1401fd6b8
int3
call fcn.1401fd670
int3
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov ebx, eax
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov ecx, esi
lock xadd dword [rdx + 0x10], ecx
add ecx, esi
test ecx, ecx
jg 0x1401f2cbc
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
mov eax, ebx
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret

Function at 0x1401f382c
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
cmp qword [rcx + 0xb0], 0
mov rdi, qword [rcx + 0xc0]
mov rbp, qword [rcx + 0xb8]
mov rsi, rcx
je 0x1401f3889
call fcn.1401f2234
mov rdx, qword [rsi + 0xb0]
mov r8d, 5
mov rbx, qword [rax + 0x18]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov rcx, rbx
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov rbp, rax
test rbp, rbp
je 0x1401f389a
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rdi, rax
test rdi, rdi
mov ebx, 1
je 0x1401f38d7
cmp word [rdi + 2], 0xffff
mov ecx, dword [rdi]
jne 0x1401f38bb
mov ecx, dword [rdi + 0xc]
movzx edx, word [rdi + 0x12]
movzx eax, word [rdi + 0x14]
jmp 0x1401f38c3
mov dx, word [rdi + 0xa]
mov ax, word [rdi + 0xc]
test ecx, 0x1801
jne 0x1401f38d5
test dx, dx
jne 0x1401f38d5
test ax, ax
je 0x1401f38d7
xor ebx, ebx
cmp qword [rsi + 0xb0], 0
je 0x1401f38ea
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_FreeResource]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
Function at 0x1401f4040
Capabilities:
Extract resource via kernel32 functions

Disassembly:
movzx edx, dx
jmp method.CDialog.virtual_624
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
test rdx, 0xffffffffffff0000
mov rbp, r8
mov rdi, rdx
mov rsi, rcx
mov qword [rcx + 0xb0], rdx
jne 0x1401f407f
cmp dword [rcx + 0xa8], 0
jne 0x1401f407f
movzx eax, dx
mov dword [rcx + 0xa8], eax
call fcn.1401f2234
mov r8d, 5
mov rdx, rdi
mov rbx, qword [rax + 0x18]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov rcx, rbx
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov r9, rbx
mov r8, rbp
mov rdx, rax
mov rcx, rsi
mov rdi, rax
call fcn.1401f3fe4
mov rcx, rdi
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_FreeResource]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret

Function at 0x1401f5030
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.1402123bc
test rax, rax
mov rsi, rax
je 0x1401f50ad
mov rcx, rax
call qword [sym.imp.USER32.dll_GetDlgCtrlID]
test rbx, rbx
movzx edi, ax
je 0x1401f50a8
cmp dword [rbx], 0x38
jb 0x1401f50a8
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 0x1401f50a8
or dword [rbx + 4], 0x80000002
mov rax, rdi
jmp 0x1401f50b1
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 0x1401f61ac
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov edi, ecx
call fcn.1401f2284
mov rbx, rax
mov rax, qword [rax + 0x78]
test rax, rax
je 0x1401f61e3
mov rcx, qword [rax + 0x40]
test rcx, rcx
je 0x1401f61e3
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 0x1401f6213
test rbx, rbx
je 0x1401f6213
mov ecx, 1
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
js 0x1401f6213
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 0x1401f937c
Capabilities:
Get graphical window text

Disassembly:
mov rax, rsp
push r12
sub rsp, 0x130
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov esi, r8d
mov r12, rdx
mov rbp, rcx
lea rcx, [rsp + 0x40]
call fcn.1401fcd10
lea rcx, [rsp + 0x80]
call fcn.1401f5f84
nop
mov rcx, qword [rbp + 0x40]
call qword [sym.imp.USER32.dll_GetTopWindow]
mov rdi, rax
test rax, rax
je 0x1401f94c2
mov qword [rsp + 0xc0], rdi
mov rcx, rdi
call qword [sym.imp.USER32.dll_GetDlgCtrlID]
movzx ecx, ax
mov dword [rsp + 0x48], ecx
lea rax, [rsp + 0x80]
mov qword [rsp + 0x60], rax
mov rcx, rdi
call fcn.1401f830c
test rax, rax
je 0x1401f9429
and qword [rsp + 0x20], 0
lea r9, [rsp + 0x40]
xor edx, edx
mov r8d, 0xbd11ffff
mov rcx, rax
call fcn.1401fcb0c
test eax, eax
jne 0x1401f94a8
and qword [rsp + 0x20], 0
lea r9, [rsp + 0x40]
or r8d, 0xffffffff
mov edx, dword [rsp + 0x48]
mov rcx, rbp
call fcn.1401fcb0c
test eax, eax
jne 0x1401f94a8
mov ebx, esi
test esi, esi
je 0x1401f9498
xor r9d, r9d
xor r8d, r8d
mov edx, 0x87
mov rcx, qword [rsp + 0xc0]
call qword [sym.imp.USER32.dll_SendMessageW]
bt rax, 0xd
jb 0x1401f9472
xor ebx, ebx
jmp 0x1401f9498
lea rcx, [rsp + 0x80]
call fcn.1401f2434
and eax, 0xf
cmp eax, 3
je 0x1401f9496
cmp eax, 6
je 0x1401f9496
cmp eax, 7
je 0x1401f9496
cmp eax, 9
jne 0x1401f9498
xor ebx, ebx
mov r8d, ebx
mov rdx, r12
lea rcx, [rsp + 0x40]
call fcn.1401fcd40
mov edx, 2
mov rcx, rdi
call qword [sym.imp.USER32.dll_GetWindow]
mov rdi, rax
test rax, rax
jne 0x1401f93d8
and qword [rsp + 0xc0], 0
lea rcx, [rsp + 0x80]
call fcn.1401f8ee8
lea r11, [rsp + 0x130]
mov rbx, qword [r11 + 0x10]
mov rbp, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop r12
ret

Function at 0x1401f9c24
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 0x1401f9cdc
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 0x1401f9c74
mov edx, edi
mov rcx, rbx
call fcn.140002be0
test edi, edi
mov rdx, qword [rbx]
js 0x1401f9cd1
cmp edi, dword [rdx - 0xc]
jg 0x1401f9cd1
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 0x1401f9ca5
xor eax, eax
jmp 0x1401f9cae
call fcn.14022f600
test eax, eax
js 0x1401f9cc6
mov rcx, qword [rbx]
cmp eax, dword [rcx - 0xc]
jg 0x1401f9cc6
mov dword [rcx - 0x10], eax
movsxd rcx, eax
mov rax, qword [rbx]
and word [rax + rcx*2], 0
jmp 0x1401f9cec
mov ecx, 0x80070057
call fcn.140002bc0
int3
mov ecx, 0x80070057
call fcn.140002bc0
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 0x1401fc8e0
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 0x1401fc948
call fcn.1401f2234
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 0x1401fc948
mov rdx, rax
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LoadResource]
test rax, rax
mov rbx, rax
je 0x1401fc96a
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rdi, rax
mov rdx, rdi
mov rcx, rbp
call fcn.1401fc33c
test rdi, rdi
mov esi, eax
je 0x1401fc968
test rbx, rbx
je 0x1401fc968
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 0x1401ff760
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 rdi, r8
mov rbx, rcx
call fcn.1401ff654
cmp dword [rbx], 0
mov ebp, 1
mov rsi, rax
mov rcx, rax
mov dword [rbx + 0x14], ebp
je 0x1401ff81f
call qword [sym.imp.USER32.dll_GetWindowTextLengthW]
mov rcx, qword [rdi]
sub ebp, dword [rcx - 8]
mov ecx, dword [rcx - 0xc]
movsxd rbx, eax
sub ecx, ebx
or ebp, ecx
jge 0x1401ff7b8
mov edx, ebx
mov rcx, rdi
call fcn.140002be0
test ebx, ebx
mov rdx, qword [rdi]
js 0x1401ff814
cmp ebx, dword [rdx - 0xc]
jg 0x1401ff814
mov dword [rdx - 0x10], ebx
mov rax, qword [rdi]
lea r8d, [rbx + 1]
and word [rax + rbx*2], 0
mov rcx, rsi
call qword [sym.imp.USER32.dll_GetWindowTextW]
mov rcx, qword [rdi]
test rcx, rcx
jne 0x1401ff7e8
xor eax, eax
jmp 0x1401ff7f1
call fcn.14022f600
test eax, eax
js 0x1401ff809
mov rcx, qword [rdi]
cmp eax, dword [rcx - 0xc]
jg 0x1401ff809
mov dword [rcx - 0x10], eax
movsxd rcx, eax
mov rax, qword [rdi]
and word [rax + rcx*2], 0
jmp 0x1401ff827
mov ecx, 0x80070057
call fcn.140002bc0
int3
mov ecx, 0x80070057
call fcn.140002bc0
int3
mov rdx, qword [rdi]
call fcn.140212110
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
Function at 0x140201ab4
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov rdi, rdx
mov rbx, rcx
call fcn.1401f4ffc
test eax, eax
je 0x140201adc
mov eax, 1
jmp 0x140201bb6
mov rdx, qword [str.AfxClosePending]
mov rcx, qword [rbx + 0x40]
call qword [sym.imp.USER32.dll_GetPropW]
mov rcx, rax
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_GlobalLock]
test rax, rax
je 0x140201b5f
cmp dword [rax], 1
jne 0x140201b56
mov rcx, qword [rbx + 0x40]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x476
call qword [sym.imp.USER32.dll_SendMessageW]
test rax, rax
jne 0x140201b56
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov rdx, qword [str.AfxClosePending]
mov rcx, qword [rbx + 0x40]
call qword [sym.imp.USER32.dll_RemovePropW]
test rax, rax
je 0x140201b45
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GlobalFree]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0xc0]
jmp 0x140201ad2
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
cmp dword [rdi + 8], 0x100
jne 0x140201bab
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x140201bab
cmp qword [rdi + 0x10], 9
je 0x140201b8d
cmp qword [rdi + 0x10], 0x21
je 0x140201b8d
cmp qword [rdi + 0x10], 0x22
jne 0x140201bab
mov rcx, qword [rbx + 0x40]
mov r9, rdi
xor r8d, r8d
mov edx, 0x475
call qword [sym.imp.USER32.dll_SendMessageW]
test rax, rax
jne 0x140201ad2
mov rdx, rdi
mov rcx, rbx
call fcn.1401f5888
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret

Function at 0x140202b48
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
test byte [rdx + 4], 1
mov esi, r8d
mov rbx, rdx
mov rbp, rcx
je 0x140202b71
mov rdi, qword [rdx + 0x10]
jmp 0x140202bc2
mov rdx, qword [rdx + 0x10]
mov rcx, qword [rbx + 8]
mov r8d, 5
call qword [sym.imp.KERNEL32.dll_FindResourceW]
test rax, rax
mov rdi, rax
jne 0x140202b92
call fcn.1401fdbe8
mov rcx, qword [rbx + 8]
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_LoadResource]
test rax, rax
mov rdi, rax
jne 0x140202bac
call fcn.1401fdbe8
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LockResource]
test rax, rax
mov rdi, rax
jne 0x140202bc2
call fcn.1401fdbe8
call fcn.1401f2234
cmp qword [rax + 0x68], 0
je 0x140202bdc
mov rdx, rdi
mov rcx, rbp
call fcn.140201224
mov rdi, rax
mov edx, esi
mov rcx, rdi
call fcn.140202900
mov rcx, qword [rbp + 0xb8]
test rcx, rcx
mov rsi, rax
je 0x140202c03
call qword [sym.imp.KERNEL32.dll_GlobalFree]
and qword [rbp + 0xb8], 0
test rsi, rsi
je 0x140202c12
mov rdi, rsi
mov qword [rbp + 0xb8], rsi
or dword [rbx + 4], 1
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov qword [rbx + 0x10], rdi
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
Function at 0x140204860
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 0x1402048d7
call fcn.1402047ec
test rax, rax
mov rsi, rax
jne 0x140204893
mov eax, edi
jmp 0x1402048ed
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 0x14020488f
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 0x1402049c0
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 0x140204a87
cmp r8, rbx
jne 0x140204a1b
call fcn.1402046e8
cmp rax, rbx
mov rdi, rax
jne 0x140204a0a
xor eax, eax
jmp 0x140204a9d
mov rdx, rsi
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov rcx, rdi
jmp 0x140204a76
cmp r9, rbx
jne 0x140204a3b
call fcn.1402047ec
cmp rax, rbx
mov rdi, rax
je 0x140204a03
mov rdx, rbp
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
jmp 0x140204a16
call fcn.1402047ec
cmp rax, rbx
mov r12, rax
je 0x140204a03
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 0x140204a9d
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 0x140204ab8
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 0x140204b3a
call fcn.1402047ec
cmp rax, rdi
mov rsi, rax
jne 0x140204b00
xor eax, eax
jmp 0x140204bc8
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 0x140204bc8
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.1401f0b44
cmp r12d, edi
mov r9d, edi
mov r13, rax
jbe 0x140204ba1
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 0x140204b73
lea eax, [r9 + r9]
mov r8, r14
mov rdx, rsi
mov r9, r13
mov rcx, rbx
mov word [r13 + rax*2], di
call fcn.1402049c0
mov rcx, r13
mov ebx, eax
call fcn.1401f0b88
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
Function at 0x140204e30
Capabilities:
Query or enumerate registry value

Disassembly:
push rbp
push rsi
push rdi
sub rsp, 0x40
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rsp + 0x68], rbx
mov rsi, r9
mov rbp, r8
and qword [r9], 0
mov rbx, qword [rsp + 0x80]
and dword [rbx], 0
cmp qword [rcx + 0xa8], 0
je 0x140204f15
call fcn.1402047ec
mov rdi, rax
test rax, rax
je 0x140205012
mov qword [rsp + 0x38], rax
and dword [rsp + 0x60], 0
and dword [rsp + 0x80], 0
lea rax, [rsp + 0x80]
mov qword [rsp + 0x28], rax
and qword [rsp + 0x20], 0
lea r9, [rsp + 0x60]
xor r8d, r8d
mov rdx, rbp
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov ecx, dword [rsp + 0x80]
mov dword [rbx], ecx
test eax, eax
jne 0x140204ef7
call fcn.1401f0b44
mov qword [rsi], rax
lea rcx, [rsp + 0x80]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x60]
xor r8d, r8d
mov rdx, rbp
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x140204ef7
lea ebx, [rax + 1]
jmp 0x140204f05
mov rcx, qword [rsi]
call fcn.1401f0b88
and qword [rsi], 0
xor ebx, ebx
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, ebx
jmp 0x140205012
and qword [rsp + 0x20], 0
mov r9, r8
mov r8, rdx
lea rdx, [rsp + 0x78]
call fcn.140204be8
nop
mov rax, qword [rsp + 0x78]
movsxd rcx, dword [rax - 0x10]
test ecx, ecx
jne 0x140204f5c
lea rdx, [rax - 0x18]
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140204f55
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
jmp 0x140205012
mov rdi, rcx
shr ecx, 1
mov dword [rbx], ecx
call fcn.1401f0b44
mov qword [rsi], rax
xor r8d, r8d
lea ebx, [r8 + 1]
test rdi, rdi
jle 0x140204fee
xor r10d, r10d
mov r9, rbx
test r9, r9
js 0x140204fe3
mov rax, qword [rsp + 0x78]
lea ecx, [r8 + 1]
cmp ecx, dword [rax - 0x10]
jg 0x140204fe3
movzx r11d, word [r10 + rax + 2]
test r8d, r8d
js 0x140204fd8
cmp r8d, dword [rax - 0x10]
jg 0x140204fd8
sub r11b, bl
shl r11b, 4
add r11b, byte [r10 + rax]
sub r11b, 0x41
mov eax, r8d
cdq
sub eax, edx
sar eax, 1
movsxd rcx, eax
mov rax, qword [rsi]
mov byte [rcx + rax], r11b
add r8d, 2
add r9, 2
add r10, 4
movsxd rax, r8d
cmp rax, rdi
jl 0x140204f7d
jmp 0x140204fee
mov ecx, 0x80070057
call fcn.140002bc0
int3
mov ecx, 0x80070057
call fcn.140002bc0
nop
mov rdx, qword [rsp + 0x78]
add rdx, 0xffffffffffffffe8
or ecx, 0xffffffff
lock xadd dword [rdx + 0x10], ecx
add ecx, 0xffffffff
test ecx, ecx
jg 0x140205010
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
mov eax, ebx
mov rbx, qword [rsp + 0x68]
add rsp, 0x40
pop rdi
pop rsi
pop rbp
ret
Function at 0x140208930
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
sub rsp, 0x20
mov r13, rdx
mov r12, rcx
call fcn.1401f2234
mov rbx, qword [rax + 0x18]
mov r8d, 0xf1
mov rdx, r13
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FindResourceW]
test rax, rax
jne 0x14020896d
xor eax, eax
jmp 0x140208a46
mov rdx, rax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LoadResource]
test rax, rax
mov rdi, rax
je 0x140208966
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
test rax, rax
mov rbx, rax
je 0x140208966
movzx ecx, word [rax + 6]
mov eax, 4
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.1401f0b44
xor r9d, r9d
cmp word [rbx + 6], r9w
mov rbp, rax
jbe 0x1402089e0
mov rdx, rax
lea r8, [rbx + 8]
movzx ecx, word [r8]
add r9d, 1
add r8, 2
mov dword [rdx], ecx
movzx eax, word [rbx + 6]
add rdx, 4
cmp r9d, eax
jl 0x1402089c5
movzx r8d, word [rbx + 6]
mov rdx, rbp
mov rcx, r12
call fcn.1402071a0
mov rcx, rbp
mov esi, eax
call fcn.1401f0b88
test esi, esi
je 0x140208a3b
movzx ecx, word [rbx + 4]
movzx eax, word [rbx + 2]
mov dword [rsp + 0x60], eax
add eax, 7
mov dword [rsp + 0x64], ecx
mov r8, qword [rsp + 0x60]
mov dword [rsp + 0x68], eax
lea eax, [rcx + 7]
mov dword [rsp + 0x6c], eax
mov rdx, qword [rsp + 0x68]
mov rcx, r12
call fcn.140207a68
mov rdx, r13
mov rcx, r12
call fcn.140207b3c
mov esi, eax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FreeResource]
mov eax, esi
mov rbx, qword [rsp + 0x50]
add rsp, 0x20
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret