joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140054dd0
Capabilities:
Check if file exists

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x80
mov rax, qword [0x1400d8400]
xor rax, rsp
mov qword [rsp + 0x70], rax
mov eax, dword [0x14005df90]
xor edi, edi
movups xmm0, xmmword [str._pipediscord_ipc_0]
mov dword [rsp + 0x68], eax
mov rbx, rcx
movzx eax, word [0x14005df94]
lea rcx, [rsp + 0x40]
movups xmm1, xmmword [0x14005df78]
mov word [rsp + 0x6c], ax
mov eax, 0x30
movups xmmword [rsp + 0x40], xmm0
xor r9d, r9d
mov qword [rsp + 0x30], rdi
movsd xmm0, qword [0x14005df88]
xor r8d, r8d
mov dword [rsp + 0x28], edi
mov edx, 0xc0000000
movsd qword [rsp + 0x60], xmm0
mov word [rsp + 0x6a], ax
movups xmmword [rsp + 0x50], xmm1
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [rbx + 8], rax
cmp rax, 0xffffffffffffffff
jne 0x140054ed4
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
jne 0x140054e88
movzx eax, word [rsp + 0x6a]
cmp ax, 0x39
jae 0x140054ef7
inc ax
mov word [rsp + 0x6a], ax
jmp 0x140054ea3
cmp eax, 0xe7
jne 0x140054ef7
mov edx, 0x2710
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_WaitNamedPipeW]
test eax, eax
je 0x140054ef7
mov qword [rsp + 0x30], rdi
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x28], edi
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x20], 3
mov edx, 0xc0000000
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [rbx + 8], rax
cmp rax, 0xffffffffffffffff
je 0x140054e68
mov byte [rbx], 1
mov al, 1
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.14005a500
mov rbx, qword [rsp + 0x98]
add rsp, 0x80
pop rdi
ret
xor al, al
jmp 0x140054ed9

Function at 0x140054f00
Capabilities:
Read file on windows
Read pipe

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x30
mov rdi, r8
mov rsi, rdx
mov rbx, rcx
test rdx, rdx
jne 0x140054f20
xor al, al
add rsp, 0x30
pop rdi
pop rsi
pop rbx
ret
test rbx, rbx
je 0x140054f16
mov rcx, qword [rcx + 8]
cmp rcx, 0xffffffffffffffff
je 0x140054f16
lea rax, [rsp + 0x58]
mov qword [rsp + 0x50], rbp
xor ebp, ebp
xor r9d, r9d
mov qword [rsp + 0x28], rbp
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x58], ebp
call qword [sym.imp.KERNEL32.dll_PeekNamedPipe]
test eax, eax
je 0x140054fab
mov eax, dword [rsp + 0x58]
cmp rax, rdi
jb 0x140054fc0
mov rcx, qword [rbx + 8]
lea r9, [rsp + 0x68]
mov r8d, edi
mov dword [rsp + 0x68], ebp
mov rdx, rsi
mov qword [rsp + 0x20], rbp
call qword [sym.imp.KERNEL32.dll_ReadFile]
cmp eax, 1
jne 0x140054f94
mov rbp, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
pop rsi
pop rbx
ret
mov rcx, rbx
call fcn.140054d80
mov rbp, qword [rsp + 0x50]
xor al, al
add rsp, 0x30
pop rdi
pop rsi
pop rbx
ret
mov rcx, qword [rbx + 8]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rbx + 8], 0xffffffffffffffff
mov byte [rbx], bpl
xor al, al
mov rbp, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
pop rsi
pop rbx
ret
Function at 0x140054fd0
Capabilities:
Write file on windows

Disassembly:
push rdi
sub rsp, 0x30
mov rdi, r8
test r8, r8
jne 0x140054fe6
mov al, 1
add rsp, 0x30
pop rdi
ret
test rcx, rcx
jne 0x140054ff3
xor al, al
add rsp, 0x30
pop rdi
ret
mov rcx, qword [rcx + 8]
cmp rcx, 0xffffffffffffffff
je 0x140054feb
test rdx, rdx
je 0x140054feb
mov qword [rsp + 0x40], rbx
lea r9, [rsp + 0x50]
xor ebx, ebx
mov dword [rsp + 0x50], ebx
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_WriteFile]
cmp eax, 1
jne 0x14005502a
cmp dword [rsp + 0x50], edi
jne 0x14005502a
mov ebx, eax
movzx eax, bl
mov rbx, qword [rsp + 0x40]
add rsp, 0x30
pop rdi
ret

Function at 0x14005a87c
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x14005a8c6
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x14005a8c6
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x14005a8c6
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x14005a8c6
cmp dword [rcx + 0x84], 0xe
jbe 0x14005a8c6
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x14005a8c8
xor al, al
add rsp, 0x28
ret
Function at 0x140003aa0
Capabilities:
Query environment variable

Disassembly:
push rdi
sub rsp, 0x20
mov ecx, 0xd8
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
mov rdi, rax
test rax, rax
jne 0x140003abe
add rsp, 0x20
pop rdi
ret
xor edx, edx
mov qword [rsp + 0x30], rbx
mov r8d, 0xd8
mov rcx, rdi
call sub.VCRUNTIME140.dll_memset
lea rcx, [0x14004acf8]
call fcn.140007460
lea rcx, str.SENTRY_DSN
mov qword [rdi + 0x40], rax
call qword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll_getenv]
mov rcx, qword [rdi + 8]
mov rbx, rax
call fcn.140008100
mov rcx, rbx
call fcn.140008420
lea rcx, str.SENTRY_DEBUG
mov qword [rdi + 8], rax
call qword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll_getenv]
test rax, rax
je 0x140003b29
cmp byte [rax], 0x31
jne 0x140003b29
cmp byte [rax + 1], 0
jne 0x140003b29
mov al, 1
jmp 0x140003b2b
xor al, al
mov byte [rdi + 0x68], al
xor ebx, ebx
lea rax, [0x140006ae0]
mov qword [rdi + 0x50], rax
mov qword [rdi + 0x58], rbx
lea ecx, [rbx + 0xc]
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
test rax, rax
je 0x140003b70
movsd xmm0, qword [str.sentry_http]
movsd qword [rax], xmm0
movzx ecx, word [0x14004ad30]
mov word [rax + 8], cx
movzx ecx, byte [0x14004ad32]
mov byte [rax + 0xa], cl
mov byte [rax + 0xb], bl
lea rcx, str.SENTRY_RELEASE
mov qword [rdi + 0x38], rax
call qword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll__wgetenv]
mov rcx, rax
call fcn.14000b330
lea rcx, str.SENTRY_ENVIRONMENT
mov qword [rdi + 0x10], rax
call qword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll__wgetenv]
mov rcx, rax
call fcn.14000b330
mov qword [rdi + 0x18], rax
test rax, rax
jne 0x140003bd6
lea ecx, [rax + 0xb]
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
test rax, rax
je 0x140003bd2
movsd xmm0, qword [str.production]
movsd qword [rax], xmm0
movzx ecx, word [0x14004ad88]
mov word [rax + 8], cx
mov byte [rax + 0xa], bl
mov qword [rdi + 0x18], rax
mov qword [rdi + 0x60], 0x64
mov dword [rdi + 0xc8], 0xffffffff
mov byte [rdi + 0x69], 1
mov word [rdi + 0x6b], bx
call fcn.140009ac0
mov qword [rdi + 0xb8], rax
call fcn.14000b6b0
mov qword [rdi + 0x80], rax
movabs rax, 0x3ff0000000000000
mov qword [rdi], rax
mov rax, rdi
mov qword [rdi + 0xa8], rbx
mov qword [rdi + 0xb0], rbx
mov rbx, qword [rsp + 0x30]
mov dword [rdi + 0xcc], 1
mov qword [rdi + 0xd0], 0x7d0
add rsp, 0x20
pop rdi
ret
Function at 0x140006d60
Capabilities:
Delete directory
Delete file

Disassembly:
push rbx
sub rsp, 0x60
mov rax, qword [0x1400601c8]
xor rax, rsp
mov qword [rsp + 0x50], rax
cmp byte [rcx + 0xc], 0
mov rbx, rcx
je 0x140006dee
mov ecx, dword [rcx + 8]
xor edx, edx
mov qword [rsp + 0x78], rdi
lea r8d, [rdx + 1]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__locking]
mov ecx, dword [rbx + 8]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__close]
mov rdi, qword [rbx]
lea rdx, [rsp + 0x20]
mov rcx, qword [rdi]
call qword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__wstat64i32]
test eax, eax
jne 0x140006dd2
movzx eax, word [rsp + 0x26]
mov ecx, 0xf000
and ax, cx
mov ecx, 0x4000
cmp ax, cx
jne 0x140006dd2
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
jmp 0x140006de5
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x140006de5
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rdi, qword [rsp + 0x78]
mov byte [rbx + 0xc], 0
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.140043bb0
add rsp, 0x60
pop rbx
ret

Function at 0x140006f00
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
sub rsp, 0x20
mov rcx, qword [rcx]
mov rsi, rdx
lea rdx, [0x14004b68c]
mov rbx, r8
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__wfopen]
mov rbp, rax
test rax, rax
jne 0x140006f40
lea eax, [rbp + 1]
mov rbx, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x40]
add rsp, 0x20
pop rsi
ret
test rbx, rbx
je 0x140006f8c
mov qword [rsp + 0x30], rdi
nop word [rax + rax]
mov r9, rbp
mov r8, rbx
mov edx, 1
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
mov rdi, rax
test rax, rax
jne 0x140006f77
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
cmp dword [rax], 0x16
je 0x140006f82
cmp rdi, rbx
jb 0x140006f87
add rsi, rdi
sub rbx, rdi
test rbx, rbx
jne 0x140006f50
mov rdi, qword [rsp + 0x30]
mov rcx, rbp
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fflush]
mov rcx, rbp
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
mov rbp, qword [rsp + 0x40]
xor eax, eax
test rbx, rbx
mov rbx, qword [rsp + 0x38]
setne al
add rsp, 0x20
pop rsi
ret
Function at 0x1400070f0
Capabilities:
Create directory

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x20
mov rax, qword [rcx]
xor esi, esi
mov qword [rsp + 0x38], r14
mov rbx, 0xffffffffffffffff
mov r14, rcx
cmp word [rax + rbx*2 + 2], si
lea rbx, [rbx + 1]
jne 0x140007113
lea rbx, [rbx*2 + 2]
mov qword [rsp + 0x30], rbp
mov rcx, rbx
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
mov rdx, qword [r14]
mov r8, rbx
mov rcx, rax
mov rdi, rax
call sub.VCRUNTIME140.dll_memcpy
movzx eax, word [rdi]
mov rbx, rdi
mov r14, qword [rsp + 0x38]
test ax, ax
je 0x1400071a6
mov ebp, 0x5c
nop dword [rax]
cmp ax, bp
je 0x14000716b
cmp ax, 0x2f
jne 0x140007199
cmp rbx, rdi
je 0x140007199
cmp word [rbx - 2], 0x3a
je 0x140007199
xor edx, edx
mov word [rbx], si
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x140007196
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x1400071eb
mov word [rbx], bp
movzx eax, word [rbx + 2]
add rbx, 2
test ax, ax
jne 0x140007160
xor edx, edx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x1400071cc
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, esi
mov esi, 1
cmp eax, 0xb7
cmovne ecx, esi
mov esi, ecx
mov rcx, rdi
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
mov rbp, qword [rsp + 0x30]
mov eax, esi
mov rsi, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
mov esi, 1
jmp 0x1400071cc
Function at 0x140007950
Capabilities:
Read file on windows

Disassembly:
push rbx
push rbp
push r14
sub rsp, 0x60
mov rax, qword [0x1400601c8]
xor rax, rsp
mov qword [rsp + 0x50], rax
mov r14, rdx
mov rbx, rcx
mov rcx, qword [rcx]
lea rdx, [0x14004b67c]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__wfopen]
mov rbp, rax
test rax, rax
je 0x140007a4a
mov rcx, qword [rbx]
lea rdx, [rsp + 0x20]
mov qword [rsp + 0x98], rdi
call qword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__wstat64i32]
test eax, eax
jne 0x140007a6d
movzx eax, word [rsp + 0x26]
mov ecx, 0xf000
and ax, cx
mov ecx, 0x8000
cmp ax, cx
jne 0x140007a6d
movsxd rdi, dword [rsp + 0x34]
test rdi, rdi
je 0x140007a6d
mov qword [rsp + 0x90], rsi
cmp rdi, 0x8000000
ja 0x140007a60
lea rcx, [rdi + 1]
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
mov rsi, rax
test rax, rax
je 0x140007a60
xor ebx, ebx
nop word [rax + rax]
lea rcx, [rbx + rsi]
mov r9, rbp
mov r8, rdi
mov edx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
test rax, rax
je 0x140007a22
add rbx, rax
sub rdi, rax
jne 0x140007a00
mov rcx, rbp
mov byte [rbx + rsi], 0
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
test r14, r14
je 0x140007a37
mov qword [r14], rbx
mov rax, rsi
mov rsi, qword [rsp + 0x90]
mov rdi, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.140043bb0
add rsp, 0x60
pop r14
pop rbp
pop rbx
ret
mov rcx, rbp
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
xor eax, eax
jmp 0x140007a3a
mov rcx, rbp
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
mov ecx, 1
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
mov byte [rax], 0
test r14, r14
je 0x140007a42
xor ebx, ebx
mov qword [r14], rbx
jmp 0x140007a42

Function at 0x140007a90
Capabilities:
Check if file exists
Delete directory
Delete file

Disassembly:
push rbx
sub rsp, 0x60
mov rax, qword [0x1400601c8]
xor rax, rsp
mov qword [rsp + 0x50], rax
mov rbx, rcx
lea rdx, [rsp + 0x20]
mov rcx, qword [rcx]
call qword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__wstat64i32]
test eax, eax
jne 0x140007af6
movzx eax, word [rsp + 0x26]
mov ecx, 0xf000
and ax, cx
mov ecx, 0x4000
cmp ax, cx
jne 0x140007af6
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
jne 0x140007b26
mov eax, 1
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.140043bb0
add rsp, 0x60
pop rbx
ret
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x140007b26
call qword [sym.imp.KERNEL32.dll_GetLastError]
xor ecx, ecx
cmp eax, 2
setne cl
mov eax, ecx
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.140043bb0
add rsp, 0x60
pop rbx
ret
xor eax, eax
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.140043bb0
add rsp, 0x60
pop rbx
ret
Function at 0x140007b80
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
sub rsp, 0x20
mov rcx, qword [rcx]
mov rsi, rdx
lea rdx, [0x14004b684]
mov rbx, r8
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__wfopen]
mov rbp, rax
test rax, rax
jne 0x140007bc0
lea eax, [rbp + 1]
mov rbx, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x40]
add rsp, 0x20
pop rsi
ret
test rbx, rbx
je 0x140007c0c
mov qword [rsp + 0x30], rdi
nop word [rax + rax]
mov r9, rbp
mov r8, rbx
mov edx, 1
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
mov rdi, rax
test rax, rax
jne 0x140007bf7
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
cmp dword [rax], 0x16
je 0x140007c02
cmp rdi, rbx
jb 0x140007c07
add rsi, rdi
sub rbx, rdi
test rbx, rbx
jne 0x140007bd0
mov rdi, qword [rsp + 0x30]
mov rcx, rbp
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fflush]
mov rcx, rbp
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
mov rbp, qword [rsp + 0x40]
xor eax, eax
test rbx, rbx
mov rbx, qword [rsp + 0x38]
setne al
add rsp, 0x20
pop rsi
ret

Function at 0x140007c80
Capabilities:
Enumerate files on windows

Disassembly:
mov r11, rsp
push rbx
push rsi
push r12
push r14
push r15
sub rsp, 0x280
mov rax, qword [0x1400601c8]
xor rax, rsp
mov qword [rsp + 0x270], rax
mov qword [r11 + 0x10], rbp
mov rsi, rcx
mov qword [r11 + 0x18], rdi
xor r12d, r12d
mov rcx, qword [rsi]
cmp rcx, 0xffffffffffffffff
jne 0x140007d37
mov rax, qword [rsi + 8]
mov rbx, 0xffffffffffffffff
mov rcx, qword [rax]
nop dword [rax]
cmp word [rcx + rbx*2 + 2], r12w
lea rbx, [rbx + 1]
jne 0x140007cd0
lea rcx, [rbx*2 + 6]
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
mov rbp, rax
test rax, rax
je 0x140007d97
mov rdx, qword [rsi + 8]
lea rdi, [rbx + rbx]
mov r8, rdi
mov rcx, rax
mov rdx, qword [rdx]
call sub.VCRUNTIME140.dll_memcpy
lea rdx, [rsp + 0x20]
mov dword [rdi + rbp], 0x2a005c
mov rcx, rbp
mov word [rbp + rbx*2 + 4], r12w
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov rcx, rbp
mov qword [rsi], rax
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
cmp qword [rsi], 0xffffffffffffffff
jmp 0x140007d44
lea rdx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
je 0x140007d97
movzx ecx, word [rsp + 0x4c]
movzx eax, word [rsp + 0x4e]
cmp cx, 0x2e
jne 0x140007d75
test ax, ax
je 0x140007cb2
cmp cx, cx
jne 0x140007d75
cmp ax, cx
jne 0x140007d75
cmp word [rsp + 0x50], r12w
je 0x140007cb2
mov rcx, qword [rsi + 0x10]
test rcx, rcx
je 0x140007d83
call fcn.140007e60
mov rcx, qword [rsi + 8]
lea rdx, [rsp + 0x4c]
call fcn.1400077a0
mov qword [rsi + 0x10], rax
jmp 0x140007d99
xor eax, eax
mov rdi, qword [rsp + 0x2c0]
mov rbp, qword [rsp + 0x2b8]
mov rcx, qword [rsp + 0x270]
xor rcx, rsp
call fcn.140043bb0
add rsp, 0x280
pop r15
pop r14
pop r12
pop rsi
pop rbx
ret
Function at 0x140007e90
Capabilities:
Check if file exists
Delete directory
Delete file

Disassembly:
push rdi
sub rsp, 0x20
mov rdi, rcx
call fcn.140007630
test al, al
je 0x140007ee2
mov rcx, rdi
mov qword [rsp + 0x30], rbx
call fcn.140007710
mov rcx, rax
mov rbx, rax
call fcn.140007c80
test rax, rax
je 0x140007ed5
nop
mov rcx, rax
call fcn.140007e90
mov rcx, rbx
call fcn.140007c80
test rax, rax
jne 0x140007ec0
mov rcx, rbx
call fcn.140007c40
mov rbx, qword [rsp + 0x30]
mov rcx, rdi
add rsp, 0x20
pop rdi
jmp fcn.140007a90

Function at 0x14000aea0
Capabilities:
Delete directory
Delete file

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
mov rcx, qword [rcx + 0x10]
call fcn.140007e90
mov rcx, qword [rbx + 0x20]
add rsp, 0x20
pop rbx
jmp fcn.140006d60
Function at 0x140013130
Capabilities:
Generate random numbers via rtlgenrandom

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
cmp byte [0x140060b30], 0
mov rbx, rdx
mov rdi, rcx
jne 0x14001318b
lea rcx, str.advapi32.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
test rax, rax
je 0x14001317b
lea rdx, [0x14004c270]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140060b28], rax
mov byte [0x140060b30], 1
jmp 0x140013192
mov rax, qword [0x140060b28]
mov byte [0x140060b30], 1
jmp 0x140013192
mov rax, qword [0x140060b28]
test rax, rax
je 0x1400131af
mov edx, ebx
mov rcx, rdi
call rax
test al, al
je 0x1400131af
xor eax, eax
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov rbx, qword [rsp + 0x30]
mov eax, 1
add rsp, 0x20
pop rdi
ret
Function at 0x140015e30
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push rbp
push rdi
push r14
sub rsp, 0x20
xor ebp, ebp
mov r14, rdx
mov eax, ebp
mov rdi, rcx
lock xadd dword [rcx + 0x74], eax
test eax, eax
jne 0x140015e66
lea rdx, str.trying_to_shut_down_non_running_thread
lea ecx, [rbp + 1]
call fcn.140006c50
xor eax, eax
add rsp, 0x20
pop r14
pop rdi
pop rbp
ret
mov qword [rsp + 0x48], rbx
lea rdx, str.shutting_down_background_worker_thread
mov ecx, 0xffffffff
mov qword [rsp + 0x58], rsi
call fcn.140006c50
mov r9, rdi
lea rdx, [0x140016330]
xor r8d, r8d
mov rcx, rdi
call fcn.140016050
cmp qword [0x140060b40], rbp
jne 0x140015ebd
lea rcx, [0x140060b40]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
cmp qword [0x140060b40], rbp
jne 0x140015ebd
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
jmp 0x140015eda
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
imul rax, qword [rsp + 0x40], 0x3e8
cqo
idiv qword [0x140060b40]
lea rcx, [rdi + 0x20]
xor r9d, r9d
lea rbx, [rcx + 8]
mov rsi, rax
mov r8, rbx
lea rdx, [0x140016310]
call qword [sym.imp.KERNEL32.dll_InitOnceExecuteOnce]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp qword [rdi + 0x50], rbp
jne 0x140015f12
mov eax, ebp
lock xadd dword [rdi + 0x74], eax
test eax, eax
je 0x140015f79
cmp qword [0x140060b40], rbp
jne 0x140015f39
lea rcx, [0x140060b40]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
cmp qword [0x140060b40], rbp
jne 0x140015f39
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
jmp 0x140015f56
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
imul rax, qword [rsp + 0x50], 0x3e8
cqo
idiv qword [0x140060b40]
cmp rax, rsi
jbe 0x140015f63
sub rax, rsi
cmp rax, r14
ja 0x140015f95
lea rcx, [rdi + 0x18]
mov r8d, 0xfa
lea rdx, [rdi + 0x28]
call qword [sym.imp.KERNEL32.dll_SleepConditionVariableCS]
jmp 0x140015f01
lea rcx, [rdi + 0x28]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rcx, qword [rdi]
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
xor eax, eax
jmp 0x140015fb8
xchg dword [rdi + 0x74], ebp
lea rcx, [rdi + 0x28]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea rdx, str.background_thread_failed_to_shut_down_cleanly_within_timeout
mov ecx, 1
call fcn.140006c50
mov eax, 1
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x58]
add rsp, 0x20
pop r14
pop rdi
pop rbp
ret
Function at 0x140019900
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
push r14
push r15
sub rsp, 0x20
mov r12, r9
mov r15, r8
mov r14, rdx
mov rbx, rcx
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
xor esi, esi
xor edx, edx
mov rcx, r15
mov dword [rax], esi
lea r8d, [rsi + 2]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov rcx, r15
mov edi, dword [rax]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ftell]
movsxd rbp, eax
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
xor r8d, r8d
xor edx, edx
mov rcx, r15
or edi, dword [rax]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
or edi, dword [rax]
jne 0x140019a6a
test ebp, ebp
js 0x140019a6a
jne 0x1400199a1
xor edx, edx
mov r8d, 0x170
mov rcx, rbx
call sub.VCRUNTIME140.dll_memset
mov dword [rbx + 0x40], 3
jmp 0x140019a81
test r12, r12
je 0x1400199c7
cmp rbp, r12
jbe 0x1400199c7
xor edx, edx
mov r8d, 0x170
mov rcx, rbx
call sub.VCRUNTIME140.dll_memset
mov dword [rbx + 0x40], 6
jmp 0x140019a81
mov rcx, rbp
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [r14], rax
test rax, rax
jne 0x1400199f4
xor edx, edx
mov r8d, 0x170
mov rcx, rbx
call sub.VCRUNTIME140.dll_memset
mov dword [rbx + 0x40], 7
jmp 0x140019a81
test ebp, ebp
jle 0x140019a26
nop dword [rax + rax]
mov eax, ebp
movsxd rcx, esi
add rcx, qword [r14]
sub eax, esi
movsxd r8, eax
mov r9, r15
mov edx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
test rax, rax
je 0x140019a2e
add esi, eax
cmp esi, ebp
jl 0x140019a00
mov qword [r14 + 8], rbp
mov al, 1
jmp 0x140019a9d
xor edx, edx
mov r8d, 0x170
mov rcx, rbx
call sub.VCRUNTIME140.dll_memset
mov dword [rbx + 0x20], 1
mov qword [rbx + 0x78], 0xffffffffffffffff
mov qword [rbx + 0x80], 0xffffffffffffffff
mov dword [rbx + 0x40], 2
mov rcx, qword [r14]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
jmp 0x140019a9b
xor edx, edx
mov r8d, 0x170
mov rcx, rbx
call sub.VCRUNTIME140.dll_memset
mov dword [rbx + 0x40], 2
mov qword [rbx + 0x80], 0xffffffffffffffff
mov qword [rbx + 0x78], 0xffffffffffffffff
mov dword [rbx + 0x20], 1
xor al, al
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
add rsp, 0x20
pop r15
pop r14
pop r12
ret
Function at 0x140021400
Capabilities:
Get file version info

Disassembly:
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
xor edx, edx
mov rsi, rcx
call sub.VERSION.dll_GetFileVersionInfoSizeW
mov edi, eax
test eax, eax
jne 0x140021427
xor eax, eax
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov rcx, rdi
mov qword [rsp + 0x30], rbx
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
mov r9, rax
mov r8d, edi
xor edx, edx
mov rcx, rsi
mov rbx, rax
call sub.VERSION.dll_GetFileVersionInfoW
test eax, eax
jne 0x140021465
mov rcx, rbx
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
mov rbx, qword [rsp + 0x30]
xor eax, eax
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov rsi, qword [rsp + 0x38]
mov rax, rbx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret