joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14000d210
Capabilities:
Allocate thread local storage
Get thread local storage value
Set thread local storage value

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x28
mov rsi, qword [0x1400bf9e0]
mov r11d, dword [rsi]
mov rbx, rcx
test r11d, r11d
jne 0x14000d248
mov rax, qword [rcx + 0x10]
test rax, rax
je 0x14000d2b0
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
mov r12, qword [rcx + 0x10]
test r12, r12
je 0x14000d2c0
mov esi, dword [0x1400e6188]
mov r13, qword [sym.imp.KERNEL32.dll_GetLastError]
call r13
mov edi, eax
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, edi
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_SetLastError]
test rsi, rsi
je 0x14000d318
mov rbp, qword [rsi]
cmp rbp, r12
jb 0x14000d360
sub r12, 1
mov rax, qword [rsi + r12*8 + 8]
test rax, rax
jne 0x14000d237
mov rcx, rbx
call fcn.14000d170
mov qword [rsi + r12*8 + 8], rax
jmp 0x14000d237
call fcn.14000d170
mov qword [rbx + 0x10], rax
jmp 0x14000d237
mov r10d, dword [rsi]
test r10d, r10d
je 0x14000d3f1
mov r9d, dword [0x1400b6030]
test r9d, r9d
je 0x14000d419
lea rcx, [0x1400e61a0]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov r12, qword [rbx + 0x10]
test r12, r12
je 0x14000d3fe
mov eax, dword [rsi]
test eax, eax
je 0x14000d251
lea rcx, [0x1400e61a0]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x14000d251
lea rcx, [r12 + 0x21]
mov edx, 8
lea rdi, [r12 + 0x20]
call sym.calloc
mov rsi, rax
test rax, rax
je 0x14000d454
mov qword [rax], rdi
mov ecx, dword [0x1400e6188]
mov rdx, rsi
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
test eax, eax
jne 0x14000d28b
call r13
jmp 0x14000d28b
lea rdi, [rbp + rbp]
lea rax, [r12 + 0x20]
mov rcx, rsi
cmp rdi, r12
cmovb rdi, rax
lea rdx, [rdi*8 + 8]
call sym.realloc
mov rsi, rax
test rax, rax
je 0x14000d454
mov qword [rax], rdi
sub rdi, rbp
lea rcx, [rax + rbp*8 + 8]
xor edx, edx
lea r8, [rdi*8]
call sym.memset
jmp 0x14000d33b
lea rcx, [0x1400e61a0]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
cmp eax, 0xffffffff
je 0x14000d44c
lea rdx, [0x14000d120]
mov ecx, eax
mov dword [0x1400e6188], eax
call dbg.__mingwthr_key_dtor
test eax, eax
jne 0x14000d454
mov dword [0x1400b6030], 1
mov edx, dword [rsi]
test edx, edx
jne 0x14000d2dc
mov r12, qword [rbx + 0x10]
test r12, r12
jne 0x14000d251
mov rax, qword [0x1400e6180]
lea r12, [rax + 1]
mov qword [0x1400e6180], r12
mov qword [rbx + 0x10], r12
jmp 0x14000d2f6
lock add dword [0x1400b6034], 1
je 0x14000d3a9
mov r8d, dword [0x1400b6030]
mov rbp, qword [sym.imp.KERNEL32.dll_Sleep]
lea rdi, [0x1400b6030]
test r8d, r8d
jne 0x14000d3e7
nop dword [rax]
xor ecx, ecx
call rbp
mov ecx, dword [rdi]
test ecx, ecx
je 0x14000d440
jmp 0x14000d3e7
call qword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x14000d3d9
call sym.abort
nop
nop word [rax + rax]
Function at 0x1400160c0
Capabilities:
Generate random numbers via rtlgenrandom

Disassembly:
push rsi
push rbx
sub rsp, 0x28
mov rbx, rcx
lea rcx, str.msvcrt.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rsi, qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.rand_s
mov rcx, rax
call rsi
test rax, rax
je 0x140016108
mov rcx, rbx
mov qword [dbg.init_rand_s], rax
add rsp, 0x28
pop rbx
pop rsi
jmp rax
lea rcx, str.advapi32.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
lea rdx, str.SystemFunction036
mov rcx, rax
call rsi
mov qword [0x1400e6bc0], rax
lea rax, [dbg.mingw_rand_s]
jmp 0x1400160ee

Function at 0x1400186e0
Capabilities:
Read file on windows

Disassembly:
push rsi
push rbx
sub rsp, 0x28
mov r9, qword [rcx + 0x40]
mov rsi, rdx
mov rbx, rcx
mov edx, 1
mov rcx, rsi
call sym.fread
mov edx, 0xffffffff
test rax, rax
jle 0x14001870c
movzx edx, byte [rsi + rax - 1]
mov dword [rbx + 0x48], edx
add rsp, 0x28
pop rbx
pop rsi
ret

Function at 0x140019380
Capabilities:
Write file on windows

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x30
cmp byte [0x1400b91c0], 0
jne 0x140019486
mov byte [0x1400b91c0], 1
call sym.__cxa_current_exception_type
test rax, rax
je 0x14001945c
mov rbx, qword [rax + 8]
xor eax, eax
lea r9, [rsp + 0x2c]
cmp byte [rbx], 0x2a
mov dword [rsp + 0x2c], 0xffffffff
sete al
xor r8d, r8d
xor edx, edx
add rbx, rax
mov rcx, rbx
call sym.__cxa_demangle
mov ecx, 2
mov rsi, qword [dbg.__acrt_iob_func]
mov rdi, rax
call rsi
mov edx, 1
lea rcx, str.terminate_called_after_throwing_an_instance_of_
mov r8d, 0x30
mov r9, rax
call sym.fwrite
mov edx, dword [rsp + 0x2c]
mov ecx, 2
test edx, edx
je 0x14001944d
call rsi
mov rcx, rbx
mov rdx, rax
call sym.fputs
mov ecx, 2
call rsi
mov r8d, 2
mov edx, 1
lea rcx, [0x1400bbfd1]
mov r9, rax
call sym.fwrite
mov eax, dword [rsp + 0x2c]
test eax, eax
jne 0x140019448
mov rcx, rdi
call sym.free
call sym.__cxa_rethrow
call rsi
mov rcx, rdi
mov rdx, rax
call sym.fputs
jmp 0x140019417
mov ecx, 2
call qword [dbg.__acrt_iob_func]
mov r8d, 0x2d
mov edx, 1
lea rcx, str.terminate_called_without_an_active_exception_n
mov r9, rax
call sym.fwrite
call sym.abort
mov ecx, 2
call qword [dbg.__acrt_iob_func]
mov r8d, 0x1d
mov edx, 1
lea rcx, str.terminate_called_recursively_n
mov r9, rax
call sym.fwrite
call sym.abort
sub rdx, 1
mov rcx, rax
jne 0x14001951b
call sym.__cxa_begin_catch
mov rcx, rax
mov rax, qword [rax]
call qword [rax + 0x10]
mov ecx, 2
mov rbx, rax
call rsi
mov r9, rax
mov r8d, 0xb
mov edx, 1
lea rcx, str.__what__:
call sym.fwrite
mov ecx, 2
call rsi
mov rdx, rax
mov rcx, rbx
call sym.fputs
mov ecx, 2
call rsi
mov rdx, rax
mov ecx, 0xa
call sym.fputc
call sym.__cxa_end_catch
jmp 0x140019481
call sym.__cxa_begin_catch
call sym.__cxa_end_catch
jmp 0x140019481
Function at 0x140079500
Capabilities:
Read file on windows

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x20
mov r12, qword [sym.imp.msvcrt.dll__errno]
mov rdi, rcx
mov rsi, rdx
mov ebx, r8d
mov rcx, qword [rdi]
call sym.fileno
mov ecx, eax
mov r8d, ebx
mov rdx, rsi
call sym.read
movsxd rbp, eax
cmp eax, 0xffffffff
je 0x140079548
mov rax, rbp
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
call r12
cmp dword [rax], 4
je 0x14007951a
mov rax, rbp
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret

Function at 0x14008cf20
Capabilities:
Read file on windows

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
mov rax, qword [rcx + 8]
mov rdi, rcx
test rax, rax
je 0x14008cf48
mov rcx, qword [rcx]
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
jmp rax
mov rbp, qword [sym.imp.msvcrt.dll__errno]
mov ebx, 4
lea rsi, [rsp + 0x2c]
nop dword [rax]
mov ecx, dword [rdi + 0x10]
mov r8d, ebx
mov rdx, rsi
call sym.read
test eax, eax
jle 0x14008cf90
cdqe
add rsi, rax
sub rbx, rax
jne 0x14008cf60
mov eax, dword [rsp + 0x2c]
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
cmp eax, 0xffffffff
jne 0x14008cf9c
call rbp
cmp dword [rax], 4
je 0x14008cf60
lea rcx, str.random_device_could_not_be_read
call method.std.__throw_runtime_error_char_const_
nop
nop
nop
nop
nop
nop
nop
nop

Function at 0x1400b3e30
Capabilities:
Allocate thread local storage
Get thread local storage value
Set thread local storage value

Disassembly:
lea rcx, [0x1400b91e0]
jmp sym.__emutls_get_address

Function at 0x1400b3e40
Capabilities:
Allocate thread local storage
Get thread local storage value
Set thread local storage value

Disassembly:
lea rcx, [0x1400b91e0]
jmp sym.__emutls_get_address
Function at 0x140009e00
Capabilities:
Hash data using sha1 via x86 extensions
Hash data using sha256 via x86 extensions

Disassembly:
movdqa xmm0, xmmword [0x140190b00]
movdqa xmm1, xmmword [0x140190b40]
pshufd xmm2, xmm1, 0x4e
pshufd xmm3, xmm0, 0x39
sha1msg1 xmm2, xmm0
sha1msg2 xmm3, xmm1
sha1nexte xmm0, xmm2
sha1rnds4 xmm1, xmm3, 0
sha256rnds2 xmm2, xmm1, xmm0
sha256msg1 xmm1, xmm2
sha256msg2 xmm0, xmm1
movdqa xmm2, xmmword [0x140190db0]
pcmpeqq xmm0, xmm2
pmovmskb eax, xmm0
cmp eax, 0xffff
sete al
ret
Function at 0x14000d839
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
movsxd rax, dword [rcx + 0x3c]
xor r8d, r8d
mov ebx, edx
mov r9d, dword [rax + rcx + 0x88]
mov r11, rcx
add r9, rcx
mov r10d, dword [r9 + 0x20]
mov edi, dword [r9 + 0x1c]
mov esi, dword [r9 + 0x24]
mov r9d, dword [r9 + 0x18]
add r10, rcx
add rdi, rcx
add rsi, rcx
test r9d, r9d
je 0x14000d898
mov ecx, dword [r10]
add rcx, r11
call fcn.14000d7a9
cmp eax, ebx
je 0x14000d8aa
inc r8d
add r10, 4
cmp r8d, r9d
jb 0x14000d87d
xor eax, eax
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
movzx ecx, word [rsi + r8*2]
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
mov eax, dword [rdi + rcx*4]
add rax, r11
add rsp, 0x20
pop rdi
ret

Function at 0x140025290
Capabilities:
Query service status

Disassembly:
mov r11, rsp
mov qword [r11 + 0x10], rbx
mov qword [r11 + 0x18], rsi
mov qword [r11 + 8], rcx
push rdi
sub rsp, 0xe0
mov rax, qword [0x140212c80]
xor rax, rsp
mov qword [rsp + 0xd8], rax
mov rsi, rcx
mov r8d, 1
lea rdx, str.ServicesActive
xor ecx, ecx
call qword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov rbx, rax
mov qword [rsp + 0xc8], rax
test rax, rax
je 0x1400253d3
mov rdx, rsi
cmp qword [rsi + 0x18], 7
jbe 0x1400252f2
mov rdx, qword [rsi]
mov r8d, 4
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov rdi, rax
mov qword [rsp + 0xd0], rax
test rax, rax
je 0x1400253fe
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsp + 0xa8], xmm0
mov qword [rsp + 0xb8], rax
mov dword [rsp + 0xc0], eax
lea rdx, [rsp + 0xa8]
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
test eax, eax
je 0x14002538b
mov esi, dword [rsp + 0xac]
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
nop
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
cmp esi, 4
sete al
mov rcx, qword [rsp + 0xd8]
xor rcx, rsp
call fcn.140133600
lea r11, [rsp + 0xe0]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rsp, r11
pop rdi
ret
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop
lea rcx, str.Unable_to_query_status_of_the_service__
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x28], 0x2b
mov r9, rsi
lea r8, [rsp + 0x20]
mov edx, eax
lea rcx, [rsp + 0x80]
call fcn.140054d30
lea rdx, [0x14020e468]
lea rcx, [rsp + 0x80]
call fcn.140135f84
nop
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea r8, str.Unable_to_open_the_service_control_manager_
lea rcx, [rsp + 0x30]
call fcn.140096840
lea rdx, [0x14020e468]
lea rcx, [rsp + 0x30]
call fcn.140135f84
nop
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.Unable_to_open_the_service__
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x28], 0x20
mov r9, rsi
lea r8, [rsp + 0x20]
mov edx, eax
lea rcx, [rsp + 0x58]
call fcn.140054d30
lea rdx, [0x14020e468]
lea rcx, [rsp + 0x58]
call fcn.140135f84
int3
Function at 0x14002b0b0
Capabilities:
Check if file exists
Get file attributes

Disassembly:
mov qword [rsp + 8], rcx
push rbx
sub rsp, 0x70
mov rax, qword [0x140212c80]
xor rax, rsp
mov qword [rsp + 0x60], rax
lea rdx, [rsp + 0x40]
mov rcx, qword [0x14021e038]
call fcn.14000b6a0
nop
cmp qword [rsp + 0x50], 0
jne 0x14002b0e7
xor bl, bl
jmp 0x14002b146
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
movdqa xmm1, xmmword [0x1401e8230]
movdqu xmmword [rsp + 0x30], xmm1
xor eax, eax
mov word [rsp + 0x20], ax
lea rdx, [rsp + 0x20]
mov rcx, qword [0x14021e038]
call fcn.140045100
lea rcx, [rsp + 0x20]
cmp qword [rsp + 0x38], 7
cmova rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x14002b139
test al, 0x10
jne 0x14002b139
mov bl, 1
jmp 0x14002b13b
xor bl, bl
lea rcx, [rsp + 0x20]
call fcn.140025e80
nop
lea rcx, [rsp + 0x40]
call fcn.140025e80
movzx eax, bl
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.140133600
add rsp, 0x70
pop rbx
ret
Function at 0x14002b300
Capabilities:
Check if file exists
Get file attributes

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x58
mov rax, qword [0x140212c80]
xor rax, rsp
mov qword [rsp + 0x40], rax
mov rcx, qword [0x14021e038]
cmp byte [rcx + 0x278], 0
jne 0x14002b389
lea rdx, [rsp + 0x20]
mov qword [rsp + 0x50], rbx
call fcn.14000a650
cmp qword [rsp + 0x30], 0
je 0x14002b363
cmp qword [rsp + 0x38], 7
lea rcx, [rsp + 0x20]
cmova rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x14002b363
test al, 0x10
jne 0x14002b363
mov bl, 1
jmp 0x14002b365
xor bl, bl
lea rcx, [rsp + 0x20]
call fcn.140025e80
movzx eax, bl
mov rbx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.140133600
add rsp, 0x58
ret
xor al, al
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.140133600
add rsp, 0x58
ret
Function at 0x14002c1c0
Capabilities:
Query service status

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x28
mov rcx, qword [0x14021e038]
add rcx, 0x68
add rsp, 0x28
jmp fcn.140025290
Function at 0x14002f560
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rsi
push rdi
sub rsp, 0x60
mov rax, qword [0x140212c80]
xor rax, rsp
mov qword [rsp + 0x58], rax
mov rbx, qword [rsp + 0x80]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov edx, 1
mov rcx, rax
mov rdi, rax
lea r8d, [rdx + 0xf]
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov rsi, rax
test rax, rax
je 0x14002f67e
mov rdx, rax
mov qword [rsp + 0x90], rbp
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov rbp, rax
test rax, rax
je 0x14002f653
mov rdx, rsi
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_SizeofResource]
test eax, eax
je 0x14002f653
lea r9, [rsp + 0x50]
mov qword [rsp + 0x48], 0
lea r8, [rsp + 0x48]
mov rcx, rbp
lea rdx, [0x1401dc438]
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x14002f6a9
mov rcx, qword [rsp + 0x48]
mov rax, rbx
mov rbp, qword [rsp + 0x90]
mov r8d, dword [rcx + 0xc]
mov edx, dword [rcx + 8]
mov ecx, edx
shr ecx, 0x10
mov word [rbx], cx
mov ecx, r8d
shr ecx, 0x10
mov word [rbx + 4], cx
mov word [rbx + 2], dx
mov word [rbx + 6], r8w
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140133600
add rsp, 0x60
pop rdi
pop rsi
pop rbx
ret
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea r8, str.Unable_to_load_VERSIONINFO_resource_
lea rcx, [rsp + 0x20]
call fcn.1400967b0
lea rdx, [0x14020e468]
lea rcx, [rsp + 0x20]
call fcn.140135f84
int3
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea r8, str.Unable_to_retrieve_VERSIONINFO_resource_
lea rcx, [rsp + 0x20]
call fcn.1400967b0
lea rdx, [0x14020e468]
lea rcx, [rsp + 0x20]
call fcn.140135f84
int3
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea r8, str.Unable_to_retrieve_VERSIONINFO_data_
lea rcx, [rsp + 0x20]
call fcn.1400967b0
lea rdx, [0x14020e468]
lea rcx, [rsp + 0x20]
call fcn.140135f84
int3
Function at 0x140031c90
Capabilities:
Move file

Disassembly:
mov byte [rsp + 0x10], dl
mov qword [rsp + 8], rcx
sub rsp, 0x118
mov rax, qword [0x140212c80]
xor rax, rsp
mov qword [rsp + 0x100], rax
lea rcx, [rsp + 0xa0]
call fcn.14008d940
nop
lea rcx, [rsp + 0xa0]
cmp qword [rsp + 0xb8], 7
cmova rcx, qword [rsp + 0xa0]
xor edx, edx
lea r8d, [rdx + 4]
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
lea rax, [rsp + 0xa0]
cmp qword [rsp + 0xb8], 7
cmova rax, qword [rsp + 0xa0]
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x28], rax
movaps xmm0, xmmword [rsp + 0x20]
movdqa xmmword [rsp + 0xc0], xmm0
lea rdx, [rsp + 0xc0]
lea rcx, [rsp + 0x78]
call fcn.14008b910
nop
lea rcx, [rsp + 0x78]
cmp qword [rsp + 0x90], 7
cmova rcx, qword [rsp + 0x78]
xor edx, edx
lea r8d, [rdx + 4]
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
lea rax, [rsp + 0x78]
cmp qword [rsp + 0x90], 7
cmova rax, qword [rsp + 0x78]
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x28], rax
movaps xmm0, xmmword [rsp + 0x20]
movdqa xmmword [rsp + 0xc0], xmm0
lea rdx, [rsp + 0xc0]
lea rcx, [rsp + 0xe0]
call fcn.14008b910
lea rcx, [rsp + 0xe0]
cmp qword [rsp + 0xf8], 7
cmova rcx, qword [rsp + 0xe0]
xor edx, edx
lea r8d, [rdx + 4]
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
lea rcx, [rsp + 0xe0]
call fcn.140025e80
nop
lea rcx, [rsp + 0x78]
call fcn.140025e80
nop
lea rcx, [rsp + 0xa0]
call fcn.140025e80
jmp 0x140031dea
mov rcx, qword [rsp + 0x100]
xor rcx, rsp
call fcn.140133600
add rsp, 0x118
ret

Function at 0x140031e10
Capabilities:
Check if file exists

Disassembly:
mov byte [rsp + 0x10], dl
mov r11, rsp
mov qword [r11 + 8], rcx
push rbx
sub rsp, 0x130
mov rax, qword [0x140212c80]
xor rax, rsp
mov qword [rsp + 0x120], rax
xor ecx, ecx
mov dword [rsp + 0x50], ecx
lea rax, [0x1401db668]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rcx
movaps xmm0, xmmword [rsp + 0x40]
movdqa xmmword [r11 - 0x78], xmm0
lea r8, [r11 - 0x78]
lea rdx, [0x14021e010]
lea rcx, [r11 - 0x58]
call fcn.140031800
nop
mov dword [rsp + 0x50], 3
lea rdx, [rsp + 0xe0]
cmp qword [rsp + 0xf8], 7
cmova rdx, qword [rsp + 0xe0]
mov rcx, 0xffffffff80000002
call fcn.14008f4e0
test al, al
jne 0x140031ead
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x140031ead
mov bl, 1
jmp 0x140031eaf
xor bl, bl
lea rcx, [rsp + 0xe0]
call fcn.140025e80
test bl, bl
jne 0x140031edd
jmp 0x140031ec2
mov rcx, qword [rsp + 0x120]
xor rcx, rsp
call fcn.140133600
add rsp, 0x130
pop rbx
ret
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea r8, str.Unable_to_delete_Overseer_registry_
lea rcx, [rsp + 0x98]
call fcn.1400967b0
lea rdx, [0x14020e468]
lea rcx, [rsp + 0x98]
call fcn.140135f84
int3
Function at 0x140039f80
Capabilities:
Get disk size

Disassembly:
push rbx
sub rsp, 0x50
mov rax, qword [0x140212c80]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov rcx, qword [0x14021e038]
lea rdx, [rsp + 0x28]
call fcn.14000b6a0
cmp qword [rsp + 0x38], 0
je 0x140039fdb
cmp qword [rsp + 0x40], 7
lea rcx, [rsp + 0x28]
lea rdx, [rsp + 0x20]
cmova rcx, qword [rsp + 0x28]
xor r9d, r9d
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
test eax, eax
je 0x140039fdb
mov rbx, qword [rsp + 0x20]
jmp 0x140039fdd
xor ebx, ebx
lea rcx, [rsp + 0x28]
call fcn.140025e80
mov rax, rbx
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.140133600
add rsp, 0x50
pop rbx
ret
Function at 0x140041310
Capabilities:
Get geographical location

Disassembly:
mov qword [rsp + 8], rcx
push rbx
sub rsp, 0x50
mov rax, qword [0x140212c80]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov rbx, qword [rsp + 0x60]
mov qword [rsp + 0x28], rbx
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsp + 0x30], xmm0
mov word [rsp + 0x40], ax
mov byte [rsp + 0x42], al
lea r9d, [rax + 0xa]
lea r8, [rsp + 0x30]
lea edx, [rax + 0x59]
mov ecx, 0x800
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
test eax, eax
jle 0x140041385
cdqe
mov byte [rsp + rax + 0x2f], 0x2d
lea r8, [rsp + 0x30]
add r8, rax
mov edx, 0x5a
mov ecx, 0x800
lea r9d, [rdx - 0x50]
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
nop
jmp 0x14004138c
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 0
mov qword [rbx + 0x18], 0
lea rax, [rsp + 0x30]
mov r8, 0xffffffffffffffff
nop
inc r8
cmp byte [rax + r8], 0
jne 0x1400413b0
lea rdx, [rsp + 0x30]
mov rcx, rbx
call fcn.140023420
mov rax, rbx
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.140133600
add rsp, 0x50
pop rbx
ret

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

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbx
sub rsp, 0x90
mov rdx, rcx
lea rcx, [rax - 0x58]
cmp byte [rdx + 0x278], 0
je 0x140045191
add rdx, 0x280
call fcn.140053dc0
nop
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.14004d370
mov rdx, rax
mov rbx, qword [rsp + 0xa8]
mov rcx, rbx
call fcn.140029ff0
lea rcx, [rsp + 0x20]
call fcn.140025e80
nop
lea rcx, [rsp + 0x40]
call fcn.140025e80
mov rcx, rbx
cmp qword [rbx + 0x18], 7
jbe 0x140045172
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140045185
test al, 0x10
jne 0x140045185
mov al, 1
jmp 0x140045187
xor al, al
test al, al
je 0x140045230
jmp 0x1400451e0
add rdx, 0x158
call fcn.14004d1d0
mov rdx, rax
mov rbx, qword [rsp + 0xa8]
mov rcx, rbx
call fcn.140029ff0
lea rcx, [rsp + 0x40]
call fcn.140025e80
mov rcx, rbx
cmp qword [rbx + 0x18], 7
jbe 0x1400451c7
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1400451da
test al, 0x10
jne 0x1400451da
mov al, 1
jmp 0x1400451dc
xor al, al
test al, al
je 0x1400451e9
add rsp, 0x90
pop rbx
ret
lea rax, str.Unable_to_find_file__
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], 0x19
mov r8, rbx
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x40]
call fcn.140029ea0
nop
mov r8, rax
lea rcx, [rsp + 0x60]
call fcn.140050060
lea rdx, [0x14020e468]
lea rcx, [rsp + 0x60]
call fcn.140135f84
nop
lea rax, str.Unable_to_find_file__
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], 0x19
mov r8, rbx
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x40]
call fcn.140029ea0
nop
mov r8, rax
lea rcx, [rsp + 0x60]
call fcn.140050060
lea rdx, [0x14020e468]
lea rcx, [rsp + 0x60]
call fcn.140135f84
int3
Function at 0x140050960
Capabilities:
Check if file exists
Get file attributes

Disassembly:
mov r11, rsp
mov qword [r11 + 0x18], rbx
mov qword [r11 + 0x10], rdx
mov qword [r11 + 8], rcx
push rdi
sub rsp, 0xb0
mov rax, qword [0x140212c80]
xor rax, rsp
mov qword [rsp + 0xa0], rax
mov rbx, rcx
mov rdi, rdx
lea rcx, [rsp + 0x20]
call fcn.140053dc0
nop
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.1400513f0
nop
lea rcx, [rsp + 0x20]
call fcn.140025e80
cmp qword [rsp + 0x70], 0
je 0x1400509e9
lea rcx, [rsp + 0x60]
cmp qword [rsp + 0x78], 7
cmova rcx, qword [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1400509e9
test al, 0x10
jne 0x1400509e9
lea rdx, [rsp + 0x60]
mov rcx, rbx
call fcn.1400564d0
jmp 0x140050a31
mov rdx, rdi
lea rcx, [rsp + 0x40]
call fcn.140053dc0
nop
mov rdx, rax
lea rcx, [rsp + 0x80]
call fcn.1400515a0
nop
lea rcx, [rsp + 0x40]
call fcn.140025e80
lea rdx, [rsp + 0x80]
mov rcx, rbx
call fcn.1400564d0
nop
lea rcx, [rsp + 0x80]
call fcn.140025e80
nop
lea rcx, [rsp + 0x60]
call fcn.140025e80
mov rax, rbx
mov rcx, qword [rsp + 0xa0]
xor rcx, rsp
call fcn.140133600
mov rbx, qword [rsp + 0xd0]
add rsp, 0xb0
pop rdi
ret
Function at 0x14005c8e0
Capabilities:
Parse pe header

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rsi
sub rsp, 8
mov rsi, qword [rsp + 0x30]
xor ecx, ecx
mov ebx, ecx
mov r11d, ecx
mov r10, qword [rsi]
mov rdx, r10
cmp r10, 0x40
jb 0x14005ca45
mov r9, qword [rsp + 0x28]
mov eax, 0x5a4d
cmp word [r9], ax
jne 0x14005ca45
mov qword [rsp], rdi
movsxd rdi, dword [r9 + 0x3c]
test edi, edi
js 0x14005ca41
mov eax, edi
cmp rdx, rax
jb 0x14005ca41
sub rdx, rdi
lea r8, [rdi + r9]
cmp rdx, 4
jb 0x14005ca41
cmp dword [r8], 0x4550
jne 0x14005ca41
sub rdx, 4
cmp rdx, 0x14
jb 0x14005ca41
movzx eax, word [r8 + 4]
sub rdx, 0x14
mov qword [rsp + 0x38], rbp
mov ebp, 0x14c
cmp ax, bp
jne 0x14005c9b4
cmp rdx, 0xe0
jb 0x14005ca3c
mov eax, 0x10b
cmp word [r8 + 0x18], ax
jne 0x14005ca3c
mov r11d, dword [r8 + 0x9c]
lea edx, [rax - 0x73]
mov eax, dword [r8 + 0x98]
jmp 0x14005c9f0
mov ebp, 0x8664
cmp ax, bp
je 0x14005c9c8
mov ebp, 0xaa64
cmp ax, bp
jne 0x14005ca3c
cmp rdx, 0xf0
jb 0x14005ca3c
mov eax, 0x20b
cmp word [r8 + 0x18], ax
jne 0x14005ca3c
mov eax, dword [r8 + 0xa8]
mov edx, 0xa8
mov r11d, dword [r8 + 0xac]
mov r8d, r11d
lea r11d, [rdi + rdx]
add edi, 0x58
mov ebx, edi
lea rdx, [rax + r8]
cmp rdx, r10
ja 0x14005ca3c
cmp rdx, rax
jb 0x14005ca3c
test rax, rax
jne 0x14005ca16
test r8, r8
cmove rax, r10
dec rax
nop dword [rax]
cmp rax, r10
jae 0x14005ca36
cmp byte [rax + r9], 0
jne 0x14005ca36
inc ecx
dec rax
cmp ecx, 8
jl 0x14005ca20
inc rax
mov qword [rsi], rax
mov rbp, qword [rsp + 0x38]
mov rdi, qword [rsp]
mov rax, qword [rsp + 0x20]
mov dword [rax], ebx
mov dword [rax + 4], r11d
add rsp, 8
pop rsi
pop rbx
ret