joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14000db40
Capabilities:
Enumerate pe sections

Disassembly:
jmp 0x14005b5f4
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
movsxd r8, dword [0x14000003c]
lea rsi, [0x140000000]
add r8, rsi
mov rbx, rdx
mov rdi, rcx
cmp dword [r8 + 0x84], 0xd
jbe 0x14005b66c
mov r10d, dword [r8 + 0xf0]
xor r9d, r9d
test r10d, r10d
je 0x14005b66c
movzx eax, word [r8 + 0x14]
lea rcx, [r8 + 0x18]
movzx r11d, word [r8 + 6]
add rcx, rax
mov r10d, dword [r10 + rsi + 0xc]
test r11d, r11d
je 0x14005b66c
mov eax, dword [rcx + 0xc]
cmp r10d, eax
jb 0x14005b660
mov edx, dword [rcx + 8]
add eax, edx
cmp r10d, eax
jb 0x14005b67e
inc r9d
add rcx, 0x28
cmp r9d, r11d
jb 0x14005b64e
xor eax, eax
mov rbx, qword [rsp + 8]
mov rsi, qword [rsp + 0x10]
mov rdi, qword [rsp + 0x18]
ret
mov dword [rdi], edx
mov eax, dword [rcx + 0x24]
mov dword [rbx], eax
mov eax, dword [rcx + 0xc]
add rax, rsi
jmp 0x14005b66e

Function at 0x14000dbe0
Capabilities:
Terminate process

Disassembly:
jmp 0x1400e3570
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x28
mov ecx, 0x17
call qword [sym.imp.KERNEL32.dll_IsProcessorFeaturePresent]
test eax, eax
je 0x1400e359e
mov ecx, 5
int 0x29
mov r8d, 1
mov edx, 0xc0000417
mov ecx, 2
call fcn.14000e1d0
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov edx, 0xc0000417
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
add rsp, 0x28
ret

Function at 0x14000e300
Capabilities:
Get thread local storage value

Disassembly:
jmp 0x140079980
mov dword [rsp + 8], ecx
sub rsp, 0x48
call fcn.1400792a0
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0
je 0x1400799bf
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x30], rax
mov ecx, dword [rsp + 0x50]
mov rax, qword [rsp + 0x30]
call qword [0x1401cd010]
jmp 0x1400799c9
mov ecx, dword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
add rsp, 0x48
ret

Function at 0x14000f570
Capabilities:
Query environment variable

Disassembly:
jmp 0x140135ee8
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
call qword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
xor esi, esi
mov rbx, rax
test rax, rax
je 0x140135f85
mov rbp, rax
cmp word [rax], si
je 0x140135f31
or rax, 0xffffffffffffffff
inc rax
cmp word [rbp + rax*2], si
jne 0x140135f18
lea rbp, [rbp + rax*2]
add rbp, 2
cmp word [rbp], si
jne 0x140135f14
sub rbp, rbx
lea r8, str.minkernelcrtsucrt_srcdesktopcrtenvget_environment_from_os.cpp
add rbp, 2
mov r9d, 0x40
sar rbp, 1
add rbp, rbp
mov rcx, rbp
lea edx, [r9 - 0x3e]
call fcn.140007790
mov rdi, rax
test rax, rax
je 0x140135f70
mov r8, rbp
mov rdx, rbx
mov rcx, rax
call fcn.14000cec0
mov rsi, rdi
mov edx, 2
xor ecx, ecx
call fcn.14000dca0
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
mov rbx, qword [rsp + 0x30]
mov rax, rsi
mov rsi, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x140035200
Capabilities:
Delete registry value
Query or enumerate registry value

Disassembly:
jmp 0x140035200
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rsi
push rdi
sub rsp, 0xf8
mov rdi, rsp
mov ecx, 0x3e
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0x110]
mov rax, qword [0x1401b1f88]
xor rax, rsp
mov qword [rsp + 0xe0], rax
mov byte [rsp + 0x40], 0
mov eax, dword [rsp + 0x118]
or eax, 0x2001f
lea r8, [rsp + 0x58]
mov edx, eax
mov rcx, qword [rsp + 0x110]
call fcn.14000aa20
test eax, eax
jne 0x14003532c
lea rax, [rsp + 0x78]
lea rcx, str.Recovery
mov rdi, rax
mov rsi, rcx
mov ecx, 0x12
rep movsb byte [rdi], byte [rsi]
mov dword [rsp + 0xa4], 0
mov dword [rsp + 0xc4], 4
lea rax, [rsp + 0xc4]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0xa4]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0
mov r9d, 0x10
lea r8, [rsp + 0x78]
xor edx, edx
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegGetValueW]
lea rdx, [rsp + 0x78]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [rsp + 0xa4], 0
je 0x14003532c
lea rax, str.Safe_mode_is_ON._Optional_plugins_will_not_be_loaded
mov qword [rsp + 0x20], rax
mov r9d, 2
mov r8d, 0x145
lea rdx, [0x1401676a0]
mov rax, qword [rsp + 0x110]
mov rcx, qword [rax + 8]
call fcn.140001970
mov byte [rsp + 0x40], 1
movzx eax, byte [rsp + 0x40]
mov edi, eax
mov rcx, rsp
lea rdx, [0x140168420]
call fcn.14000eab0
mov eax, edi
mov rcx, qword [rsp + 0xe0]
xor rcx, rsp
call fcn.140004ef0
add rsp, 0xf8
pop rdi
pop rsi
ret
Function at 0x140035370
Capabilities:
Set registry value

Disassembly:
jmp 0x140035370
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rsi
push rdi
sub rsp, 0xd8
mov rdi, rsp
mov ecx, 0x36
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0xf0]
mov rax, qword [0x1401b1f88]
xor rax, rsp
mov qword [rsp + 0xc0], rax
lea rax, [rsp + 0x48]
lea rcx, str.ServiceAutoStart
mov rdi, rax
mov rsi, rcx
mov ecx, 0x22
rep movsb byte [rdi], byte [rsi]
mov eax, dword [rsp + 0xf8]
or eax, 0x20006
lea r8, [rsp + 0x88]
mov edx, eax
mov rcx, qword [rsp + 0xf0]
call fcn.14000aa20
mov dword [rsp + 0x94], eax
cmp dword [rsp + 0x94], 0
jne 0x140035449
mov dword [rsp + 0xa4], 1
mov dword [rsp + 0x28], 4
lea rax, [rsp + 0xa4]
mov qword [rsp + 0x20], rax
mov r9d, 4
xor r8d, r8d
lea rdx, [rsp + 0x48]
mov rcx, qword [rsp + 0x88]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov dword [rsp + 0x94], eax
mov rcx, qword [rsp + 0x88]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [rsp + 0x94], 0
je 0x1400354e1
mov rax, qword [rsp + 0xf0]
add rax, 0x780
mov ecx, dword [rsp + 0x94]
mov dword [rsp + 0x38], ecx
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x48]
mov qword [rsp + 0x28], rax
lea rax, [0x140167740]
mov qword [rsp + 0x20], rax
mov r9d, 1
mov r8d, 0x169
lea rdx, [0x140167790]
mov rax, qword [rsp + 0xf0]
mov rcx, qword [rax + 8]
call fcn.140001970
mov rax, qword [rsp + 0xf0]
add rax, 0x780
mov ecx, dword [rsp + 0x94]
mov dword [rsp + 0x20], ecx
mov r9, rax
lea r8, [rsp + 0x48]
lea rdx, str.Failed_to_save_auto_start_flag__ls_to_registry_for_service__ls._Error__ld
mov ecx, 0x13
call fcn.140007d00
mov rcx, rsp
lea rdx, [0x140168520]
call fcn.14000eab0
mov rcx, qword [rsp + 0xc0]
xor rcx, rsp
call fcn.140004ef0
add rsp, 0xd8
pop rdi
pop rsi
ret
Function at 0x14003c730
Capabilities:
Get common file path

Disassembly:
jmp 0x14003c730
push rdi
sub rsp, 0x40
mov rdi, rsp
mov ecx, 0x10
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov dword [rsp + 0x20], 0
mov qword [rsp + 0x28], 0
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor edx, edx
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
shl rax, 1
mov rdx, rax
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov qword [rsp + 0x28], rax
cmp qword [rsp + 0x28], 0
je 0x14003c7c9
mov edx, dword [rsp + 0x20]
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov dword [rsp + 0x30], eax
cmp dword [rsp + 0x30], 0
je 0x14003c7b5
mov eax, dword [rsp + 0x30]
cmp dword [rsp + 0x20], eax
jae 0x14003c7c9
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov qword [rsp + 0x28], 0
mov rax, qword [rsp + 0x28]
add rsp, 0x40
pop rdi
ret

Function at 0x14003caa0
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x40
mov rdi, rsp
mov ecx, 0x10
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x20], 0
cmp qword [rsp + 0x50], 0
je 0x14003cbc8
xor edx, edx
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov dword [rsp + 0x2c], eax
mov eax, dword [rsp + 0x2c]
inc eax
mov eax, eax
mov qword [rsp + 0x30], rax
mov rcx, qword [rsp + 0x50]
call fcn.14000cb10
mov rcx, qword [rsp + 0x30]
add rcx, rax
mov rax, rcx
shl rax, 1
mov rdx, rax
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0
jne 0x14003cb2b
xor eax, eax
jmp 0x14003cbcd
mov edx, dword [rsp + 0x2c]
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov dword [rsp + 0x2c], eax
mov eax, dword [rsp + 0x2c]
dec eax
mov eax, eax
mov rcx, qword [rsp + 0x20]
movzx eax, word [rcx + rax*2]
cmp eax, 0x5c
je 0x14003cb70
mov eax, dword [rsp + 0x2c]
mov ecx, 0x5c
mov rdx, qword [rsp + 0x20]
mov word [rdx + rax*2], cx
mov eax, dword [rsp + 0x2c]
inc eax
mov dword [rsp + 0x2c], eax
mov dword [rsp + 0x28], 0
jmp 0x14003cb84
mov eax, dword [rsp + 0x28]
inc eax
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x28]
mov qword [rsp + 0x38], rax
mov rcx, qword [rsp + 0x50]
call fcn.14000cb10
mov rcx, qword [rsp + 0x38]
cmp rcx, rax
jae 0x14003cbc8
mov eax, dword [rsp + 0x28]
mov ecx, dword [rsp + 0x28]
mov edx, dword [rsp + 0x2c]
add edx, ecx
mov ecx, edx
mov ecx, ecx
mov rdx, qword [rsp + 0x20]
mov r8, qword [rsp + 0x50]
movzx eax, word [r8 + rax*2]
mov word [rdx + rcx*2], ax
jmp 0x14003cb7a
mov rax, qword [rsp + 0x20]
add rsp, 0x40
pop rdi
ret
Function at 0x14003d090
Capabilities:
Check if file exists
Get file attributes

Disassembly:
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x30
mov rdi, rsp
mov ecx, 0xc
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov dword [rsp + 0x20], eax
mov dword [rsp + 0x24], 0x50
cmp dword [rsp + 0x20], 0xffffffff
je 0x14003d0e6
mov eax, dword [rsp + 0x24]
mov ecx, dword [rsp + 0x20]
and ecx, eax
mov eax, ecx
test eax, eax
jne 0x14003d0e6
mov dword [rsp + 0x28], 1
jmp 0x14003d0ee
mov dword [rsp + 0x28], 0
mov eax, dword [rsp + 0x28]
add rsp, 0x30
pop rdi
ret
Function at 0x140044a10
Capabilities:
Check if file exists

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x30
mov rdi, rsp
mov ecx, 0xc
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x48]
call fcn.140043610
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0
je 0x140044a8a
mov rcx, qword [rsp + 0x20]
call fcn.14003d090
test eax, eax
jne 0x140044a8a
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x28], eax
cmp dword [rsp + 0x28], 2
jne 0x140044a76
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov qword [rsp + 0x20], 0
mov rax, qword [rsp + 0x20]
add rsp, 0x30
pop rdi
ret

Function at 0x14004a070
Capabilities:
Print debug messages

Disassembly:
jmp 0x14004a070
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x20
mov rdi, rsp
mov ecx, 8
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
add rsp, 0x20
pop rdi
ret

Function at 0x14004a140
Capabilities:
Delete file

Disassembly:
jmp 0x14004a140
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x30
mov rdi, rsp
mov ecx, 0xc
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
je 0x14004a174
mov byte [rsp + 0x20], 1
jmp 0x14004a179
mov byte [rsp + 0x20], 0
movzx eax, byte [rsp + 0x20]
add rsp, 0x30
pop rdi
ret

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

Disassembly:
jmp 0x14004a4a0
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x30
mov rdi, rsp
mov ecx, 0xc
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0x40]
mov byte [rsp + 0x20], 0
mov dword [rsp + 0x24], 0
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov dword [rsp + 0x28], eax
cmp dword [rsp + 0x28], 0xffffffff
je 0x14004a4f8
mov eax, dword [rsp + 0x28]
and eax, 0x10
test eax, eax
je 0x14004a4f6
mov byte [rsp + 0x20], 1
jmp 0x14004a501
call fcn.14000b5b0
mov dword [rsp + 0x24], eax
cmp qword [rsp + 0x48], 0
je 0x14004a514
mov rax, qword [rsp + 0x48]
mov ecx, dword [rsp + 0x24]
mov dword [rax], ecx
movzx eax, byte [rsp + 0x20]
add rsp, 0x30
pop rdi
ret
Function at 0x14004a530
Capabilities:
Check if file exists
Get file attributes

Disassembly:
jmp 0x14004a530
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x30
mov rdi, rsp
mov ecx, 0xc
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0x40]
mov byte [rsp + 0x20], 0
mov dword [rsp + 0x24], 0
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov dword [rsp + 0x28], eax
cmp dword [rsp + 0x28], 0xffffffff
je 0x14004a58a
mov eax, dword [rsp + 0x28]
and eax, 0x400
test eax, eax
je 0x14004a588
mov byte [rsp + 0x20], 1
jmp 0x14004a593
call fcn.14000b5b0
mov dword [rsp + 0x24], eax
cmp qword [rsp + 0x48], 0
je 0x14004a5a6
mov rax, qword [rsp + 0x48]
mov ecx, dword [rsp + 0x24]
mov dword [rax], ecx
movzx eax, byte [rsp + 0x20]
add rsp, 0x30
pop rdi
ret

Function at 0x14004a5c0
Capabilities:
Enumerate processes

Disassembly:
jmp 0x14004a5c0
mov dword [rsp + 8], ecx
push rdi
sub rsp, 0x2a0
mov rdi, rsp
mov ecx, 0xa8
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov ecx, dword [rsp + 0x2b0]
mov rax, qword [0x1401b1f88]
xor rax, rsp
mov qword [rsp + 0x290], rax
mov dword [rsp + 0x20], 0
xor edx, edx
mov ecx, 2
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov qword [rsp + 0x28], rax
cmp qword [rsp + 0x28], 0xffffffffffffffff
je 0x14004a676
lea rax, [rsp + 0x40]
mov rdi, rax
xor eax, eax
mov ecx, 0x238
rep stosb byte [rdi], al
mov dword [rsp + 0x40], 0x238
lea rdx, [rsp + 0x40]
mov rcx, qword [rsp + 0x28]
call sub.KERNEL32.dll_Process32FirstW
test eax, eax
je 0x14004a66b
mov eax, dword [rsp + 0x2b0]
cmp dword [rsp + 0x48], eax
jne 0x14004a658
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0x20], eax
jmp 0x14004a66b
lea rdx, [rsp + 0x40]
mov rcx, qword [rsp + 0x28]
call sub.KERNEL32.dll_Process32NextW
test eax, eax
jne 0x14004a641
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [rsp + 0x20]
mov edi, eax
mov rcx, rsp
lea rdx, [0x14016d410]
call fcn.14000eab0
mov eax, edi
mov rcx, qword [rsp + 0x290]
xor rcx, rsp
call fcn.140004ef0
add rsp, 0x2a0
pop rdi
ret

Function at 0x14004a820
Capabilities:
Get session user name

Disassembly:
jmp 0x14004a820
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x40
mov rdi, rsp
mov ecx, 0x10
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0x50]
cmp qword [rsp + 0x50], 0
je 0x14004a889
cmp qword [rsp + 0x58], 0
jbe 0x14004a889
mov eax, dword [rsp + 0x58]
mov dword [rsp + 0x24], eax
lea rdx, [rsp + 0x24]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_GetUserNameW]
cmp eax, 1
jne 0x14004a87a
mov dword [rsp + 0x34], 1
jmp 0x14004a882
mov dword [rsp + 0x34], 0
movzx eax, byte [rsp + 0x34]
jmp 0x14004a88b
xor al, al
mov rdi, rax
mov rcx, rsp
lea rdx, [0x14016d470]
call fcn.14000eab0
mov rax, rdi
add rsp, 0x40
pop rdi
ret
Function at 0x14004b010
Capabilities:
Query environment variable

Disassembly:
jmp 0x14004b010
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x40
mov rdi, rsp
mov ecx, 0x10
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x20], 0
cmp qword [rsp + 0x50], 0
je 0x14004b0b6
xor r8d, r8d
xor edx, edx
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
mov dword [rsp + 0x28], eax
cmp dword [rsp + 0x28], 0
jbe 0x14004b0b6
mov eax, dword [rsp + 0x28]
mov qword [rsp + 0x38], rax
mov eax, 2
mov rcx, qword [rsp + 0x38]
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
lea rdx, [0x1401b6164]
mov rcx, rax
call fcn.14000eef0
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0
je 0x14004b0b6
mov r8d, dword [rsp + 0x28]
mov rdx, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
mov rax, qword [rsp + 0x20]
add rsp, 0x40
pop rdi
ret
Function at 0x140053f50
Capabilities:
Create thread

Disassembly:
jmp 0x140053f50
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x30
mov rdi, rsp
mov ecx, 0xc
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x40]
cmp dword [rax + 0x210], 0
jne 0x140053fb3
lea rax, str.Directory_listener_has_not_been_configured.
mov qword [rsp + 0x20], rax
mov r9d, 1
mov r8d, 0xb0
lea rdx, [0x14016f2c0]
mov rax, qword [rsp + 0x40]
mov rcx, qword [rax + 0x218]
call fcn.140001970
xor al, al
jmp 0x1400541b4
mov rax, qword [rsp + 0x40]
cmp qword [rax + 0x228], 0
je 0x140053ff9
lea rax, str.Directory_listener_is_already_running.
mov qword [rsp + 0x20], rax
mov r9d, 1
mov r8d, 0xb6
lea rdx, [0x14016f340]
mov rax, qword [rsp + 0x40]
mov rcx, qword [rax + 0x218]
call fcn.140001970
xor al, al
jmp 0x1400541b4
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov rcx, qword [rsp + 0x40]
mov qword [rcx + 0x228], rax
mov rax, qword [rsp + 0x40]
cmp qword [rax + 0x228], 0
jne 0x14005405b
lea rax, str.Failed_to_start_directory_listener__no_start_event_.
mov qword [rsp + 0x20], rax
mov r9d, 1
mov r8d, 0xbd
lea rdx, [0x14016f3d0]
mov rax, qword [rsp + 0x40]
mov rcx, qword [rax + 0x218]
call fcn.140001970
xor al, al
jmp 0x1400541b4
xor r9d, r9d
xor r8d, r8d
mov edx, 1
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov rcx, qword [rsp + 0x40]
mov qword [rcx + 8], rax
mov rax, qword [rsp + 0x40]
cmp qword [rax + 8], 0
jne 0x1400540ba
lea rax, str.Failed_to_start_directory_listener__no_quit_event_.
mov qword [rsp + 0x20], rax
mov r9d, 1
mov r8d, 0xc4
lea rdx, [0x14016f460]
mov rax, qword [rsp + 0x40]
mov rcx, qword [rax + 0x218]
call fcn.140001970
xor al, al
jmp 0x1400541b4
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov r9, qword [rsp + 0x40]
lea r8, [0x14000bf00]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov rcx, qword [rsp + 0x40]
mov qword [rcx + 0x220], rax
mov rax, qword [rsp + 0x40]
cmp qword [rax + 0x220], 0
jne 0x140054133
lea rax, str.Failed_to_create_directory_listener_thread.
mov qword [rsp + 0x20], rax
mov r9d, 1
mov r8d, 0xcb
lea rdx, [0x14016f4f0]
mov rax, qword [rsp + 0x40]
mov rcx, qword [rax + 0x218]
call fcn.140001970
xor al, al
jmp 0x1400541b4
mov edx, 0x2710
mov rax, qword [rsp + 0x40]
mov rcx, qword [rax + 0x228]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x140054182
lea rax, str.Failed_to_start_directory_listener_thread.
mov qword [rsp + 0x20], rax
mov r9d, 1
mov r8d, 0xd1
lea rdx, [0x14016f580]
mov rax, qword [rsp + 0x40]
mov rcx, qword [rax + 0x218]
call fcn.140001970
xor al, al
jmp 0x1400541b4
lea rax, str.Directory_listener_thread_started.
mov qword [rsp + 0x20], rax
mov r9d, 4
mov r8d, 0xd5
lea rdx, [0x14016f600]
mov rax, qword [rsp + 0x40]
mov rcx, qword [rax + 0x218]
call fcn.140001970
mov al, 1
add rsp, 0x30
pop rdi
ret
Function at 0x140056cd0
Capabilities:
Get file version info

Disassembly:
jmp 0x140056cd0
mov byte [rsp + 0x18], r8b
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rsi
push rdi
sub rsp, 0x198
mov rdi, rsp
mov ecx, 0x66
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0x1b0]
mov qword [rsp + 0x180], 0xfffffffffffffffe
mov rax, qword [0x1401b1f88]
xor rax, rsp
mov qword [rsp + 0x188], rax
lea rax, [rsp + 0x60]
lea rcx, str.Unknown
mov rdi, rax
mov rsi, rcx
mov ecx, 0x10
rep movsb byte [rdi], byte [rsi]
lea rax, [rsp + 0x70]
mov rdi, rax
xor eax, eax
mov ecx, 0x70
rep stosb byte [rdi], al
xor edx, edx
mov rcx, qword [rsp + 0x1b8]
call sub.VERSION.dll_GetFileVersionInfoSizeW
mov dword [rsp + 0xe4], eax
cmp dword [rsp + 0xe4], 0
je 0x140056eab
mov eax, dword [rsp + 0xe4]
lea rdx, [0x1401b6164]
mov ecx, eax
call fcn.14000eef0
mov qword [rsp + 0x178], rax
mov r8b, 1
mov rdx, qword [rsp + 0x178]
lea rcx, [rsp + 0xf8]
call fcn.140009e50
nop
lea rcx, [rsp + 0xf8]
call fcn.140003380
movzx eax, al
test eax, eax
je 0x140056e9e
lea rcx, [rsp + 0xf8]
call fcn.1400078d0
mov r9, rax
mov r8d, dword [rsp + 0xe4]
xor edx, edx
mov rcx, qword [rsp + 0x1b8]
call sub.VERSION.dll_GetFileVersionInfoW
test eax, eax
je 0x140056e9e
mov qword [rsp + 0x128], 0
mov dword [rsp + 0x144], 0
lea rcx, [rsp + 0xf8]
call fcn.1400078d0
lea r9, [rsp + 0x144]
lea r8, [rsp + 0x128]
lea rdx, [0x140170930]
mov rcx, rax
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x140056e9e
mov rax, qword [rsp + 0x128]
mov eax, dword [rax + 0xc]
and eax, 0xffff
mov rcx, qword [rsp + 0x128]
mov ecx, dword [rcx + 0xc]
shr ecx, 0x10
and ecx, 0xffff
mov rdx, qword [rsp + 0x128]
mov edx, dword [rdx + 8]
and edx, 0xffff
mov rdi, qword [rsp + 0x128]
mov edi, dword [rdi + 8]
shr edi, 0x10
and edi, 0xffff
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x20], edx
mov r9d, edi
lea r8, str._u._u._u._u
mov edx, 0x40
lea rcx, [rsp + 0x60]
call fcn.1400098f0
nop
lea rcx, [rsp + 0xf8]
call fcn.140003e70
call fcn.140005f90
mov qword [rsp + 0x158], rax
mov r8d, 1
mov edx, 0x800
mov rcx, qword [rsp + 0x1b8]
call fcn.140005c60
mov qword [rsp + 0x160], rax
call fcn.140005f90
sub rax, qword [rsp + 0x158]
mov dword [rsp + 0x168], eax
mov eax, dword [rsp + 0x168]
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x160]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x1b8]
mov qword [rsp + 0x28], rax
lea rax, str.Secure_loading__ls____ls_at__p_took__lu_microseconds
mov qword [rsp + 0x20], rax
mov r9d, 3
mov r8d, 0x50
lea rdx, [0x1401709b0]
mov rax, qword [rsp + 0x1b0]
mov rcx, qword [rax]
call fcn.140001970
cmp qword [rsp + 0x160], 0
je 0x140056f86
movzx eax, byte [rsp + 0x1c0]
test eax, eax
je 0x140056f86
mov rax, qword [rsp + 0x1b0]
cmp qword [rax + 8], 0
je 0x140056f86
mov rax, qword [rsp + 0x1b0]
mov rax, qword [rax + 8]
mov ecx, dword [rsp + 0x168]
mov dword [rax + 0x40], ecx
mov rax, qword [rsp + 0x160]
mov rdi, rax
mov rcx, rsp
lea rdx, [0x140171258]
call fcn.14000eab0
mov rax, rdi
mov rcx, qword [rsp + 0x188]
xor rcx, rsp
call fcn.140004ef0
add rsp, 0x198
pop rdi
pop rsi
ret
Function at 0x1400579e0
Capabilities:
Accept command line arguments

Disassembly:
push rdi
sub rsp, 0x50
mov rdi, rsp
mov ecx, 0x14
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov dword [rsp + 0x24], 0
call qword [sym.imp.KERNEL32.dll_GetCommandLineW]
lea rdx, [rsp + 0x24]
mov rcx, rax
call qword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov qword [rsp + 0x38], rax
cmp qword [rsp + 0x38], 0
je 0x140057ae5
mov dword [rsp + 0x40], 0
jmp 0x140057a36
mov eax, dword [rsp + 0x40]
inc eax
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x24]
cmp dword [rsp + 0x40], eax
jge 0x140057ada
movsxd rax, dword [rsp + 0x40]
lea rdx, [0x140171610]
mov rcx, qword [rsp + 0x38]
mov rcx, qword [rcx + rax*8]
call fcn.1400018c0
test eax, eax
je 0x140057a9e
movsxd rax, dword [rsp + 0x40]
lea rdx, str._cfg
mov rcx, qword [rsp + 0x38]
mov rcx, qword [rcx + rax*8]
call fcn.1400018c0
test eax, eax
je 0x140057a9e
movsxd rax, dword [rsp + 0x40]
lea rdx, str.__configuration
mov rcx, qword [rsp + 0x38]
mov rcx, qword [rcx + rax*8]
call fcn.1400018c0
test eax, eax
jne 0x140057ad5
mov eax, dword [rsp + 0x24]
dec eax
cmp dword [rsp + 0x40], eax
jge 0x140057ad5
mov eax, dword [rsp + 0x40]
inc eax
mov dword [rsp + 0x40], eax
movsxd rax, dword [rsp + 0x40]
mov r8, 0xffffffffffffffff
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rcx + rax*8]
lea rcx, [0x1401b5ea0]
call fcn.1400031e0
jmp 0x140057a2c
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_LocalFree]
lea rax, [0x1401b5ea0]
mov rdi, rax
mov rcx, rsp
lea rdx, [0x140171810]
call fcn.14000eab0
mov rax, rdi
add rsp, 0x50
pop rdi
ret