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

Disassembly:
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x40
test rdx, rdx
mov rsi, r9
mov rdi, r8
jne 0x1400da761
mov rdx, qword [r8]
sub rdx, 0x18
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400da754
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
mov rsi, qword [rsp + 0x60]
add rsp, 0x40
pop rdi
ret
test r9, r9
je 0x1400da735
mov r9d, dword [rsp + 0x70]
xor eax, eax
xor r8d, r8d
mov dword [rsp + 0x58], eax
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x38]
or r9d, 1
mov rcx, 0xffffffff80000002
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1400da868
mov rdx, qword [rdi]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x50], rbx
mov rbx, qword [rsp + 0x38]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x58]
lea r9, [rsp + 0x34]
xor r8d, r8d
mov rcx, rbx
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x30], 4
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1400da829
cmp dword [rsp + 0x34], 4
jne 0x1400da829
test rbx, rbx
mov eax, dword [rsp + 0x58]
mov dword [rsi], eax
je 0x1400da7f5
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rdx, qword [rdi]
sub rdx, 0x18
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400da814
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, 1
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x60]
add rsp, 0x40
pop rdi
ret
test rbx, rbx
je 0x1400da837
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rdx, qword [rdi]
sub rdx, 0x18
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400da856
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x60]
xor eax, eax
add rsp, 0x40
pop rdi
ret
mov rdx, qword [rdi]
jmp 0x1400da738
Function at 0x1400da870
Capabilities:
Set registry value

Disassembly:
push rbx
push rbp
push r13
sub rsp, 0x40
test rdx, rdx
mov r13d, r9d
mov rbx, r8
mov rbp, rdx
jne 0x1400da8b1
mov rdx, qword [r8]
sub rdx, 0x18
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400da8a6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
add rsp, 0x40
pop r13
pop rbp
pop rbx
ret
mov rdx, qword [r8]
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x70], rdi
lea rdi, [0x14017f438]
mov ecx, 1
mov rsi, rdx
repe cmpsw word [rsi], word [rdi]
jne 0x1400da8f5
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400da8ee
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
jmp 0x1400daa51
lea rax, [rsp + 0x30]
mov qword [rsp + 0x78], r12
mov r12d, dword [rsp + 0x80]
mov r9d, r12d
xor edi, edi
xor r8d, r8d
mov rdx, rbp
mov rcx, 0xffffffff80000002
or r9d, 0x2001f
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1400da939
mov rdi, qword [rsp + 0x30]
xor esi, esi
test eax, eax
sete sil
test rdi, rdi
je 0x1400da94f
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test esi, esi
jne 0x1400da969
mov r8d, r12d
mov rdx, rbp
mov rcx, 0xffffffff80000002
call fcn.1400db5c0
test eax, eax
je 0x1400da9e1
lea rax, [rsp + 0x38]
or r12d, 2
xor r8d, r8d
mov rdx, rbp
mov rcx, 0xffffffff80000002
mov r9d, r12d
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x38], 0
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1400daa2b
mov rdi, qword [rsp + 0x38]
mov rdx, qword [rbx]
lea rax, [rsp + 0x68]
mov rcx, rdi
mov r9d, 4
xor r8d, r8d
mov dword [rsp + 0x28], 4
mov dword [rsp + 0x68], r13d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
je 0x1400da9f7
test rdi, rdi
je 0x1400da9e1
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rdx, qword [rbx]
sub rdx, 0x18
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jmp 0x1400daa3f
test rdi, rdi
je 0x1400daa05
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rdx, qword [rbx]
sub rdx, 0x18
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400daa24
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, 1
jmp 0x1400daa4c
mov rdx, qword [rbx]
sub rdx, 0x18
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400daa4a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
mov r12, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x70]
add rsp, 0x40
pop r13
pop rbp
pop rbx
ret
Function at 0x1400dab80
Capabilities:
Set registry value

Disassembly:
push rdi
sub rsp, 0x50
mov qword [rsp + 0x48], 0xfffffffffffffffe
mov qword [rsp + 0x60], rbx
mov edi, r8d
mov rbx, rcx
mov qword [rsp + 0x40], 0
lea rcx, [rsp + 0x38]
call fcn.1400db3f0
mov qword [rsp + 0x30], 0
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
mov r9d, 2
xor r8d, r8d
mov rdx, rbx
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1400dac88
mov rcx, qword [rsp + 0x30]
mov qword [rsp + 0x40], rcx
mov dword [rsp + 0x78], edi
mov dword [rsp + 0x28], 4
lea rax, [rsp + 0x78]
mov qword [rsp + 0x20], rax
mov r9d, 4
xor r8d, r8d
mov rdx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
je 0x1400dac4f
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400dac3b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x1400dac4b
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
jmp 0x1400dacac
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400dac71
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x1400dac81
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, 1
jmp 0x1400dacac
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400dacaa
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
xor eax, eax
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop rdi
ret
Function at 0x1400dadf0
Capabilities:
Query or enumerate registry value
Set registry value

Disassembly:
push rdi
sub rsp, 0x60
mov qword [rsp + 0x58], 0xfffffffffffffffe
mov qword [rsp + 0x70], rbx
mov edi, r8d
mov rbx, rcx
mov qword [rsp + 0x50], 0
lea rcx, [rsp + 0x40]
call fcn.1400db3f0
mov dword [rsp + 0x88], 0
mov qword [rsp + 0x48], 0
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
mov r9d, 3
xor r8d, r8d
mov rdx, rbx
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1400daf4f
mov rbx, qword [rsp + 0x48]
mov qword [rsp + 0x50], rbx
mov dword [rsp + 0x30], 4
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x88]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x34]
xor r8d, r8d
mov rdx, qword [rsp + 0x40]
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1400daeaf
cmp dword [rsp + 0x34], 4
jne 0x1400daeaf
cmp dword [rsp + 0x88], edi
je 0x1400daf16
mov dword [rsp + 0x38], edi
mov dword [rsp + 0x28], 4
lea rax, [rsp + 0x38]
mov qword [rsp + 0x20], rax
mov r9d, 4
xor r8d, r8d
mov rdx, qword [rsp + 0x40]
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
je 0x1400daf16
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400daf02
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x1400daf12
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
jmp 0x1400daf73
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400daf38
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x1400daf48
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, 1
jmp 0x1400daf73
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400daf71
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
xor eax, eax
mov rbx, qword [rsp + 0x70]
add rsp, 0x60
pop rdi
ret
Function at 0x1400db220
Capabilities:
Set registry value

Disassembly:
mov rax, rsp
push rdi
sub rsp, 0x80
mov qword [rsp + 0x70], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov edi, r8d
mov rbx, rcx
test rcx, rcx
jne 0x1400db24e
xor eax, eax
jmp 0x1400db3b1
xor esi, esi
mov qword [rsp + 0x50], rsi
lea rcx, [rsp + 0x58]
call fcn.1400db3f0
mov qword [rsp + 0x60], rsi
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
lea r9d, [rsi + 2]
xor r8d, r8d
mov rdx, rbx
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1400db295
mov rcx, qword [rsp + 0x60]
mov qword [rsp + 0x50], rcx
jmp 0x1400db2ea
mov qword [rsp + 0x68], rsi
lea rax, [rsp + 0xa8]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x68]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], 0x20006
mov dword [rsp + 0x20], esi
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x1400db38d
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0x50], rcx
mov dword [rsp + 0x90], edi
mov dword [rsp + 0x28], 4
lea rax, [rsp + 0x90]
mov qword [rsp + 0x20], rax
mov r9d, 4
xor r8d, r8d
mov rdx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
je 0x1400db354
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400db340
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x1400db350
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
jmp 0x1400db3b1
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400db376
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x1400db386
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, 1
jmp 0x1400db3b1
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400db3af
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
xor eax, eax
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rsp, r11
pop rdi
ret
Function at 0x1400dba90
Capabilities:
Query or enumerate registry value

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
mov eax, 0x10080
call fcn.140167340
sub rsp, rax
mov qword [rsp + 0x58], 0xfffffffffffffffe
mov qword [rsp + 0x100b8], rbx
mov rax, qword [0x1401ea158]
xor rax, rsp
mov qword [rsp + 0x10070], rax
mov r13, r9
mov r12, r8
mov rbp, rcx
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x50], r8
mov qword [rsp + 0x60], r9
xor ebx, ebx
mov dword [rsp + 0x34], ebx
mov qword [rsp + 0x48], rbx
call fcn.14012a060
mov rcx, rax
mov eax, ebx
test rcx, rcx
setne al
test eax, eax
jne 0x1400dbb0a
mov ecx, 0x80004005
call fcn.140002cb0
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp], rax
lea rdx, [0x14017f438]
or rsi, 0xffffffffffffffff
test rdx, 0xffffffffffff0000
jne 0x1400dbb4b
movzx edi, dx
mov ecx, edi
call fcn.140138f84
test rax, rax
je 0x1400dbb66
mov r8d, edi
mov rdx, rax
mov rcx, rbp
call fcn.140004c30
jmp 0x1400dbb66
xor eax, eax
mov rcx, rsi
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
mov rcx, rbp
call fcn.140003210
nop
mov dword [rsp + 0x34], 1
mov qword [rsp + 0x40], rbx
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
mov r9d, 1
xor r8d, r8d
mov rdx, qword [r12]
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1400dbc2e
mov rbx, qword [rsp + 0x40]
mov qword [rsp + 0x48], rbx
mov dword [rsp + 0x30], 0xfffe
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x38]
xor r8d, r8d
mov rdx, qword [r13]
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1400dbc2e
mov eax, dword [rsp + 0x38]
cmp eax, 1
je 0x1400dbbec
cmp eax, 2
jne 0x1400dbc2e
mov eax, dword [rsp + 0x30]
test eax, eax
je 0x1400dbc05
test al, 1
jne 0x1400dbc2e
shr rax, 1
cmp word [rsp + rax*2 + 0x6e], 0
je 0x1400dbc0c
jmp 0x1400dbc2e
mov word [rsp + 0x70], 0
xor eax, eax
mov rcx, rsi
lea rdi, [rsp + 0x70]
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, [rsp + 0x70]
mov rcx, rbp
call fcn.140003210
nop
test rbx, rbx
je 0x1400dbc3d
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
nop
mov rdx, qword [r12]
sub rdx, 0x18
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400dbc5d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [r13]
sub rdx, 0x18
lock xadd dword [rdx + 0x10], esi
add esi, 0xffffffff
test esi, esi
jg 0x1400dbc7a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, rbp
mov rcx, qword [rsp + 0x10070]
xor rcx, rsp
call fcn.140144dc0
mov rbx, qword [rsp + 0x100b8]
add rsp, 0x10080
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
Function at 0x1400de170
Capabilities:
Resume thread

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
mov qword [rsp + 0x48], 0xfffffffffffffffe
mov qword [rsp + 0xb0], rbx
mov qword [rsp + 0x40], r8
mov rbp, rdx
mov rbx, rcx
mov qword [rsp + 0x50], rcx
call fcn.140133870
nop
lea rax, [0x140196a48]
mov qword [rbx], rax
lea rax, vtable..77.0
mov qword [rbx + 0x40], rax
call fcn.14012a060
mov rcx, rax
xor esi, esi
mov eax, esi
test rcx, rcx
setne al
test eax, eax
jne 0x1400de1dd
mov ecx, 0x80004005
call fcn.140002cb0
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbx + 0x48], rax
lea r12, [rbx + 0x60]
mov qword [r12], rsi
mov qword [rbx + 0x68], rsi
mov qword [rbx + 0x70], rsi
mov qword [rbx + 0x78], rsi
lea rdi, [rbx + 0x80]
mov esi, 4
nop
nop
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [rdi], rax
add rdi, 8
sub rsi, 1
jne 0x1400de210
test rbp, rbp
jne 0x1400de236
xor ecx, ecx
jmp 0x1400de249
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, rbp
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
mov r8d, ecx
mov rdx, rbp
lea rcx, [rbx + 0x48]
call fcn.140003210
mov rcx, qword [rsp + 0x40]
mov eax, dword [rcx]
mov dword [rbx + 0x50], eax
mov eax, dword [rcx + 4]
mov dword [rbx + 0x54], eax
mov eax, dword [rcx + 8]
mov dword [rbx + 0x58], eax
mov eax, dword [rcx + 0xc]
mov dword [rbx + 0x5c], eax
mov qword [rsp + 0x20], r12
lea r9, [0x140190548]
xor edx, edx
lea r8d, [rdx + 1]
lea rcx, [0x140190538]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x1400de345
mov rcx, qword [r12]
mov rax, qword [rcx]
lea rdx, [rbx + 0x40]
call qword [rax + 0x30]
test eax, eax
js 0x1400de345
xor ebp, ebp
mov qword [rsp + 0x28], rbp
mov dword [rsp + 0x20], 4
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
lea rcx, [0x1400de9e0]
call fcn.1401360c0
mov rsi, rax
test rax, rax
je 0x1400de345
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rcx, rax
mov dword [rsp + 0x30], 2
mov dword [rsp + 0x28], ebp
mov dword [rsp + 0x20], ebp
lea r9, [rbx + 0x78]
mov r8, rdi
mov rdx, qword [rsi + 0x58]
call qword [sym.imp.KERNEL32.dll_DuplicateHandle]
mov rcx, qword [rsi + 0x58]
call qword [sym.imp.KERNEL32.dll_ResumeThread]
mov rcx, rbx
call fcn.1400de8c0
test eax, eax
je 0x1400de345
mov rcx, rbx
call fcn.1400de8c0
test eax, eax
je 0x1400de345
mov rcx, qword [rbx + 0x80]
test rcx, rcx
je 0x1400de345
call qword [sym.imp.KERNEL32.dll_SetEvent]
nop
mov rax, rbx
mov rbx, qword [rsp + 0xb0]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
Function at 0x1400e6870
Capabilities:
Link many functions at runtime

Disassembly:
push rbx
sub rsp, 0x20
cmp dword [rcx], 0
mov rbx, rcx
je 0x1400e6889
mov eax, 1
add rsp, 0x20
pop rbx
ret
lea rcx, str.SRCOM64.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
test rax, rax
mov qword [rbx + 8], rax
je 0x1400e6a40
lea rdx, str.sffxInit
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 8]
lea rdx, str.sffxFree
mov qword [rbx + 0x10], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 8]
lea rdx, str.sffxGetPower
mov qword [rbx + 0x18], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 8]
lea rdx, str.sffxSetPower
mov qword [rbx + 0x20], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 8]
lea rdx, str.sffxGetUserControlValue
mov qword [rbx + 0x28], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 8]
lea rdx, str.sffxSetUserControlValue
mov qword [rbx + 0x30], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 8]
lea rdx, str.sffxResetPreset
mov qword [rbx + 0x38], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 8]
lea rdx, str.sffxGetPreset
mov qword [rbx + 0x40], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 8]
lea rdx, str.sffxSetPreset
mov qword [rbx + 0x48], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 8]
lea rdx, str.sffxGetNumPresets
mov qword [rbx + 0x50], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 8]
lea rdx, str.sffxGetDefaultPlaybackDevice
mov qword [rbx + 0x58], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 8]
lea rdx, str.sffxSetSelectedPlaybackDevice
mov qword [rbx + 0x60], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 8]
lea rdx, str.sffxGetNumPlaybackDevices
mov qword [rbx + 0x68], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 8]
lea rdx, str.sffxGetPlaybackDeviceIndex
mov qword [rbx + 0x70], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 8]
lea rdx, str.sffxSetJackState
mov qword [rbx + 0x78], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 8]
lea rdx, str.sffxGetJackState
mov qword [rbx + 0x80], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 8]
lea rdx, str.sffxGetNumJackStates
mov qword [rbx + 0x88], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 8]
lea rdx, str.sffxGetJackStateInfo
mov qword [rbx + 0x90], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x98], rax
mov rax, qword [rbx + 0x10]
test rax, rax
je 0x1400e6a40
call rax
cmp eax, 0x80000001
je 0x1400e6a40
mov dword [rbx], 1
mov eax, dword [rbx]
add rsp, 0x20
pop rbx
ret
Function at 0x1400e8030
Capabilities:
Print debug messages

Disassembly:
mov qword [rsp + 0x18], r8
push rdi
sub rsp, 0x30
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x58], rsi
mov rsi, r8
cmp dword [rcx + 0x38], 0
jne 0x1400e807e
mov rdx, qword [r8]
sub rdx, 0x18
or edi, 0xffffffff
lock xadd dword [rdx + 0x10], edi
add edi, 0xffffffff
test edi, edi
jg 0x1400e8178
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x1400e8178
mov rcx, qword [rcx + 0x40]
test rcx, rcx
jne 0x1400e80af
mov rdx, qword [r8]
sub rdx, 0x18
or edi, 0xffffffff
lock xadd dword [rdx + 0x10], edi
add edi, 0xffffffff
test edi, edi
jg 0x1400e8178
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x1400e8178
or edi, 0xffffffff
test edx, edx
jne 0x1400e815c
call qword [sym.imp.SECOMN64.dll_SEAPOCOMAPI_GetLastError]
mov ebx, eax
call fcn.14012a060
mov r11, rax
xor ecx, ecx
test rax, rax
setne cl
test ecx, ecx
jne 0x1400e80e1
mov ecx, 0x80004005
call fcn.140002cb0
int3
mov rax, qword [rax]
mov rcx, r11
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x40], rax
cmp ebx, 0xffffff00
jne 0x1400e811a
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
mov r8, qword [rsi]
lea rdx, [0x1401974c8]
lea rcx, [rsp + 0x40]
call fcn.140004aa0
jmp 0x1400e8131
mov r9d, ebx
mov r8, qword [rsi]
lea rdx, str._s_Error___d_n
lea rcx, [rsp + 0x40]
call fcn.140004aa0
mov rbx, qword [rsp + 0x40]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
nop
lea rdx, [rbx - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400e815c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsi]
sub rdx, 0x18
lock xadd dword [rdx + 0x10], edi
add edi, 0xffffffff
test edi, edi
jg 0x1400e8178
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x58]
add rsp, 0x30
pop rdi
ret