joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1400483ec
Capabilities:
Set environment variable

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x20], rdi
push rbp
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xa0
xor r15d, r15d
mov r14, rdx
mov rsi, rcx
mov qword [rbp + 0x17], r15
xor edx, edx
mov qword [rbp + 0x1f], r15
lea rcx, [rbp - 0x39]
mov qword [rbp + 0x27], r15
mov qword [rbp + 0x2f], r15
mov edi, r15d
mov qword [rbp + 0x37], r15
mov byte [rbp + 0x3f], r15b
mov qword [rbp - 0x19], r15
mov qword [rbp - 0x11], r15
mov qword [rbp - 9], r15
mov qword [rbp - 1], r15
mov qword [rbp + 7], r15
mov byte [rbp + 0xf], r15b
call fcn.14002d380
mov rax, qword [rbp - 0x31]
mov ebx, 0xfde9
cmp dword [rax + 0xc], ebx
jne 0x140048476
cmp byte [rbp - 0x21], r15b
je 0x140048471
mov rax, qword [rbp - 0x39]
and dword [rax + 0x3a8], 0xfffffffd
mov r9d, ebx
jmp 0x1400484ac
call fcn.1400385c4
test eax, eax
jne 0x140048498
cmp byte [rbp - 0x21], r15b
je 0x140048490
mov rax, qword [rbp - 0x39]
and dword [rax + 0x3a8], 0xfffffffd
mov r9d, 1
jmp 0x1400484ac
cmp byte [rbp - 0x21], r15b
je 0x1400484a9
mov rax, qword [rbp - 0x39]
and dword [rax + 0x3a8], 0xfffffffd
mov r9d, r15d
lea r8, [rbp + 0x77]
mov rcx, rsi
lea rdx, [rbp + 0x17]
call fcn.14002e4c4
test eax, eax
jne 0x14004854c
xor edx, edx
lea rcx, [rbp - 0x39]
call fcn.14002d380
mov rax, qword [rbp - 0x31]
cmp dword [rax + 0xc], ebx
jne 0x1400484eb
cmp byte [rbp - 0x21], r15b
je 0x140048520
mov rax, qword [rbp - 0x39]
and dword [rax + 0x3a8], 0xfffffffd
jmp 0x140048520
call fcn.1400385c4
test eax, eax
jne 0x14004850c
cmp byte [rbp - 0x21], r15b
je 0x140048505
mov rax, qword [rbp - 0x39]
and dword [rax + 0x3a8], 0xfffffffd
mov ebx, 1
jmp 0x140048520
cmp byte [rbp - 0x21], r15b
je 0x14004851d
mov rax, qword [rbp - 0x39]
and dword [rax + 0x3a8], 0xfffffffd
mov ebx, r15d
mov r9d, ebx
lea r8, [rbp + 0x77]
lea rdx, [rbp - 0x19]
mov rcx, r14
call fcn.14002e4c4
mov rdi, qword [rbp - 9]
test eax, eax
jne 0x14004854c
mov rcx, qword [rbp + 0x27]
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
mov ebx, eax
jmp 0x14004854f
mov ebx, r15d
cmp byte [rbp + 0xf], r15b
je 0x14004855d
mov rcx, rdi
call fcn.140036e80
cmp byte [rbp + 0x3f], r15b
je 0x14004856c
mov rcx, qword [rbp + 0x27]
call fcn.140036e80
lea r11, [rsp + 0xa0]
mov eax, ebx
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
Function at 0x1400496dc
Capabilities:
Clear file content

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
mov rbx, rdx
mov rsi, r8
xor edx, edx
mov r14d, ecx
lea r8d, [rdx + 1]
call fcn.14003c1e8
xor edx, edx
mov ecx, r14d
mov r12, rax
lea r8d, [rdx + 2]
call fcn.14003c1e8
mov rbp, rbx
sub rbp, rax
cmp r12, 0xffffffffffffffff
je 0x14004982c
cmp rax, 0xffffffffffffffff
je 0x14004982c
xor edi, edi
test rbp, rbp
jle 0x1400497d7
lea edx, [rdi + 1]
mov ecx, 0x1000
call fcn.140038284
mov rbx, rax
test rax, rax
jne 0x140049764
lea edi, [rax + 0xc]
mov byte [rsi + 0x30], 1
mov dword [rsi + 0x2c], edi
jmp 0x1400497cd
mov edx, 0x8000
mov ecx, r14d
call fcn.140033f7c
mov r15d, eax
mov eax, 0x1000
mov r8d, ebp
cmp rbp, rax
mov r9, rsi
mov rdx, rbx
mov ecx, r14d
cmovge r8d, eax
call fcn.140039920
cmp eax, 0xffffffff
je 0x1400497ad
cdqe
sub rbp, rax
test rbp, rbp
jg 0x140049774
mov edx, r15d
mov ecx, r14d
call fcn.140033f7c
jmp 0x1400497cd
cmp byte [rsi + 0x38], dil
je 0x1400497c4
cmp dword [rsi + 0x34], 5
jne 0x1400497c4
mov byte [rsi + 0x30], 1
mov dword [rsi + 0x2c], 0xd
cmp byte [rsi + 0x30], dil
je 0x1400497cd
mov edi, dword [rsi + 0x2c]
mov rcx, rbx
call fcn.140036e80
jmp 0x140049840
jns 0x140049840
xor r8d, r8d
mov rdx, rbx
mov ecx, r14d
call fcn.14003c1e8
cmp rax, 0xffffffffffffffff
jne 0x1400497f8
cmp byte [rsi + 0x30], dil
je 0x140049840
mov edi, dword [rsi + 0x2c]
jmp 0x140049840
mov ecx, r14d
call fcn.140041574
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
jne 0x140049840
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov byte [rsi + 0x38], 1
mov edi, 0xd
mov dword [rsi + 0x34], eax
mov byte [rsi + 0x30], 1
mov dword [rsi + 0x2c], 0xd
jmp 0x140049840
xor edi, edi
cmp byte [rsi + 0x30], dil
je 0x140049839
mov eax, dword [rsi + 0x2c]
jmp 0x14004983e
mov eax, 0x16
mov edi, eax
xor r8d, r8d
mov rdx, r12
mov ecx, r14d
call fcn.14003c1e8
mov rbx, qword [rsp + 0x40]
mov eax, edi
mov rdi, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x20
pop r15
pop r14
pop r12
ret
Function at 0x140004750
Capabilities:
Link many functions at runtime

Disassembly:
sub rsp, 0x28
lea rcx, str.ETDApix.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [0x140279688], rax
test rax, rax
je 0x14000490c
lea rdx, str.SetHwnd
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x140279688]
lea rdx, str.UnMouseHookEx
mov qword [0x140279678], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x140279688]
lea rdx, str.SetMouseHookEx
mov qword [0x140279670], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x140279688]
lea rdx, str.UnKBHookEx
mov qword [0x140279668], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x140279688]
lea rdx, str.SetKBHookEx
mov qword [0x140279660], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x140279688]
lea rdx, str.SetHookFlag
mov qword [0x140279658], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x140279688]
lea rdx, str.UpdateApixData
mov qword [0x140279650], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x140279688]
lea rdx, str.GetHotKeyMapList
mov qword [0x140279648], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x140279688]
lea rdx, str.FocusHWndUpdated
mov qword [0x140279640], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x140279688]
lea rdx, str.ProcessMessage
mov qword [0x140279638], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x140279688]
lea rdx, str.IsAtMetroUI
mov qword [0x140279630], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x140279688]
lea rdx, str.FindAcerRing
mov qword [0x140279628], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x140279688]
lea rdx, str.FindAcerRingWithEdge
mov qword [0x140279620], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x140279688]
lea rdx, str.IsAt
mov qword [0x140279618], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x140279688]
lea rdx, str.CanFind
mov qword [0x140279610], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140279608], rax
mov eax, 1
add rsp, 0x28
ret
add rsp, 0x28
ret
Function at 0x14000a4d0
Capabilities:
Set registry value

Disassembly:
mov dword [rsp + 0x18], r8d
push rbx
sub rsp, 0x30
mov rbx, rdx
mov rdx, qword [rdx]
lea rax, [rsp + 0x50]
mov r9d, 4
xor r8d, r8d
mov dword [rsp + 0x28], 4
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rdx, qword [rbx]
sub rdx, 0x18
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14000a518
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
add rsp, 0x30
pop rbx
ret

Function at 0x14000a520
Capabilities:
Set registry value

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
sub rsp, 0x450
mov rax, qword [0x140267b40]
xor rax, rsp
mov qword [rsp + 0x440], rax
mov rsi, qword [r8]
lea rax, [rsp + 0x40]
mov r10d, 0x200
mov r11, rsi
mov rbp, rcx
mov rdi, r8
mov rbx, rdx
mov r9d, r10d
sub r11, rax
lea rcx, [rsp + 0x40]
nop word [rax + rax]
lea rax, [r9 + 0x7ffffdfe]
test rax, rax
je 0x14000a594
movzx eax, word [r11 + rcx]
test ax, ax
je 0x14000a594
mov word [rcx], ax
add rcx, 2
dec r9
jne 0x14000a570
jmp 0x14000a599
test r9, r9
jne 0x14000a59d
sub rcx, 2
xor r9d, r9d
lea rax, [rsp + 0x40]
mov word [rcx], r9w
mov rcx, r10
nop dword [rax]
cmp word [rax], r9w
je 0x14000a5c1
add rax, 2
dec rcx
jne 0x14000a5b0
jmp 0x14000a620
test rcx, rcx
je 0x14000a620
mov rdx, r10
lea rax, [rsp + 0x40]
sub rdx, rcx
mov qword [rsp + 0x30], rdx
lea rax, [rax + rdx*2]
sub r10, rdx
je 0x14000a618
lea rcx, [rdx + 0x7ffffdfe]
lea r8, [0x140223f94]
add rcx, r10
sub r8, rax
test rcx, rcx
je 0x14000a613
movzx edx, word [r8 + rax]
test dx, dx
je 0x14000a613
mov word [rax], dx
add rax, 2
dec rcx
dec r10
jne 0x14000a5f3
jmp 0x14000a618
test r10, r10
jne 0x14000a61c
sub rax, 2
mov word [rax], r9w
mov eax, dword [rsi - 0x10]
mov rdx, qword [rbx]
mov r9d, 1
add eax, eax
xor r8d, r8d
mov rcx, rbp
mov dword [rsp + 0x28], eax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rdx, qword [rbx]
sub rdx, 0x18
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14000a65f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdx, qword [rdi]
sub rdx, 0x18
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14000a676
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [rsp + 0x440]
xor rcx, rsp
call fcn.140199f00
mov rbx, qword [rsp + 0x488]
add rsp, 0x450
pop rdi
pop rsi
pop rbp
ret
Function at 0x14000a6a0
Capabilities:
Query or enumerate registry value

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x30
lea rax, [rsp + 0x58]
mov rdi, rdx
mov rdx, qword [rdx]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x50]
lea r9, [rsp + 0x48]
xor r8d, r8d
mov dword [rsp + 0x50], 0
or ebx, 0xffffffff
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x48], 4
mov dword [rsp + 0x58], 4
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x14000a6fb
cmp dword [rsp + 0x48], 4
cmove ebx, dword [rsp + 0x50]
mov rdx, qword [rdi]
sub rdx, 0x18
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14000a713
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
mov eax, ebx
mov rbx, qword [rsp + 0x40]
add rsp, 0x30
pop rdi
ret
Function at 0x14000a720
Capabilities:
Query or enumerate registry value

Disassembly:
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0x470
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov qword [rsp + 0x4b8], rbx
mov rax, qword [0x140267b40]
xor rax, rsp
mov qword [rsp + 0x460], rax
mov r14, r8
mov rbx, rdx
mov rbp, rcx
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x48], r8
xor r15d, r15d
mov dword [rsp + 0x38], r15d
lea rdx, [0x1402283ec]
call fcn.140019f40
mov dword [rsp + 0x38], 1
mov dword [rsp + 0x30], 1
mov dword [rsp + 0x34], 0x400
lea rax, [rsp + 0x34]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x30]
xor r8d, r8d
mov rdx, qword [r14]
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
or rsi, 0xffffffffffffffff
test eax, eax
jne 0x14000a8db
mov ecx, dword [rsp + 0x30]
lea eax, [rcx - 1]
mov ebx, 0x200
lea rdi, [0x140223f94]
cmp eax, 1
jbe 0x14000a7e6
cmp ecx, 7
jne 0x14000a86e
mov eax, dword [rsp + 0x34]
lea rcx, [rsp + 0x60]
test eax, eax
je 0x14000a802
mov rax, rsi
inc rax
cmp word [rcx + rax*2], 0
jne 0x14000a7f6
jmp 0x14000a85a
mov rdx, rbx
mov r8, rdi
lea rax, [rsp + 0x60]
sub r8, rax
lea rax, [rdx + 0x7ffffdfe]
test rax, rax
je 0x14000a834
movzx eax, word [r8 + rcx]
test ax, ax
je 0x14000a834
mov word [rcx], ax
add rcx, 2
dec rdx
jne 0x14000a810
jmp 0x14000a839
test rdx, rdx
jne 0x14000a83d
sub rcx, 2
mov word [rcx], r15w
lea rcx, [rsp + 0x60]
mov rax, rsi
nop dword [rax]
inc rax
cmp word [rcx + rax*2], 0
jne 0x14000a850
mov r8d, eax
lea rdx, [rsp + 0x60]
mov rcx, rbp
call fcn.140019e50
mov ecx, dword [rsp + 0x30]
test ecx, ecx
jne 0x14000a8db
lea rcx, [rsp + 0x60]
lea rax, [rsp + 0x60]
sub rdi, rax
nop
lea rax, [rbx + 0x7ffffdfe]
test rax, rax
je 0x14000a8a3
movzx eax, word [rdi + rcx]
test ax, ax
je 0x14000a8a3
mov word [rcx], ax
add rcx, 2
dec rbx
jne 0x14000a880
jmp 0x14000a8a8
test rbx, rbx
jne 0x14000a8ac
sub rcx, 2
mov word [rcx], r15w
lea rcx, [rsp + 0x60]
mov rax, rsi
nop dword [rax + rax]
inc rax
cmp word [rcx + rax*2], 0
jne 0x14000a8c0
mov r8d, eax
lea rdx, [rsp + 0x60]
mov rcx, rbp
call fcn.140019e50
nop
mov rdx, qword [r14]
sub rdx, 0x18
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14000a8f3
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
mov rax, rbp
mov rcx, qword [rsp + 0x460]
xor rcx, rsp
call fcn.140199f00
mov rbx, qword [rsp + 0x4b8]
add rsp, 0x470
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
Function at 0x140012780
Capabilities:
Terminate process

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov r8d, dword [0x140279c50]
xor edi, edi
test r8d, r8d
jne 0x1400127b2
mov r8d, dword [0x140279c4c]
test r8d, r8d
jne 0x140012805
lea eax, [rdi + 1]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
xor edx, edx
lea ecx, [rdx + 1]
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov rbx, rax
test rax, rax
je 0x1400127ec
or edx, 0xffffffff
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
mov ecx, dword [0x140279c50]
cmp eax, 1
cmove ecx, edi
mov dword [0x140279c50], ecx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, 3
mov ecx, edx
call qword [0x140279358]
mov r8d, dword [0x140279c4c]
test r8d, r8d
je 0x14001284d
xor edx, edx
lea ecx, [rdx + 1]
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov rbx, rax
test rax, rax
je 0x14001283f
or edx, 0xffffffff
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
mov ecx, dword [0x140279c4c]
cmp eax, 1
cmove ecx, edi
mov dword [0x140279c4c], ecx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, 3
lea ecx, [rdx + 1]
call qword [0x140279358]
xor edx, edx
call fcn.140011a40
mov rbx, qword [rsp + 0x30]
mov eax, 1
add rsp, 0x20
pop rdi
ret
Function at 0x140012870
Capabilities:
Create process on windows

Disassembly:
mov rax, rsp
push rdi
sub rsp, 0xe0
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rsi
call fcn.140023c3c
mov rdx, rax
xor ecx, ecx
test rax, rax
setne cl
test ecx, ecx
jne 0x1400128ab
mov ecx, 0x80004005
call fcn.140019e30
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0xf0], rbx
lea rcx, [rsp + 0xf8]
call fcn.140012e60
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x140012928
cmp dword [rbx + 0x10], 0
jl 0x140012916
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x140012916
call fcn.1400198b0
mov rsi, rax
lock add dword [rbx + 0x10], 0xffffffff
jg 0x140012908
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [rsi + 0x18]
mov qword [rsp + 0xf0], rax
jmp 0x140012928
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0xf0]
call fcn.140019e50
nop
mov rdx, qword [rsp + 0xf8]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140012944
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rdx, str.ElantechETDCtrlHelper.exe
lea rcx, [rsp + 0xf0]
call fcn.140018b00
lea rcx, [rsp + 0xa0]
call fcn.14002eff8
nop
xor r8d, r8d
mov rbx, qword [rsp + 0xf0]
mov rdx, rbx
lea rcx, [rsp + 0xa0]
call fcn.14002f32c
mov esi, eax
cmp eax, 1
jne 0x1400129e7
xor edx, edx
lea r8d, [rax + 0x6b]
lea rcx, [rsp + 0x34]
call fcn.14019c000
mov dword [rsp + 0x30], VarBstrFromDisp
mov dword [rsp + 0x34], 0x400
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x60], 0
cmp dword [rbx - 8], esi
jle 0x1400129d6
mov edx, dword [rbx - 0x10]
lea rcx, [rsp + 0xf0]
call fcn.140019cc0
mov rbx, qword [rsp + 0xf0]
mov qword [rsp + 0x48], rbx
lea rcx, [rsp + 0x30]
call qword [sym.imp.SHELL32.dll_ShellExecuteExW]
nop
lea rcx, [rsp + 0xa0]
call fcn.14002f258
nop
lea rdx, [rbx - 0x18]
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140012a09
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, esi
lea r11, [rsp + 0xe0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret
Function at 0x140012e60
Capabilities:
Query or enumerate registry value

Disassembly:
push rdi
sub rsp, 0x460
mov qword [rsp + 0x48], 0xfffffffffffffffe
mov qword [rsp + 0x478], rbx
mov rax, qword [0x140267b40]
xor rax, rsp
mov qword [rsp + 0x450], rax
mov rdi, rcx
mov qword [rsp + 0x40], rcx
xor ebx, ebx
mov dword [rsp + 0x30], ebx
call fcn.140023c3c
mov rcx, rax
test rax, rax
setne bl
test ebx, ebx
jne 0x140012eb7
mov ecx, 0x80004005
call fcn.140019e30
int3
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rdi], rax
mov dword [rsp + 0x30], 1
lea rax, [rsp + 0x38]
mov qword [rsp + 0x20], rax
mov r9d, 0x20019
xor r8d, r8d
lea rdx, str.SoftwareMicrosoftWindowsCurrentVersion
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x140012f59
mov dword [rsp + 0x34], 0x400
lea rax, [rsp + 0x34]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea rdx, str.ProgramFilesDir
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea rax, [rsp + 0x50]
or rcx, 0xffffffffffffffff
inc rcx
cmp word [rax + rcx*2], 0
jne 0x140012f34
mov r8d, ecx
lea rdx, [rsp + 0x50]
mov rcx, rdi
call fcn.140019e50
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rax, rdi
mov rcx, qword [rsp + 0x450]
xor rcx, rsp
call fcn.140199f00
mov rbx, qword [rsp + 0x478]
add rsp, 0x460
pop rdi
ret
Function at 0x140014070
Capabilities:
Set registry value

Disassembly:
sub rsp, 0x148
mov rax, qword [0x140267b40]
xor rax, rsp
mov qword [rsp + 0x130], rax
cmp dword [0x1402794c0], 1
je 0x1400141be
xor eax, eax
mov qword [rsp + 0x140], rdi
lea rcx, [rsp + 0x90]
xor edi, edi
xor edx, edx
mov r8d, LoadRegTypeLib
mov qword [rsp + 0x52], rax
mov qword [rsp + 0x5a], rax
mov qword [rsp + 0x62], rax
mov word [rsp + 0x50], di
mov qword [rsp + 0x6a], rax
mov qword [rsp + 0x72], rax
mov qword [rsp + 0x7a], rax
mov qword [rsp + 0x82], rax
mov dword [rsp + 0x8a], eax
mov word [rsp + 0x8e], ax
call fcn.14019c000
lea r8, [rsp + 0x50]
or edx, 0xffffffff
xor ecx, ecx
call qword [sym.imp.USER32.dll_EnumDisplaySettingsW]
cmp eax, 1
jne 0x140014118
mov edi, dword [rsp + 0xa4]
lea ecx, [rax + 1]
mov edx, edi
call qword [0x140279260]
lea rax, [rsp + 0x38]
lea rdx, str.SoftwareElantechOtherSetting
mov r9d, 0x20006
xor r8d, r8d
mov rcx, 0xffffffff80000001
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1400141b6
lea rdx, str.ScreenOrientationValueToKernel
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x150], rbx
call fcn.140019f40
mov rcx, qword [rsp + 0x38]
mov r9d, 4
mov rbx, rax
lea rax, [rsp + 0x30]
xor r8d, r8d
mov rdx, qword [rbx]
mov dword [rsp + 0x28], 4
mov dword [rsp + 0x30], edi
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rdx, qword [rbx]
sub rdx, 0x18
lock add dword [rdx + 0x10], 0xffffffff
mov rbx, qword [rsp + 0x150]
jg 0x1400141ab
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rdi, qword [rsp + 0x140]
mov rcx, qword [rsp + 0x130]
xor rcx, rsp
call fcn.140199f00
add rsp, 0x148
ret
Function at 0x140016b10
Capabilities:
Create process on windows

Disassembly:
mov rax, rsp
push rdi
sub rsp, 0xe0
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rsi
call fcn.140023c3c
mov rdx, rax
xor ecx, ecx
test rax, rax
setne cl
test ecx, ecx
jne 0x140016b4b
mov ecx, 0x80004005
call fcn.140019e30
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0xf0], rbx
lea rcx, [rsp + 0xf8]
call fcn.140012e60
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x140016bc8
cmp dword [rbx + 0x10], 0
jl 0x140016bb6
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x140016bb6
call fcn.1400198b0
mov rsi, rax
lock add dword [rbx + 0x10], 0xffffffff
jg 0x140016ba8
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [rsi + 0x18]
mov qword [rsp + 0xf0], rax
jmp 0x140016bc8
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0xf0]
call fcn.140019e50
nop
mov rdx, qword [rsp + 0xf8]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140016be4
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rdx, str.ElantechETDGesture.exe
lea rcx, [rsp + 0xf0]
call fcn.140018b00
lea rcx, [rsp + 0xa0]
call fcn.14002eff8
nop
xor r8d, r8d
mov rbx, qword [rsp + 0xf0]
mov rdx, rbx
lea rcx, [rsp + 0xa0]
call fcn.14002f32c
mov esi, eax
cmp eax, 1
jne 0x140016c87
xor edx, edx
lea r8d, [rax + 0x6b]
lea rcx, [rsp + 0x34]
call fcn.14019c000
mov dword [rsp + 0x30], VarBstrFromDisp
mov dword [rsp + 0x34], 0x400
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x60], 0
cmp dword [rbx - 8], esi
jle 0x140016c76
mov edx, dword [rbx - 0x10]
lea rcx, [rsp + 0xf0]
call fcn.140019cc0
mov rbx, qword [rsp + 0xf0]
mov qword [rsp + 0x48], rbx
lea rcx, [rsp + 0x30]
call qword [sym.imp.SHELL32.dll_ShellExecuteExW]
nop
lea rcx, [rsp + 0xa0]
call fcn.14002f258
nop
lea rdx, [rbx - 0x18]
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140016ca9
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, esi
lea r11, [rsp + 0xe0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret
Function at 0x140016cc0
Capabilities:
Create process on windows

Disassembly:
mov rax, rsp
push rdi
sub rsp, 0xe0
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rsi
call fcn.140023c3c
mov rdx, rax
xor ecx, ecx
test rax, rax
setne cl
test ecx, ecx
jne 0x140016cfb
mov ecx, 0x80004005
call fcn.140019e30
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0xf0], rbx
lea rcx, [rsp + 0xf8]
call fcn.140012e60
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x140016d78
cmp dword [rbx + 0x10], 0
jl 0x140016d66
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x140016d66
call fcn.1400198b0
mov rsi, rax
lock add dword [rbx + 0x10], 0xffffffff
jg 0x140016d58
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [rsi + 0x18]
mov qword [rsp + 0xf0], rax
jmp 0x140016d78
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0xf0]
call fcn.140019e50
nop
mov rdx, qword [rsp + 0xf8]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140016d94
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rdx, str.ElantechETDGesture_DELL.exe
lea rcx, [rsp + 0xf0]
call fcn.140018b00
lea rcx, [rsp + 0xa0]
call fcn.14002eff8
nop
xor r8d, r8d
mov rbx, qword [rsp + 0xf0]
mov rdx, rbx
lea rcx, [rsp + 0xa0]
call fcn.14002f32c
mov esi, eax
cmp eax, 1
jne 0x140016e37
xor edx, edx
lea r8d, [rax + 0x6b]
lea rcx, [rsp + 0x34]
call fcn.14019c000
mov dword [rsp + 0x30], VarBstrFromDisp
mov dword [rsp + 0x34], 0x400
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x60], 0
cmp dword [rbx - 8], esi
jle 0x140016e26
mov edx, dword [rbx - 0x10]
lea rcx, [rsp + 0xf0]
call fcn.140019cc0
mov rbx, qword [rsp + 0xf0]
mov qword [rsp + 0x48], rbx
lea rcx, [rsp + 0x30]
call qword [sym.imp.SHELL32.dll_ShellExecuteExW]
nop
lea rcx, [rsp + 0xa0]
call fcn.14002f258
nop
lea rdx, [rbx - 0x18]
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140016e59
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, esi
lea r11, [rsp + 0xe0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret