joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14000139c
Capabilities:
Enumerate processes

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x270
mov rax, qword [0x1400b7a38]
xor rax, rsp
mov qword [rsp + 0x260], rax
mov rsi, rdx
mov rdi, rcx
test rcx, rcx
je 0x140001440
xor edx, edx
lea ecx, [rdx + 2]
call qword [sym.imp.KERNEL32.dll_CreateToolhelp32Snapshot]
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x140001440
xor edx, edx
mov dword [rsp + 0x20], 0x238
mov r8d, 0x234
lea rcx, [rsp + 0x24]
call fcn.14007c100
lea rdx, [rsp + 0x20]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_Process32FirstW]
jmp 0x14000142c
mov rdx, rsi
lea rcx, [rsp + 0x20]
mov rax, rdi
call qword [case.0x14002de11.0]
test eax, eax
jne 0x140001430
lea rdx, [rsp + 0x20]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_Process32NextW]
test eax, eax
jne 0x140001409
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
jmp 0x140001442
xor eax, eax
mov rcx, qword [rsp + 0x260]
xor rcx, rsp
call fcn.1400775a0
lea r11, [rsp + 0x270]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret

Function at 0x140001748
Capabilities:
Get common file path
Get disk information

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rdi
push rbp
lea rbp, [rsp - 0x560]
sub rsp, 0x660
mov rax, qword [0x1400b7a38]
xor rax, rsp
mov qword [rbp + 0x550], rax
mov ebx, ecx
xor edx, edx
lea rcx, [rsp + 0x24]
mov r8d, 0x418
call fcn.14007c100
mov edx, 0x104
mov dword [rsp + 0x20], ebx
lea rcx, [rbp + 0x340]
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
cmp eax, 2
jb 0x140001870
cmp word [rbp + 0x342], 0x3a
jne 0x140001870
lea rcx, str.explorer.exe
mov ebx, eax
call fcn.140057e3c
lea rcx, [rax + 1]
add rcx, rbx
cmp rcx, 0x105
jae 0x140001870
add rbx, rbx
cmp rbx, 0x20a
jae 0x140001896
xor edi, edi
lea rdx, str.explorer.exe
lea rcx, [rbp + 0x340]
mov word [rbp + rbx + 0x340], di
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
lea rcx, [rbp + 0x340]
call fcn.140057e3c
mov r8d, 0x208
mov word [rbp + 0x344], di
lea rdx, [rsp + 0x28]
mov rbx, rax
lea rcx, [rbp + 0x340]
call qword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
mov ecx, eax
test eax, eax
je 0x140001870
lea rax, [rbx - 2]
add rax, rcx
cmp rax, 0x209
jae 0x140001870
lea rdx, [rbp + 0x346]
lea rcx, [rsp + 0x28]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
lea rdx, [rsp + 0x20]
lea rcx, [0x140001610]
call fcn.14000139c
mov eax, dword [rsp + 0x24]
jmp 0x140001872
xor eax, eax
mov rcx, qword [rbp + 0x550]
xor rcx, rsp
call fcn.1400775a0
lea r11, [rsp + 0x660]
mov rbx, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov rsp, r11
pop rbp
ret
call fcn.1400776d4
int3

Function at 0x140001acc
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
test rcx, rcx
je 0x140001afd
call qword [sym.imp.SHLWAPI.dll_PathIsRelativeW]
test eax, eax
jne 0x140001af6
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140001afd
test al, 0x10
jne 0x140001afd
mov eax, 1
jmp 0x140001aff
xor eax, eax
add rsp, 0x20
pop rbx
ret
Function at 0x140001b08
Capabilities:
Check if file exists
Get file attributes

Disassembly:
sub rsp, 0x28
test rcx, rcx
je 0x140001b27
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140001b27
test al, 0x10
je 0x140001b27
mov eax, 1
jmp 0x140001b29
xor eax, eax
add rsp, 0x28
ret

Function at 0x140001c34
Capabilities:
Get token membership

Disassembly:
mov qword [rsp + 8], rbx
push rbp
mov rbp, rsp
sub rsp, 0x80
mov rax, qword [0x1400b7a38]
xor rax, rsp
mov qword [rbp - 8], rax
xor ebx, ebx
mov word [rbp - 0xc], 0x500
lea rax, [rbp - 0x18]
mov dword [rbp - 0x20], ebx
mov qword [rsp + 0x50], rax
lea rcx, [rbp - 0x10]
mov dword [rsp + 0x48], ebx
mov r9d, 0x220
mov dword [rsp + 0x40], ebx
lea r8d, [rbx + 0x20]
mov dword [rsp + 0x38], ebx
mov dl, 2
mov dword [rsp + 0x30], ebx
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], ebx
mov dword [rbp - 0x10], ebx
call qword [sym.imp.ADVAPI32.dll_AllocateAndInitializeSid]
test eax, eax
je 0x140001cbe
mov rdx, qword [rbp - 0x18]
lea r8, [rbp - 0x20]
xor ecx, ecx
call qword [sym.imp.ADVAPI32.dll_CheckTokenMembership]
cmp dword [rbp - 0x20], ebx
lea eax, [rbx + 1]
mov rcx, qword [rbp - 0x18]
cmovne ebx, eax
call qword [sym.imp.ADVAPI32.dll_FreeSid]
mov eax, ebx
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.1400775a0
mov rbx, qword [rsp + 0x90]
add rsp, 0x80
pop rbp
ret

Function at 0x140001ce0
Capabilities:
Find taskbar

Disassembly:
push rbx
sub rsp, 0x30
and dword [rsp + 0x40], 0
lea rcx, str.Shell_TrayWnd
and qword [rsp + 0x48], 0
xor edx, edx
and qword [rsp + 0x50], 0
call qword [sym.imp.USER32.dll_FindWindowW]
test rax, rax
je 0x140001d95
lea rdx, [rsp + 0x40]
mov rcx, rax
call qword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov r8d, dword [rsp + 0x40]
test r8d, r8d
je 0x140001d95
xor edx, edx
mov ecx, 0x400
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov rbx, rax
test rax, rax
je 0x140001d95
lea r8, [rsp + 0x48]
mov edx, 2
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_OpenProcessToken]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x48]
lea rax, [rsp + 0x50]
mov qword [rsp + 0x28], rax
mov r9d, 2
xor r8d, r8d
mov dword [rsp + 0x20], 1
mov edx, 0xf01ff
call qword [sym.imp.ADVAPI32.dll_DuplicateTokenEx]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, qword [rsp + 0x50]
jmp 0x140001d97
xor eax, eax
add rsp, 0x30
pop rbx
ret
Function at 0x140001fac
Capabilities:
Create process on windows

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 r14
sub rsp, 0x30
xor ebx, ebx
mov r14, r9
mov rsi, r8
mov rbp, rdx
test rdx, rdx
jne 0x140001fda
test r8, r8
je 0x14000201b
call fcn.140001c34
test eax, eax
jne 0x14000200e
mov ecx, dword [rsp + 0x60]
lea rdx, str.open
mov dword [rsp + 0x28], ecx
mov r9, rsi
xor ecx, ecx
mov qword [rsp + 0x20], r14
mov r8, rbp
call qword [sym.imp.SHELL32.dll_ShellExecuteW]
cmp rax, 0x20
seta bl
jmp 0x140002042
call fcn.140001ce0
mov rdi, rax
test rax, rax
jne 0x14000201f
xor eax, eax
jmp 0x140002044
mov r9d, dword [rsp + 0x60]
mov r8, r14
mov rdx, rsi
mov qword [rsp + 0x20], rdi
mov rcx, rbp
call fcn.140001da0
mov rcx, rdi
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, ebx
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
add rsp, 0x30
pop r14
ret

Function at 0x140002068
Capabilities:
Create process on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rdi
push r12
push r14
push r15
sub rsp, 0x30
mov rbp, r8
mov r12, rdx
mov r8, qword [rsp + 0x70]
mov rdx, r9
mov rdi, r9
mov ebx, ecx
call fcn.140001b74
test eax, eax
jne 0x1400020a7
mov eax, VariantTimeToDosDateTime
jmp 0x140002152
call fcn.140001994
test eax, eax
jne 0x140002129
call fcn.140002060
test eax, eax
je 0x140002129
cmp ebx, 7
je 0x140002102
lea eax, [rbx - 1]
test eax, 0xfffffff7
jne 0x140002129
mov r15, qword [rsp + 0x78]
mov rdx, rdi
mov r14d, dword [rsp + 0x80]
mov r9, r15
mov r8, qword [rsp + 0x70]
mov rcx, rbp
mov dword [rsp + 0x20], r14d
call fcn.1400024d8
test eax, eax
jne 0x14000211f
cmp ebx, 1
jne 0x14000211f
mov dword [rsp + 0x28], r14d
mov qword [rsp + 0x20], r15
jmp 0x14000213e
mov eax, dword [rsp + 0x80]
mov rdx, rdi
mov r9, qword [rsp + 0x78]
mov r8, qword [rsp + 0x70]
mov dword [rsp + 0x20], eax
call fcn.140001fac
neg eax
sbb rax, rax
and eax, 0x21
jmp 0x140002152
mov eax, dword [rsp + 0x80]
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x20], rax
mov r9, qword [rsp + 0x70]
mov r8, rdi
mov rdx, rbp
mov rcx, r12
call qword [sym.imp.SHELL32.dll_ShellExecuteW]
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x60]
add rsp, 0x30
pop r15
pop r14
pop r12
ret
Function at 0x140002f2c
Capabilities:
Create directory

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x140
mov rax, qword [0x1400b7a38]
xor rax, rsp
mov qword [rsp + 0x130], rax
mov rbx, r8
mov rdi, rdx
test rdx, rdx
je 0x140002fce
test rbx, rbx
je 0x140002fce
xor edx, edx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CreateDirectoryA]
xor edx, edx
lea rcx, [rsp + 0x20]
mov r8d, 0x105
call fcn.14007c100
mov r8, rdi
lea rcx, [rsp + 0x20]
mov edi, 0x104
mov edx, edi
call fcn.1400583ec
mov r8, rbx
lea rcx, [rsp + 0x20]
mov edx, edi
call fcn.1400583ec
xor edx, edx
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
jne 0x140002fb9
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x140002fce
lea rcx, [rsp + 0x20]
call fcn.140003cd4
test eax, eax
je 0x140002fce
mov eax, 1
jmp 0x140002fd0
xor eax, eax
mov rcx, qword [rsp + 0x130]
xor rcx, rsp
call fcn.1400775a0
mov rbx, qword [rsp + 0x150]
add rsp, 0x140
pop rdi
ret
Function at 0x140003170
Capabilities:
Create directory
Get common file path

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rdi
push r13
push r14
push r15
sub rsp, 0x390
mov rax, qword [0x1400b7a38]
xor rax, rsp
mov qword [rsp + 0x380], rax
and qword [r8], 0
mov r15b, r9b
movsxd rbx, edx
mov rdi, r8
mov r14, rcx
cmp ebx, 6
ja 0x140003397
mov rax, qword [rcx + rbx*8]
mov rbp, rbx
test rax, rax
je 0x1400031c5
mov qword [r8], rax
xor eax, eax
jmp 0x14000339c
mov r13d, 0x400
mov ecx, r13d
call fcn.1400778d8
mov r8d, r13d
mov qword [rdi], rax
xor edx, edx
mov rcx, rax
call fcn.14007c100
test ebx, ebx
je 0x140003355
sub ebx, 1
je 0x14000334d
sub ebx, 1
je 0x140003345
sub ebx, 1
je 0x14000332e
sub ebx, 1
je 0x140003326
sub ebx, 1
je 0x140003226
cmp ebx, 1
jne 0x140003388
lea r8d, [rbx + 0x29]
jmp 0x14000335b
mov ebx, 0x104
lea rcx, [rsp + 0x50]
mov r8d, ebx
xor edx, edx
call fcn.14007c100
mov r8d, ebx
lea rdx, [rsp + 0x50]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x140003388
mov r8d, ebx
lea rcx, [rsp + 0x160]
xor edx, edx
call fcn.14007c100
mov r8d, ebx
lea rcx, [rsp + 0x270]
xor edx, edx
call fcn.14007c100
and qword [rsp + 0x40], 0
lea r9, [rsp + 0x270]
and qword [rsp + 0x38], 0
lea rdx, [rsp + 0x160]
and qword [rsp + 0x30], 0
lea rcx, [rsp + 0x50]
and qword [rsp + 0x28], 0
mov r8d, ebx
mov qword [rsp + 0x20], rbx
call fcn.1400589e0
mov rcx, qword [rdi]
lea r8, [rsp + 0x160]
mov rdx, r13
call fcn.1400583ec
mov rcx, qword [rdi]
lea r8, [rsp + 0x270]
mov rdx, r13
call fcn.1400583ec
cmp dword [r14 + 0x38], 1
lea rax, [0x14009a050]
mov rcx, qword [rdi]
lea r8, str.RoomConnector
cmovne r8, rax
mov rdx, r13
call fcn.1400583ec
test r15b, r15b
je 0x140003308
mov rcx, qword [rdi]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov rcx, qword [rdi]
lea r8, [0x14009a038]
mov rdx, r13
call fcn.1400583ec
mov rax, qword [rdi]
mov qword [r14 + rbp*8], rax
jmp 0x1400031be
mov r8d, 0x20
jmp 0x14000335b
mov rdx, qword [rdi]
mov ecx, 0x103
call qword [sym.imp.KERNEL32.dll_GetTempPathA]
xor ebx, ebx
test eax, eax
setne bl
jmp 0x140003380
mov r8d, 0x26
jmp 0x14000335b
mov r8d, 0x1c
jmp 0x14000335b
mov r8d, 0x1a
mov rdx, qword [rdi]
mov r9d, 1
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
mov rcx, qword [rdi]
lea r8, [0x14009a038]
mov rdx, r13
mov ebx, eax
call fcn.1400583ec
test ebx, ebx
jne 0x1400032d6
mov rcx, qword [rdi]
call fcn.14002a8f0
mov eax, 3
jmp 0x14000339c
mov eax, 1
mov rcx, qword [rsp + 0x380]
xor rcx, rsp
call fcn.1400775a0
mov rbx, qword [rsp + 0x3d8]
add rsp, 0x390
pop r15
pop r14
pop r13
pop rdi
pop rbp
ret
Function at 0x1400033c4
Capabilities:
Check if file exists
Get file attributes

Disassembly:
mov qword [rsp + 0x18], rbx
push rdi
sub rsp, 0x430
mov rax, qword [0x1400b7a38]
xor rax, rsp
mov qword [rsp + 0x420], rax
mov rbx, rdx
mov rdi, rcx
test rcx, rcx
je 0x140003452
test rdx, rdx
je 0x140003452
xor edx, edx
lea rcx, [rsp + 0x20]
mov r8d, 0x400
call fcn.14007c100
mov r8, rdi
lea rcx, [rsp + 0x20]
mov edi, 0x3ff
mov edx, edi
call fcn.14005838c
lea r8, [0x14009a038]
mov edx, edi
lea rcx, [rsp + 0x20]
call fcn.1400583ec
mov r8, rbx
lea rcx, [rsp + 0x20]
mov edx, edi
call fcn.1400583ec
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x140003452
mov eax, 1
jmp 0x140003454
xor eax, eax
mov rcx, qword [rsp + 0x420]
xor rcx, rsp
call fcn.1400775a0
mov rbx, qword [rsp + 0x450]
add rsp, 0x430
pop rdi
ret
Function at 0x140003cd4
Capabilities:
Check if file exists
Delete file
Print debug messages

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
lea rbp, [rsp - 0x80]
sub rsp, 0x180
mov rax, qword [0x1400b7a38]
xor rax, rsp
mov qword [rbp + 0x70], rax
xor ebx, ebx
mov rdi, rcx
test rcx, rcx
je 0x140003deb
lea rcx, str._ProductPathHelper::RecursiveRemoveDirA__Path_is:
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea rcx, [0x14009a1e4]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor edx, edx
lea rcx, [rsp + 0x60]
mov r8d, 0x105
call fcn.14007c100
mov esi, 0x104
lea rcx, [rsp + 0x60]
mov edx, esi
mov r8, rdi
call fcn.14005838c
mov edx, esi
mov rcx, rdi
call fcn.140057cec
cmp rax, rsi
jae 0x140003deb
mov byte [rsp + rax + 0x60], bl
inc rax
cmp rax, 0x105
jae 0x140003e12
mov byte [rsp + rax + 0x60], bl
lea rcx, [rsp + 0x20]
xor eax, eax
xorps xmm0, xmm0
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x60]
movups xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x30], rax
mov eax, 0x414
movups xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x28], 3
movups xmmword [rsp + 0x40], xmm0
mov word [rsp + 0x40], ax
call qword [sym.imp.SHELL32.dll_SHFileOperationA]
mov esi, eax
cmp dword [rsp + 0x44], ebx
jne 0x140003deb
mov rcx, rdi
call qword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x140003deb
test esi, 0xfffffbfd
jne 0x140003de7
cmp esi, 0x400
je 0x140003de7
lea ebx, [rax + 1]
mov eax, ebx
jmp 0x140003ded
xor eax, eax
mov rcx, qword [rbp + 0x70]
xor rcx, rsp
call fcn.1400775a0
lea r11, [rsp + 0x180]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret
call fcn.1400776d4
int3

Function at 0x140003e18
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x440
mov rax, qword [0x1400b7a38]
xor rax, rsp
mov qword [rsp + 0x430], rax
mov rsi, rcx
test rcx, rcx
je 0x140003ed4
mov ebp, 0x400
lea rcx, [rsp + 0x30]
mov r8d, ebp
xor edx, edx
call fcn.14007c100
xor ebx, ebx
lea rdi, [0x14009a1f8]
mov edx, dword [rdi]
lea rax, [rsp + 0x30]
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathA]
test eax, eax
js 0x140003ec9
mov rdx, rbp
lea rcx, [rsp + 0x30]
call fcn.140057cec
test rax, 0xfffffffffffffbff
je 0x140003ec9
cmp byte [rsp + rax + 0x2f], 0x5c
jne 0x140003eb5
lea rcx, [rax - 1]
mov rax, rcx
cmp rcx, rbp
jae 0x140003f06
mov byte [rsp + rcx + 0x30], 0
mov r8, rax
lea rdx, [rsp + 0x30]
mov rcx, rsi
call fcn.14005828c
test eax, eax
je 0x140003eff
inc ebx
add rdi, 4
cmp ebx, 2
jb 0x140003e6a
xor eax, eax
mov rcx, qword [rsp + 0x430]
xor rcx, rsp
call fcn.1400775a0
lea r11, [rsp + 0x440]
mov rbx, qword [r11 + 0x18]
mov rbp, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret
mov eax, 1
jmp 0x140003ed6
call fcn.1400776d4
int3
Function at 0x140004604
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x240
mov rax, qword [0x1400b7a38]
xor rax, rsp
mov qword [rsp + 0x230], rax
xor edx, edx
lea rcx, [0x14009a370]
mov r8d, 0x800
call qword [sym.imp.KERNEL32.dll_LoadLibraryExW]
xor esi, esi
mov rdi, rax
test rax, rax
jne 0x14000469a
xor edx, edx
lea rcx, [rsp + 0x20]
mov r8d, 0x208
call fcn.14007c100
mov edx, 0x104
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x1400046c2
cmp word [rsp + 0x20], si
je 0x1400046c2
lea rcx, [rsp + 0x20]
call fcn.140004510
mov rbx, rax
test rax, rax
je 0x1400046c2
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rcx, rbx
mov rdi, rax
call fcn.1400044c8
mov rax, rdi
mov rcx, qword [rsp + 0x230]
xor rcx, rsp
call fcn.1400775a0
lea r11, [rsp + 0x240]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rsp, r11
pop rdi
ret
xor eax, eax
jmp 0x14000469d

Function at 0x140004838
Capabilities:
Check if file exists
Get file attributes

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x40
and qword [rcx + 8], 0
lea rax, vtable.zoom_windows_util::AutoLockFile.0
mov qword [rcx], rax
mov rdi, rdx
mov rbx, rcx
test rdx, rdx
je 0x140004899
mov rcx, rdx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140004899
and qword [rsp + 0x30], 0
xor r9d, r9d
mov dword [rsp + 0x28], 0x80
mov edx, 0x80000000
mov rcx, rdi
mov dword [rsp + 0x20], 3
lea r8d, [r9 + 1]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [rbx + 8], rax
mov rax, rbx
mov rbx, qword [rsp + 0x50]
add rsp, 0x40
pop rdi
ret

Function at 0x1400053f8
Capabilities:
Query or enumerate registry value

Disassembly:
mov r11, rsp
mov qword [r11 + 8], rbx
mov qword [r11 + 0x18], r8
push rdi
sub rsp, 0x30
mov rdi, r9
lea rax, [r11 + 0x18]
xor ebx, ebx
mov qword [r11 - 0x18], rax
mov r9d, 0x20019
mov qword [r11 + 0x18], rbx
xor r8d, r8d
lea rdx, str.SoftwareMicrosoftInternet_Explorer
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x140005474
mov rax, qword [rsp + 0x60]
lea rdx, str.svcVersion
mov rcx, qword [rsp + 0x50]
xor r9d, r9d
mov qword [rsp + 0x28], rax
xor r8d, r8d
mov qword [rsp + 0x20], rdi
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
lea ecx, [rbx + 1]
cmove ebx, ecx
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, ebx
mov rbx, qword [rsp + 0x40]
add rsp, 0x30
pop rdi
ret
Function at 0x140005484
Capabilities:
Set registry value

Disassembly:
mov r11, rsp
mov dword [r11 + 0x20], r9d
mov qword [r11 + 0x18], r8
push rbx
sub rsp, 0x30
lea rax, [r11 + 0x18]
xor ebx, ebx
mov r9d, 0x20006
mov qword [r11 + 0x18], rbx
xor r8d, r8d
mov qword [r11 - 0x18], rax
lea rdx, str.SoftwareMicrosoftInternet_ExplorerMainFeatureControlFEATURE_BROWSER_EMULATION
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x1400054f7
mov rcx, qword [rsp + 0x50]
lea r9d, [rbx + 4]
lea rax, [rsp + 0x58]
mov dword [rsp + 0x28], r9d
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, [0x14009a0d8]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
lea ecx, [rbx + 1]
cmove ebx, ecx
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, ebx
add rsp, 0x30
pop rbx
ret

Function at 0x140005500
Capabilities:
Delete registry value

Disassembly:
mov r11, rsp
mov qword [r11 + 0x18], r8
push rbx
sub rsp, 0x30
lea rax, [r11 + 0x18]
xor ebx, ebx
mov r9d, 0x20006
mov qword [r11 + 0x18], rbx
xor r8d, r8d
mov qword [r11 - 0x18], rax
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x140005552
mov rcx, qword [rsp + 0x50]
lea rdx, [0x14009a0d8]
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
test eax, eax
lea ecx, [rbx + 1]
cmove ebx, ecx
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, ebx
add rsp, 0x30
pop rbx
ret
Function at 0x14000ad60
Capabilities:
Delete registry value

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xa0
mov rax, qword [0x1400b7a38]
xor rax, rsp
mov qword [rbp + 0x17], rax
mov rsi, r9
mov r15, r8
mov r14, rdx
xor r12d, r12d
mov ebx, r12d
mov qword [rbp - 0x41], rbx
mov dword [rbp - 0x39], r12d
mov qword [rbp - 0x31], r12
mov qword [rbp - 0x29], r12
mov qword [rbp - 0x19], r12
mov qword [rbp - 0x11], r12
mov rdx, r8
lea rcx, [rbp - 0x29]
call fcn.14000c6dc
nop
cmp qword [r14 + 0x10], r12
jne 0x14000adcb
mov rdi, 0xffffffff80000001
jmp 0x14000ae72
mov rdi, 0xffffffff80000003
mov rdx, r14
lea rcx, [rbp - 0x29]
call fcn.140008b10
lea rcx, [0x14009a640]
call fcn.140057e3c
mov r8, rax
lea rdx, [0x14009a640]
lea rcx, [rbp - 0x29]
call fcn.140008a9c
mov qword [rbp - 9], r12
mov qword [rbp + 7], r12
mov qword [rbp + 0xf], r12
mov rdx, r15
lea rcx, [rbp - 9]
call fcn.14000c6dc
nop
lea rdx, [rbp - 9]
cmp qword [rbp + 0xf], 8
cmovae rdx, qword [rbp - 9]
mov r8, qword [rbp + 7]
lea rcx, [rbp - 0x29]
call fcn.140008a9c
nop
mov rdx, qword [rbp + 0xf]
cmp rdx, 8
jb 0x14000ae72
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 9]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000ae6d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000af61
call fcn.14002a8f0
lea rdx, [rbp - 0x29]
cmp qword [rbp - 0x11], 8
cmovae rdx, qword [rbp - 0x29]
mov qword [rbp - 0x49], r12
lea rax, [rbp - 0x49]
mov qword [rsp + 0x20], rax
mov r9d, 0x2001f
xor r8d, r8d
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov edi, eax
test eax, eax
jne 0x14000aeac
mov edi, r12d
mov rbx, qword [rbp - 0x49]
test edi, edi
jne 0x14000aedb
cmp qword [rsi + 0x18], 8
jb 0x14000aeba
mov rsi, qword [rsi]
mov rdx, rsi
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
mov edi, eax
test rbx, rbx
je 0x14000aed9
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rbx, r12
test edi, edi
sete dil
mov rdx, qword [rbp - 0x11]
cmp rdx, 8
jb 0x14000af1b
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x29]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000af16
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000af5b
call fcn.14002a8f0
mov qword [rbp - 0x19], r12
mov qword [rbp - 0x11], 7
mov word [rbp - 0x29], r12w
test rbx, rbx
je 0x14000af3a
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov al, dil
mov rcx, qword [rbp + 0x17]
xor rcx, rsp
call fcn.1400775a0
add rsp, 0xa0
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.140058698
nop
call fcn.140058698
int3