joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1401eddec
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 0x1401ede2a
mov r8d, esi
mov rcx, qword [rcx + 0x40]
call qword [sym.imp.USER32.dll_GetWindowTextW]
jmp 0x1401edede
call fcn.1401fa4b0
mov r11, rax
xor ecx, ecx
test rax, rax
setne cl
test ecx, ecx
jne 0x1401ede49
mov ecx, 0x80004005
call fcn.140003d20
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.14022a350
test eax, eax
je 0x1401edeb1
cmp eax, 0xc
je 0x1401edeab
cmp eax, 0x16
je 0x1401edea5
cmp eax, 0x22
je 0x1401edea5
cmp eax, 0x50
je 0x1401edeb1
call fcn.1401f8920
int3
call fcn.1401f8920
int3
call fcn.1401f88d8
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 0x1401ededc
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 0x1401eea38
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 0x1401eea95
call fcn.1401ed45c
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 0x1401eeaa6
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rdi, rax
test rdi, rdi
mov ebx, 1
je 0x1401eeae3
cmp word [rdi + 2], 0xffff
mov ecx, dword [rdi]
jne 0x1401eeac7
mov ecx, dword [rdi + 0xc]
movzx edx, word [rdi + 0x12]
movzx eax, word [rdi + 0x14]
jmp 0x1401eeacf
mov dx, word [rdi + 0xa]
mov ax, word [rdi + 0xc]
test ecx, 0x1801
jne 0x1401eeae1
test dx, dx
jne 0x1401eeae1
test ax, ax
je 0x1401eeae3
xor ebx, ebx
cmp qword [rsi + 0xb0], 0
je 0x1401eeaf6
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 0x1401ef24c
Capabilities:
Extract resource via kernel32 functions

Disassembly:
movzx edx, dx
jmp method.YU_mhA.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 0x1401ef28b
cmp dword [rcx + 0xa8], 0
jne 0x1401ef28b
movzx eax, dx
mov dword [rcx + 0xa8], eax
call fcn.1401ed45c
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.1401ef1f0
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 0x1401f023c
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.14020d8b8
test rax, rax
mov rsi, rax
je 0x1401f02b9
mov rcx, rax
call qword [sym.imp.USER32.dll_GetDlgCtrlID]
test rbx, rbx
movzx edi, ax
je 0x1401f02b4
cmp dword [rbx], 0x38
jb 0x1401f02b4
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 0x1401f02b4
or dword [rbx + 4], 0x80000002
mov rax, rdi
jmp 0x1401f02bd
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 0x1401f13b4
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov edi, ecx
call fcn.1401ed4ac
mov rbx, rax
mov rax, qword [rax + 0x78]
test rax, rax
je 0x1401f13eb
mov rcx, qword [rax + 0x40]
test rcx, rcx
je 0x1401f13eb
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 0x1401f141b
test rbx, rbx
je 0x1401f141b
mov ecx, 1
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
js 0x1401f141b
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 0x1401f456c
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.1401f7ef8
lea rcx, [rsp + 0x80]
call fcn.1401f118c
nop
mov rcx, qword [rbp + 0x40]
call qword [sym.imp.USER32.dll_GetTopWindow]
mov rdi, rax
test rax, rax
je 0x1401f46b2
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.1401f34fc
test rax, rax
je 0x1401f4619
and qword [rsp + 0x20], 0
lea r9, [rsp + 0x40]
xor edx, edx
mov r8d, 0xbd11ffff
mov rcx, rax
call fcn.1401f7cfc
test eax, eax
jne 0x1401f4698
and qword [rsp + 0x20], 0
lea r9, [rsp + 0x40]
or r8d, 0xffffffff
mov edx, dword [rsp + 0x48]
mov rcx, rbp
call fcn.1401f7cfc
test eax, eax
jne 0x1401f4698
mov ebx, esi
test esi, esi
je 0x1401f4688
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 0x1401f4662
xor ebx, ebx
jmp 0x1401f4688
lea rcx, [rsp + 0x80]
call fcn.1401ed65c
and eax, 0xf
cmp eax, 3
je 0x1401f4686
cmp eax, 6
je 0x1401f4686
cmp eax, 7
je 0x1401f4686
cmp eax, 9
jne 0x1401f4688
xor ebx, ebx
mov r8d, ebx
mov rdx, r12
lea rcx, [rsp + 0x40]
call fcn.1401f7f28
mov edx, 2
mov rcx, rdi
call qword [sym.imp.USER32.dll_GetWindow]
mov rdi, rax
test rax, rax
jne 0x1401f45c8
and qword [rsp + 0xc0], 0
lea rcx, [rsp + 0x80]
call fcn.1401f40d8
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 0x1401f4e14
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 0x1401f4ecc
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 0x1401f4e64
mov edx, edi
mov rcx, rbx
call fcn.140003d40
test edi, edi
mov rdx, qword [rbx]
js 0x1401f4ec1
cmp edi, dword [rdx - 0xc]
jg 0x1401f4ec1
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 0x1401f4e95
xor eax, eax
jmp 0x1401f4e9e
call fcn.14022b250
test eax, eax
js 0x1401f4eb6
mov rcx, qword [rbx]
cmp eax, dword [rcx - 0xc]
jg 0x1401f4eb6
mov dword [rcx - 0x10], eax
movsxd rcx, eax
mov rax, qword [rbx]
and word [rax + rcx*2], 0
jmp 0x1401f4edc
mov ecx, 0x80070057
call fcn.140003d20
int3
mov ecx, 0x80070057
call fcn.140003d20
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 0x1401f7ad0
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 0x1401f7b38
call fcn.1401ed45c
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 0x1401f7b38
mov rdx, rax
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LoadResource]
test rax, rax
mov rbx, rax
je 0x1401f7b5a
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rdi, rax
mov rdx, rdi
mov rcx, rbp
call fcn.1401f752c
test rdi, rdi
mov esi, eax
je 0x1401f7b58
test rbx, rbx
je 0x1401f7b58
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 0x1401faab0
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.1401fa9a4
cmp dword [rbx], 0
mov ebp, 1
mov rsi, rax
mov rcx, rax
mov dword [rbx + 0x14], ebp
je 0x1401fab6f
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 0x1401fab08
mov edx, ebx
mov rcx, rdi
call fcn.140003d40
test ebx, ebx
mov rdx, qword [rdi]
js 0x1401fab64
cmp ebx, dword [rdx - 0xc]
jg 0x1401fab64
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 0x1401fab38
xor eax, eax
jmp 0x1401fab41
call fcn.14022b250
test eax, eax
js 0x1401fab59
mov rcx, qword [rdi]
cmp eax, dword [rcx - 0xc]
jg 0x1401fab59
mov dword [rcx - 0x10], eax
movsxd rcx, eax
mov rax, qword [rdi]
and word [rax + rcx*2], 0
jmp 0x1401fab77
mov ecx, 0x80070057
call fcn.140003d20
int3
mov ecx, 0x80070057
call fcn.140003d20
int3
mov rdx, qword [rdi]
call fcn.14020d60c
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
Function at 0x1401fddc8
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 0x1401fddf1
mov rdi, qword [rdx + 0x10]
jmp 0x1401fde42
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 0x1401fde12
call fcn.1401f8e50
mov rcx, qword [rbx + 8]
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_LoadResource]
test rax, rax
mov rdi, rax
jne 0x1401fde2c
call fcn.1401f8e50
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LockResource]
test rax, rax
mov rdi, rax
jne 0x1401fde42
call fcn.1401f8e50
call fcn.1401ed45c
cmp qword [rax + 0x68], 0
je 0x1401fde5c
mov rdx, rdi
mov rcx, rbp
call fcn.1401fc4a4
mov rdi, rax
mov edx, esi
mov rcx, rdi
call fcn.1401fdb80
mov rcx, qword [rbp + 0xb8]
test rcx, rcx
mov rsi, rax
je 0x1401fde83
call qword [sym.imp.KERNEL32.dll_GlobalFree]
and qword [rbp + 0xb8], 0
test rsi, rsi
je 0x1401fde92
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 0x1401ffa54
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 0x1401ffacb
call fcn.1401ff9e0
test rax, rax
mov rsi, rax
jne 0x1401ffa87
mov eax, edi
jmp 0x1401ffae1
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 0x1401ffa83
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 0x1401ffbb4
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 0x1401ffc7b
cmp r8, rbx
jne 0x1401ffc0f
call fcn.1401ff8dc
cmp rax, rbx
mov rdi, rax
jne 0x1401ffbfe
xor eax, eax
jmp 0x1401ffc91
mov rdx, rsi
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov rcx, rdi
jmp 0x1401ffc6a
cmp r9, rbx
jne 0x1401ffc2f
call fcn.1401ff9e0
cmp rax, rbx
mov rdi, rax
je 0x1401ffbf7
mov rdx, rbp
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
jmp 0x1401ffc0a
call fcn.1401ff9e0
cmp rax, rbx
mov r12, rax
je 0x1401ffbf7
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 0x1401ffc91
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 0x1401ffcac
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 0x1401ffd2e
call fcn.1401ff9e0
cmp rax, rdi
mov rsi, rax
jne 0x1401ffcf4
xor eax, eax
jmp 0x1401ffdbc
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 0x1401ffdbc
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.1401ebd7c
cmp r12d, edi
mov r9d, edi
mov r13, rax
jbe 0x1401ffd95
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 0x1401ffd67
lea eax, [r9 + r9]
mov r8, r14
mov rdx, rsi
mov r9, r13
mov rcx, rbx
mov word [r13 + rax*2], di
call fcn.1401ffbb4
mov rcx, r13
mov ebx, eax
call fcn.1401ebdc0
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 0x140200024
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 0x140200109
call fcn.1401ff9e0
mov rdi, rax
test rax, rax
je 0x140200206
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 0x1402000eb
call fcn.1401ebd7c
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 0x1402000eb
lea ebx, [rax + 1]
jmp 0x1402000f9
mov rcx, qword [rsi]
call fcn.1401ebdc0
and qword [rsi], 0
xor ebx, ebx
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, ebx
jmp 0x140200206
and qword [rsp + 0x20], 0
mov r9, r8
mov r8, rdx
lea rdx, [rsp + 0x78]
call fcn.1401ffddc
nop
mov rax, qword [rsp + 0x78]
movsxd rcx, dword [rax - 0x10]
test ecx, ecx
jne 0x140200150
lea rdx, [rax - 0x18]
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140200149
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
jmp 0x140200206
mov rdi, rcx
shr ecx, 1
mov dword [rbx], ecx
call fcn.1401ebd7c
mov qword [rsi], rax
xor r8d, r8d
lea ebx, [r8 + 1]
test rdi, rdi
jle 0x1402001e2
xor r10d, r10d
mov r9, rbx
test r9, r9
js 0x1402001d7
mov rax, qword [rsp + 0x78]
lea ecx, [r8 + 1]
cmp ecx, dword [rax - 0x10]
jg 0x1402001d7
movzx r11d, word [r10 + rax + 2]
test r8d, r8d
js 0x1402001cc
cmp r8d, dword [rax - 0x10]
jg 0x1402001cc
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 0x140200171
jmp 0x1402001e2
mov ecx, 0x80070057
call fcn.140003d20
int3
mov ecx, 0x80070057
call fcn.140003d20
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 0x140200204
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 0x140203cd8
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.1401ed45c
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 0x140203d15
xor eax, eax
jmp 0x140203dee
mov rdx, rax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LoadResource]
test rax, rax
mov rdi, rax
je 0x140203d0e
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
test rax, rax
mov rbx, rax
je 0x140203d0e
movzx ecx, word [rax + 6]
mov eax, 4
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.1401ebd7c
xor r9d, r9d
cmp word [rbx + 6], r9w
mov rbp, rax
jbe 0x140203d88
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 0x140203d6d
movzx r8d, word [rbx + 6]
mov rdx, rbp
mov rcx, r12
call fcn.140202538
mov rcx, rbp
mov esi, eax
call fcn.1401ebdc0
test esi, esi
je 0x140203de3
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.140202e00
mov rdx, r13
mov rcx, r12
call fcn.140202ee0
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
Function at 0x1402099f0
Capabilities:
Read file on windows

Disassembly:
push rbx
sub rsp, 0x30
test r8d, r8d
mov rbx, rcx
jne 0x140209a02
xor eax, eax
jmp 0x140209a33
mov rcx, qword [rcx + 8]
and qword [rsp + 0x20], 0
lea r9, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x140209a2f
mov rbx, qword [rbx + 0x18]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rdx, rbx
mov ecx, eax
call fcn.1402099c4
mov eax, dword [rsp + 0x50]
add rsp, 0x30
pop rbx
ret

Function at 0x14020a7d4
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 [0x140315d90]
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 0x14020a8d3
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 0x14020a8aa
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x28]
call fcn.140007530
nop
lea rdx, [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
call fcn.14020a7d4
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 0x14020a891
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
cmp byte [rsp + 0x20], 0
je 0x14020a89a
jmp 0x14020a8aa
jmp 0x14020a82a
cmp ebx, 0x103
je 0x14020a8ba
cmp ebx, 0x3f2
jne 0x14020a8c8
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.1402272f0
lea r11, [rsp + 0x280]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret