joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1401e3484
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.1401e6e18
lea rcx, [rsp + 0x80]
call fcn.1401e00a4
nop
mov rcx, qword [rbp + 0x40]
call qword [sym.imp.USER32.dll_GetTopWindow]
mov rdi, rax
test rax, rax
je 0x1401e35ca
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.1401e2414
test rax, rax
je 0x1401e3531
and qword [rsp + 0x20], 0
lea r9, [rsp + 0x40]
xor edx, edx
mov r8d, 0xbd11ffff
mov rcx, rax
call fcn.1401e6c14
test eax, eax
jne 0x1401e35b0
and qword [rsp + 0x20], 0
lea r9, [rsp + 0x40]
or r8d, 0xffffffff
mov edx, dword [rsp + 0x48]
mov rcx, rbp
call fcn.1401e6c14
test eax, eax
jne 0x1401e35b0
mov ebx, esi
test esi, esi
je 0x1401e35a0
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 0x1401e357a
xor ebx, ebx
jmp 0x1401e35a0
lea rcx, [rsp + 0x80]
call fcn.1401dc56c
and eax, 0xf
cmp eax, 3
je 0x1401e359e
cmp eax, 6
je 0x1401e359e
cmp eax, 7
je 0x1401e359e
cmp eax, 9
jne 0x1401e35a0
xor ebx, ebx
mov r8d, ebx
mov rdx, r12
lea rcx, [rsp + 0x40]
call fcn.1401e6e48
mov edx, 2
mov rcx, rdi
call qword [sym.imp.USER32.dll_GetWindow]
mov rdi, rax
test rax, rax
jne 0x1401e34e0
and qword [rsp + 0xc0], 0
lea rcx, [rsp + 0x80]
call fcn.1401e2ff0
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 0x1401e3d2c
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 0x1401e3de4
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 0x1401e3d7c
mov edx, edi
mov rcx, rbx
call fcn.140003c90
test edi, edi
mov rdx, qword [rbx]
js 0x1401e3dd9
cmp edi, dword [rdx - 0xc]
jg 0x1401e3dd9
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 0x1401e3dad
xor eax, eax
jmp 0x1401e3db6
call fcn.14021a160
test eax, eax
js 0x1401e3dce
mov rcx, qword [rbx]
cmp eax, dword [rcx - 0xc]
jg 0x1401e3dce
mov dword [rcx - 0x10], eax
movsxd rcx, eax
mov rax, qword [rbx]
and word [rax + rcx*2], 0
jmp 0x1401e3df4
mov ecx, 0x80070057
call fcn.140003c70
int3
mov ecx, 0x80070057
call fcn.140003c70
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 0x1401e69e8
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 0x1401e6a50
call fcn.1401dc36c
mov r8d, pe_nt_image_headers64
mov rdx, rsi
mov r12, qword [rax + 0x18]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_FindResourceW]
test rax, rax
je 0x1401e6a50
mov rdx, rax
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LoadResource]
test rax, rax
mov rbx, rax
je 0x1401e6a72
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rdi, rax
mov rdx, rdi
mov rcx, rbp
call fcn.1401e6444
test rdi, rdi
mov esi, eax
je 0x1401e6a70
test rbx, rbx
je 0x1401e6a70
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 0x1401e985c
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.1401e9750
cmp dword [rbx], 0
mov ebp, 1
mov rsi, rax
mov rcx, rax
mov dword [rbx + 0x14], ebp
je 0x1401e991b
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 0x1401e98b4
mov edx, ebx
mov rcx, rdi
call fcn.140003c90
test ebx, ebx
mov rdx, qword [rdi]
js 0x1401e9910
cmp ebx, dword [rdx - 0xc]
jg 0x1401e9910
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 0x1401e98e4
xor eax, eax
jmp 0x1401e98ed
call fcn.14021a160
test eax, eax
js 0x1401e9905
mov rcx, qword [rdi]
cmp eax, dword [rcx - 0xc]
jg 0x1401e9905
mov dword [rcx - 0x10], eax
movsxd rcx, eax
mov rax, qword [rdi]
and word [rax + rcx*2], 0
jmp 0x1401e9923
mov ecx, 0x80070057
call fcn.140003c70
int3
mov ecx, 0x80070057
call fcn.140003c70
int3
mov rdx, qword [rdi]
call fcn.1401fc488
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
Function at 0x1401eccc8
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 0x1401eccf1
mov rdi, qword [rdx + 0x10]
jmp 0x1401ecd42
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 0x1401ecd12
call fcn.1401e7d68
mov rcx, qword [rbx + 8]
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_LoadResource]
test rax, rax
mov rdi, rax
jne 0x1401ecd2c
call fcn.1401e7d68
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LockResource]
test rax, rax
mov rdi, rax
jne 0x1401ecd42
call fcn.1401e7d68
call fcn.1401dc36c
cmp qword [rax + 0x68], 0
je 0x1401ecd5c
mov rdx, rdi
mov rcx, rbp
call fcn.1401eb39c
mov rdi, rax
mov edx, esi
mov rcx, rdi
call fcn.1401eca80
mov rcx, qword [rbp + 0xb8]
test rcx, rcx
mov rsi, rax
je 0x1401ecd83
call qword [sym.imp.KERNEL32.dll_GlobalFree]
and qword [rbp + 0xb8], 0
test rsi, rsi
je 0x1401ecd92
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 0x1401ee9b4
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 0x1401eea2b
call fcn.1401ee940
test rax, rax
mov rsi, rax
jne 0x1401ee9e7
mov eax, edi
jmp 0x1401eea41
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 0x1401ee9e3
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 0x1401eeb14
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 0x1401eebdb
cmp r8, rbx
jne 0x1401eeb6f
call fcn.1401ee83c
cmp rax, rbx
mov rdi, rax
jne 0x1401eeb5e
xor eax, eax
jmp 0x1401eebf1
mov rdx, rsi
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov rcx, rdi
jmp 0x1401eebca
cmp r9, rbx
jne 0x1401eeb8f
call fcn.1401ee940
cmp rax, rbx
mov rdi, rax
je 0x1401eeb57
mov rdx, rbp
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
jmp 0x1401eeb6a
call fcn.1401ee940
cmp rax, rbx
mov r12, rax
je 0x1401eeb57
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 0x1401eebf1
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 0x1401eec0c
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 0x1401eec8e
call fcn.1401ee940
cmp rax, rdi
mov rsi, rax
jne 0x1401eec54
xor eax, eax
jmp 0x1401eed1c
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 0x1401eed1c
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.1401dac8c
cmp r12d, edi
mov r9d, edi
mov r13, rax
jbe 0x1401eecf5
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 0x1401eecc7
lea eax, [r9 + r9]
mov r8, r14
mov rdx, rsi
mov r9, r13
mov rcx, rbx
mov word [r13 + rax*2], di
call fcn.1401eeb14
mov rcx, r13
mov ebx, eax
call fcn.1401dacd8
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 0x1401eef84
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 0x1401ef069
call fcn.1401ee940
mov rdi, rax
test rax, rax
je 0x1401ef166
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 0x1401ef04b
call fcn.1401dac8c
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 0x1401ef04b
lea ebx, [rax + 1]
jmp 0x1401ef059
mov rcx, qword [rsi]
call fcn.1401dacd8
and qword [rsi], 0
xor ebx, ebx
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, ebx
jmp 0x1401ef166
and qword [rsp + 0x20], 0
mov r9, r8
mov r8, rdx
lea rdx, [rsp + 0x78]
call fcn.1401eed3c
nop
mov rax, qword [rsp + 0x78]
movsxd rcx, dword [rax - 0x10]
test ecx, ecx
jne 0x1401ef0b0
lea rdx, [rax - 0x18]
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1401ef0a9
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
jmp 0x1401ef166
mov rdi, rcx
shr ecx, 1
mov dword [rbx], ecx
call fcn.1401dac8c
mov qword [rsi], rax
xor r8d, r8d
lea ebx, [r8 + 1]
test rdi, rdi
jle 0x1401ef142
xor r10d, r10d
mov r9, rbx
test r9, r9
js 0x1401ef137
mov rax, qword [rsp + 0x78]
lea ecx, [r8 + 1]
cmp ecx, dword [rax - 0x10]
jg 0x1401ef137
movzx r11d, word [r10 + rax + 2]
test r8d, r8d
js 0x1401ef12c
cmp r8d, dword [rax - 0x10]
jg 0x1401ef12c
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 0x1401ef0d1
jmp 0x1401ef142
mov ecx, 0x80070057
call fcn.140003c70
int3
mov ecx, 0x80070057
call fcn.140003c70
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 0x1401ef164
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 0x1401f2de4
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.1401dc36c
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 0x1401f2e21
xor eax, eax
jmp 0x1401f2efa
mov rdx, rax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LoadResource]
test rax, rax
mov rdi, rax
je 0x1401f2e1a
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
test rax, rax
mov rbx, rax
je 0x1401f2e1a
movzx ecx, word [rax + 6]
mov eax, 4
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.1401dac8c
xor r9d, r9d
cmp word [rbx + 6], r9w
mov rbp, rax
jbe 0x1401f2e94
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 0x1401f2e79
movzx r8d, word [rbx + 6]
mov rdx, rbp
mov rcx, r12
call fcn.1401f163c
mov rcx, rbp
mov esi, eax
call fcn.1401dacd8
test esi, esi
je 0x1401f2eef
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.1401f1f0c
mov rdx, r13
mov rcx, r12
call fcn.1401f1fec
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 0x1401f8358
Capabilities:
Read file on windows

Disassembly:
push rbx
sub rsp, 0x30
test r8d, r8d
mov rbx, rcx
jne 0x1401f836a
xor eax, eax
jmp 0x1401f839b
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 0x1401f8397
mov rbx, qword [rbx + 0x18]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rdx, rbx
mov ecx, eax
call fcn.1401f9604
mov eax, dword [rsp + 0x50]
add rsp, 0x30
pop rbx
ret

Function at 0x1401fb0d4
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 [0x140300da0]
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 0x1401fb1d3
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 0x1401fb1aa
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x28]
call fcn.1400073d0
nop
lea rdx, [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
call fcn.1401fb0d4
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 0x1401fb191
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
cmp byte [rsp + 0x20], 0
je 0x1401fb19a
jmp 0x1401fb1aa
jmp 0x1401fb12a
cmp ebx, 0x103
je 0x1401fb1ba
cmp ebx, 0x3f2
jne 0x1401fb1c8
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.140216200
lea r11, [rsp + 0x280]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret
Function at 0x1401fc488
Capabilities:
Get graphical window text

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x230
mov rax, qword [0x140300da0]
xor rax, rsp
mov qword [rsp + 0x220], rax
test rcx, rcx
mov rbx, rdx
mov rdi, rcx
jne 0x1401fc4bd
call fcn.1401e7838
int3
test rdx, rdx
jne 0x1401fc4c8
call fcn.1401e7838
int3
mov rcx, rdx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
and word [rsp + 0x20], 0
lea rcx, [rsp + 0x22]
xor edx, edx
mov r8d, 0x1fe
mov esi, eax
call fcn.1402197d0
mov r8d, 0x100
cmp esi, r8d
ja 0x1401fc51a
lea rdx, [rsp + 0x20]
mov rcx, rdi
call qword [sym.imp.USER32.dll_GetWindowTextW]
cmp eax, esi
jne 0x1401fc51a
lea rcx, [rsp + 0x20]
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x1401fc526
mov rdx, rbx
mov rcx, rdi
call qword [sym.imp.USER32.dll_SetWindowTextW]
mov rcx, qword [rsp + 0x220]
xor rcx, rsp
call fcn.140216200
lea r11, [rsp + 0x230]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret

Function at 0x1401fd288
Capabilities:
Set thread local storage 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, 0x20
mov esi, 1
mov r14, r8
mov rdi, rdx
cmp dword [rdx + 0x10], esi
mov r12, rcx
mov ebp, esi
jle 0x1401fd315
lea ebx, [rsi + 7]
lea r13d, [rsi + 0xf]
test r14, r14
je 0x1401fd2e1
mov rax, qword [r12 + 0x10]
cmp qword [rax + r13 + 8], r14
je 0x1401fd2e1
mov rax, qword [rdi + 0x18]
cmp qword [rbx + rax], 0
je 0x1401fd301
xor esi, esi
jmp 0x1401fd301
mov rax, qword [rdi + 0x18]
mov rcx, qword [rbx + rax]
test rcx, rcx
je 0x1401fd2f8
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov rax, qword [rdi + 0x18]
and qword [rbx + rax], 0
add ebp, 1
add r13, 0x10
add rbx, 8
cmp ebp, dword [rdi + 0x10]
jl 0x1401fd2c1
test esi, esi
je 0x1401fd35c
lea rcx, [r12 + 0x28]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea rcx, [r12 + 0x18]
mov rdx, rdi
call fcn.1401fcda8
lea rcx, [r12 + 0x28]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rcx, qword [rdi + 0x18]
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov r11, qword [rdi]
mov edx, 1
mov rcx, rdi
call qword [r11]
mov ecx, dword [r12]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
add rsp, 0x20
pop r14
pop r13
pop r12
ret
Function at 0x1401ff450
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 r12
push r13
sub rsp, 0x20
mov r12, rdx
mov rbp, rcx
lea rdx, [0x1401ff420]
lea rcx, [0x14030fd38]
mov r13d, r8d
call fcn.1401fcccc
xor ebx, ebx
cmp rax, rbx
mov rsi, rax
jne 0x1401ff494
call fcn.1401e7838
int3
cmp word [rax + 0x10], bx
jne 0x1401ff61d
call fcn.1401dc36c
mov rcx, qword [rax + 0xc8]
mov rdi, qword [rcx]
cmp qword [rdi + 8], rbx
jne 0x1401ff4dd
mov rcx, qword [rdi + 0x18]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
cmp rax, rbx
mov qword [rdi + 8], rax
jne 0x1401ff4dd
mov rcx, qword [rdi + 0x18]
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
cmp rax, rbx
mov qword [rdi + 8], rax
setne al
mov byte [rdi + 0x10], al
mov rdi, qword [rdi + 8]
cmp rdi, rbx
je 0x1401ff596
lea rcx, str.KERNEL32.DLL
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
lea rdx, [0x140253cf0]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp rax, rbx
je 0x1401ff553
call rax
and ax, 0x3ff
cmp ax, 0x11
jne 0x1401ff553
lea rcx, str.MS_UI_Gothic
call fcn.1401ff33c
cmp eax, ebx
je 0x1401ff553
mov eax, r13d
mov r9w, 0xfc11
mov edx, 5
neg eax
mov rcx, rdi
sbb r8, r8
and r8d, 0xe
add r8, 0x3ee
call qword [sym.imp.KERNEL32.dll_FindResourceExW]
cmp rax, rbx
jne 0x1401ff577
neg r13d
mov r8d, 5
mov rcx, rdi
sbb rdx, rdx
and edx, 0xe
add rdx, 0x3ee
call qword [sym.imp.KERNEL32.dll_FindResourceW]
cmp rax, rbx
je 0x1401ff596
mov rdx, rax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LoadResource]
cmp rax, rbx
je 0x1401ff596
mov r8, r12
mov rdx, rbp
mov rcx, rax
call fcn.1401fe23c
mov rax, qword [rbp]
mov ecx, 0xffffffff
mov eax, dword [rax - 0x10]
add eax, 1
add rax, rax
cmp rax, rcx
jbe 0x1401ff5b8
mov ecx, 0x80070057
call fcn.140003c70
int3
mov edx, eax
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
cmp rax, rbx
mov rcx, rax
mov qword [rsi + 8], rax
jne 0x1401ff5d7
call fcn.1401e77f0
int3
mov r8, qword [rbp]
mov eax, dword [r8 - 0x10]
add eax, 1
movsxd rdx, eax
call fcn.1402174f0
cmp eax, ebx
je 0x1401ff614
cmp eax, 0xc
je 0x1401ff60e
cmp eax, 0x16
je 0x1401ff608
cmp eax, 0x22
je 0x1401ff608
cmp eax, 0x50
je 0x1401ff614
call fcn.1401e7838
int3
call fcn.1401e7838
int3
call fcn.1401e77f0
int3
movzx eax, word [r12]
mov word [rsi + 0x10], ax
mov rdi, qword [rsi + 8]
cmp rdi, rbx
jne 0x1401ff62a
mov eax, ebx
jmp 0x1401ff632
mov rcx, rdi
call fcn.14021a160
mov r8d, eax
mov rdx, rdi
mov rcx, rbp
call fcn.140007720
movzx r11d, word [rsi + 0x10]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
cmp r11w, 0xffff
mov word [r12], r11w
setne bl
mov eax, ebx
mov rbx, qword [rsp + 0x40]
add rsp, 0x20
pop r13
pop r12
pop rdi
ret