joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14001f494
Capabilities:
Get geographical location

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov esi, edx
mov ebx, ecx
call fcn.140013b3c
mov ecx, ebx
lea r8, [rsp + 0x30]
and ecx, 0x3ff
mov r9d, 2
bts ecx, 0xa
mov edx, 0x20000001
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
xor edx, edx
test eax, eax
je 0x14001f535
cmp ebx, dword [rsp + 0x30]
je 0x14001f52e
test esi, esi
je 0x14001f52e
mov r10, qword [rdi + 0x98]
mov r9d, edx
movzx r8d, word [r10]
lea rcx, [r10 + 2]
lea eax, [r8 - 0x41]
cmp ax, 0x19
jbe 0x14001f509
sub r8w, 0x61
cmp r8w, 0x19
ja 0x14001f516
movzx r8d, word [rcx]
inc r9d
add rcx, 2
jmp 0x14001f4f3
or rax, 0xffffffffffffffff
inc rax
cmp word [r10 + rax*2], dx
jne 0x14001f51a
cmp r9d, eax
setne dl
mov eax, edx
jmp 0x14001f537
mov eax, 1
jmp 0x14001f537
xor eax, eax
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
Function at 0x140021e94
Capabilities:
Set environment variable

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x20], rdi
push rbp
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xa0
xor r15d, r15d
mov r14, rdx
mov rsi, rcx
mov qword [rbp + 0x17], r15
xor edx, edx
mov qword [rbp + 0x1f], r15
lea rcx, [rbp - 0x39]
mov qword [rbp + 0x27], r15
mov qword [rbp + 0x2f], r15
mov edi, r15d
mov qword [rbp + 0x37], r15
mov byte [rbp + 0x3f], r15b
mov qword [rbp - 0x19], r15
mov qword [rbp - 0x11], r15
mov qword [rbp - 9], r15
mov qword [rbp - 1], r15
mov qword [rbp + 7], r15
mov byte [rbp + 0xf], r15b
call fcn.14000f510
mov rax, qword [rbp - 0x31]
mov ebx, 0xfde9
cmp dword [rax + 0xc], ebx
jne 0x140021f1e
cmp byte [rbp - 0x21], r15b
je 0x140021f19
mov rax, qword [rbp - 0x39]
and dword [rax + 0x3a8], 0xfffffffd
mov r9d, ebx
jmp 0x140021f54
call fcn.140015824
test eax, eax
jne 0x140021f40
cmp byte [rbp - 0x21], r15b
je 0x140021f38
mov rax, qword [rbp - 0x39]
and dword [rax + 0x3a8], 0xfffffffd
mov r9d, 1
jmp 0x140021f54
cmp byte [rbp - 0x21], r15b
je 0x140021f51
mov rax, qword [rbp - 0x39]
and dword [rax + 0x3a8], 0xfffffffd
mov r9d, r15d
lea r8, [rbp + 0x77]
mov rcx, rsi
lea rdx, [rbp + 0x17]
call fcn.14000f698
test eax, eax
jne 0x140021ff4
xor edx, edx
lea rcx, [rbp - 0x39]
call fcn.14000f510
mov rax, qword [rbp - 0x31]
cmp dword [rax + 0xc], ebx
jne 0x140021f93
cmp byte [rbp - 0x21], r15b
je 0x140021fc8
mov rax, qword [rbp - 0x39]
and dword [rax + 0x3a8], 0xfffffffd
jmp 0x140021fc8
call fcn.140015824
test eax, eax
jne 0x140021fb4
cmp byte [rbp - 0x21], r15b
je 0x140021fad
mov rax, qword [rbp - 0x39]
and dword [rax + 0x3a8], 0xfffffffd
mov ebx, 1
jmp 0x140021fc8
cmp byte [rbp - 0x21], r15b
je 0x140021fc5
mov rax, qword [rbp - 0x39]
and dword [rax + 0x3a8], 0xfffffffd
mov ebx, r15d
mov r9d, ebx
lea r8, [rbp + 0x77]
lea rdx, [rbp - 0x19]
mov rcx, r14
call fcn.14000f698
mov rdi, qword [rbp - 9]
test eax, eax
jne 0x140021ff4
mov rcx, qword [rbp + 0x27]
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
mov ebx, eax
jmp 0x140021ff7
mov ebx, r15d
cmp byte [rbp + 0xf], r15b
je 0x140022005
mov rcx, rdi
call fcn.140014ef8
cmp byte [rbp + 0x3f], r15b
je 0x140022014
mov rcx, qword [rbp + 0x27]
call fcn.140014ef8
lea r11, [rsp + 0xa0]
mov eax, ebx
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
Function at 0x140022660
Capabilities:
Clear file content

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 r12
push r14
push r15
sub rsp, 0x20
mov rbx, rdx
mov rsi, r8
xor edx, edx
mov r14d, ecx
lea r8d, [rdx + 1]
call fcn.1400183e0
xor edx, edx
mov ecx, r14d
mov r12, rax
lea r8d, [rdx + 2]
call fcn.1400183e0
mov rbp, rbx
sub rbp, rax
cmp r12, 0xffffffffffffffff
je 0x1400227b0
cmp rax, 0xffffffffffffffff
je 0x1400227b0
xor edi, edi
test rbp, rbp
jle 0x14002275b
lea edx, [rdi + 1]
mov ecx, 0x1000
call fcn.1400154e4
mov rbx, rax
test rax, rax
jne 0x1400226e8
lea edi, [rax + 0xc]
mov byte [rsi + 0x30], 1
mov dword [rsi + 0x2c], edi
jmp 0x140022751
mov edx, 0x8000
mov ecx, r14d
call fcn.140010c00
mov r15d, eax
mov eax, 0x1000
mov r8d, ebp
cmp rbp, rax
mov r9, rsi
mov rdx, rbx
mov ecx, r14d
cmovge r8d, eax
call fcn.140014bf0
cmp eax, 0xffffffff
je 0x140022731
cdqe
sub rbp, rax
test rbp, rbp
jg 0x1400226f8
mov edx, r15d
mov ecx, r14d
call fcn.140010c00
jmp 0x140022751
cmp byte [rsi + 0x38], dil
je 0x140022748
cmp dword [rsi + 0x34], 5
jne 0x140022748
mov byte [rsi + 0x30], 1
mov dword [rsi + 0x2c], 0xd
cmp byte [rsi + 0x30], dil
je 0x140022751
mov edi, dword [rsi + 0x2c]
mov rcx, rbx
call fcn.140014ef8
jmp 0x1400227c4
jns 0x1400227c4
xor r8d, r8d
mov rdx, rbx
mov ecx, r14d
call fcn.1400183e0
cmp rax, 0xffffffffffffffff
jne 0x14002277c
cmp byte [rsi + 0x30], dil
je 0x1400227c4
mov edi, dword [rsi + 0x2c]
jmp 0x1400227c4
mov ecx, r14d
call fcn.14001cf40
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
jne 0x1400227c4
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov byte [rsi + 0x38], 1
mov edi, 0xd
mov dword [rsi + 0x34], eax
mov byte [rsi + 0x30], 1
mov dword [rsi + 0x2c], 0xd
jmp 0x1400227c4
xor edi, edi
cmp byte [rsi + 0x30], dil
je 0x1400227bd
mov eax, dword [rsi + 0x2c]
jmp 0x1400227c2
mov eax, 0x16
mov edi, eax
xor r8d, r8d
mov rdx, r12
mov ecx, r14d
call fcn.1400183e0
mov rbx, qword [rsp + 0x40]
mov eax, edi
mov rdi, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x20
pop r15
pop r14
pop r12
ret

Function at 0x140023740
Capabilities:
Parse pe header

Disassembly:
mov eax, 0x5a4d
cmp word [rcx], ax
jne 0x140023768
movsxd rdx, dword [rcx + 0x3c]
add rdx, rcx
cmp dword [rdx], 0x4550
jne 0x140023768
xor eax, eax
mov ecx, 0x20b
cmp word [rdx + 0x18], cx
sete al
ret
xor eax, eax
ret

Function at 0x140004000
Capabilities:
Execute shellcode via indirect call

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x38
and rsp, 0xfffffffffffffff0
movabs rcx, 0x140004062
movabs rax, sym.imp.KERNEL32.dll_LoadLibraryA
call qword [rax]
movabs rdx, 0x14000406b
mov rcx, rax
movabs rax, sym.imp.KERNEL32.dll_GetProcAddress
call qword [rax]
xor ecx, ecx
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rcx
mov r9, rcx
movabs r8, 0x140004078
mov rdx, rcx
call rax
leave
jmp loc.140001000
Function at 0x140001154
Capabilities:
Terminate process

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x70
mov qword [rbp - 0x10], 0
mov dword [rbp - 0x1c], 0x30
mov eax, dword [rbp - 0x1c]
mov rax, qword gs:[rax]
mov qword [rbp - 0x28], rax
mov rax, qword [rbp - 0x28]
mov rax, qword [rax + 8]
mov qword [rbp - 0x18], rax
mov dword [rbp - 4], 0
jmp 0x1400011ac
mov rax, qword [rbp - 0x10]
cmp rax, qword [rbp - 0x18]
jne 0x14000119e
mov dword [rbp - 4], 1
jmp 0x1400011e3
mov ecx, 0x3e8
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
mov rax, qword [0x1400054f0]
mov qword [rbp - 0x30], rax
mov rax, qword [rbp - 0x18]
mov qword [rbp - 0x38], rax
mov qword [rbp - 0x40], 0
mov rcx, qword [rbp - 0x38]
mov rax, qword [rbp - 0x40]
mov rdx, qword [rbp - 0x30]
lock cmpxchg qword [rdx], rcx
mov qword [rbp - 0x10], rax
cmp qword [rbp - 0x10], 0
jne 0x14000118b
mov rax, qword [0x140005500]
mov eax, dword [rax]
cmp eax, 1
jne 0x1400011fd
mov ecx, 0x1f
call sym._amsg_exit
jmp 0x14000123c
mov rax, qword [0x140005500]
mov eax, dword [rax]
test eax, eax
jne 0x140001232
mov rax, qword [0x140005500]
mov dword [rax], 1
mov rax, qword [0x140005540]
mov rdx, rax
mov rax, qword [0x140005530]
mov rcx, rax
call sym._initterm
jmp 0x14000123c
mov dword [0x140009024], 1
mov rax, qword [0x140005500]
mov eax, dword [rax]
cmp eax, 1
jne 0x140001270
mov rax, qword [0x140005520]
mov rdx, rax
mov rax, qword [0x140005510]
mov rcx, rax
call sym._initterm
mov rax, qword [0x140005500]
mov dword [rax], 2
cmp dword [rbp - 4], 0
jne 0x140001294
mov rax, qword [0x1400054f0]
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x50], 0
mov rdx, qword [rbp - 0x50]
mov rax, qword [rbp - 0x48]
xchg qword [rax], rdx
mov rax, qword [0x140005440]
mov rax, qword [rax]
test rax, rax
je 0x1400012bf
mov rax, qword [0x140005440]
mov rax, qword [rax]
mov r8d, 0
mov edx, 2
mov ecx, 0
call rax
call sym._pei386_runtime_relocator
mov rax, qword [sym._gnu_exception_handler]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
call rax
mov rdx, qword [0x1400054e0]
mov qword [rdx], rax
lea rax, [sym.__mingw_invalidParameterHandler]
mov rcx, rax
call sym._set_invalid_parameter_handler
call sym._fpreset
mov eax, dword [0x140009004]
lea rdx, [0x140009008]
mov ecx, eax
call sym.duplicate_ppstrings
call sym.__main
mov rax, qword [0x140005470]
mov rax, qword [rax]
mov rdx, qword [0x140009010]
mov qword [rax], rdx
mov rcx, qword [0x140009010]
mov rdx, qword [0x140009008]
mov eax, dword [0x140009004]
mov r8, rcx
mov ecx, eax
call sym.main
mov dword [0x14000901c], eax
mov eax, dword [0x140009020]
test eax, eax
jne 0x14000135d
mov eax, dword [0x14000901c]
mov ecx, eax
call sym.exit
mov eax, dword [0x140009024]
test eax, eax
jne 0x14000136c
call sym._cexit
mov eax, dword [0x14000901c]
add rsp, 0x70
pop rbp
ret
Function at 0x140001378
Capabilities:
Parse pe header

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x20
mov rax, qword [0x1400054a0]
mov dword [rax], 1
mov rax, qword [0x1400054b0]
mov dword [rax], 1
mov rax, qword [0x1400054c0]
mov dword [rax], 1
mov rax, qword [0x140005460]
mov qword [rbp - 8], rax
mov rax, qword [rbp - 8]
movzx eax, word [rax]
cmp ax, 0x5a4d
je 0x1400013c9
mov eax, 0
jmp 0x140001476
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0x3c]
movsxd rdx, eax
mov rax, qword [rbp - 8]
add rax, rdx
mov qword [rbp - 0x10], rax
mov rax, qword [rbp - 0x10]
mov eax, dword [rax]
cmp eax, 0x4550
je 0x1400013f5
mov eax, 0
jmp 0x140001476
mov rax, qword [rbp - 0x10]
add rax, 0x18
mov qword [rbp - 0x18], rax
mov rax, qword [rbp - 0x18]
movzx eax, word [rax]
movzx eax, ax
cmp eax, 0x10b
je 0x14000141b
cmp eax, 0x20b
je 0x140001442
jmp 0x140001471
mov rax, qword [rbp - 0x18]
mov eax, dword [rax + 0x5c]
cmp eax, 0xe
ja 0x14000142e
mov eax, 0
jmp 0x140001476
mov rax, qword [rbp - 0x18]
mov eax, dword [rax + 0xd0]
test eax, eax
setne al
movzx eax, al
jmp 0x140001476
mov rax, qword [rbp - 0x18]
mov qword [rbp - 0x20], rax
mov rax, qword [rbp - 0x20]
mov eax, dword [rax + 0x6c]
cmp eax, 0xe
ja 0x14000145d
mov eax, 0
jmp 0x140001476
mov rax, qword [rbp - 0x20]
mov eax, dword [rax + 0xe0]
test eax, eax
setne al
movzx eax, al
jmp 0x140001476
mov eax, 0
add rsp, 0x20
pop rbp
ret

Function at 0x140001a70
Capabilities:
Write file on windows

Disassembly:
push rbp
push rbx
sub rsp, 0x38
lea rbp, [rsp + 0x30]
mov qword [rbp + 0x20], rcx
mov qword [rbp + 0x28], rdx
mov qword [rbp + 0x30], r8
mov qword [rbp + 0x38], r9
lea rax, [rbp + 0x28]
mov qword [rbp - 8], rax
mov ecx, 2
call sym.__acrt_iob_func
mov r9, rax
mov r8d, 0x1b
mov edx, 1
lea rax, str.Mingw_w64_runtime_failure:_n
mov rcx, rax
call sym.fwrite
mov rbx, qword [rbp - 8]
mov ecx, 2
call sym.__acrt_iob_func
mov rcx, rax
mov rax, qword [rbp + 0x20]
mov r8, rbx
mov rdx, rax
call sym.vfprintf
call sym.abort
nop

Function at 0x140002742
Capabilities:
Get thread local storage value

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x30
mov eax, dword [0x140009168]
test eax, eax
je 0x1400027da
lea rax, [0x140009140]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call rax
mov rax, qword [0x140009170]
mov qword [rbp - 8], rax
jmp 0x1400027be
mov rax, qword [rbp - 8]
mov eax, dword [rax]
mov ecx, eax
mov rax, qword [sym.imp.KERNEL32.dll_TlsGetValue]
call rax
mov qword [rbp - 0x10], rax
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
test eax, eax
jne 0x1400027b2
cmp qword [rbp - 0x10], 0
je 0x1400027b2
mov rax, qword [rbp - 8]
mov rdx, qword [rax + 8]
mov rax, qword [rbp - 0x10]
mov rcx, rax
call rdx
mov rax, qword [rbp - 8]
mov rax, qword [rax + 0x10]
mov qword [rbp - 8], rax
cmp qword [rbp - 8], 0
jne 0x140002778
lea rax, [0x140009140]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call rax
jmp 0x1400027db
nop
add rsp, 0x30
pop rbp
ret
Function at 0x14000fd28
Capabilities:
Check if file exists

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x150]
sub rsp, 0x250
mov rax, qword [0x1400b24b8]
xor rax, rsp
mov qword [rbp + 0x140], rax
xor r12d, r12d
lea rax, [rsp + 0x30]
mov qword [rdx], r12
lea r8, [rsp + 0x30]
mov r14d, r12d
sub rcx, rax
mov r15, rdx
mov r9d, 0x104
lea rax, [r9 + 0x7ffffefa]
test rax, rax
je 0x14000fd9d
movzx eax, word [rcx + r8]
test ax, ax
je 0x14000fd9d
mov word [r8], ax
add r8, 2
sub r9, 1
jne 0x14000fd79
lea rax, [r8 - 2]
test r9, r9
lea rcx, [rsp + 0x30]
cmovne rax, r8
lea r8, [0x1400876f0]
mov word [rax], r12w
call fcn.1400071ac
mov edi, 0x1f0003
lea r8, [rsp + 0x30]
mov ecx, edi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_OpenSemaphoreW]
nop dword [rax + rax]
mov rbx, rax
test rax, rax
jne 0x14000fe0c
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
cmp eax, 2
je 0x14000ff01
mov rcx, qword [rbp + 0x178]
mov edx, 0xc9
call fcn.140008a8c
mov esi, eax
jmp 0x14000fee5
lea rdx, [rsp + 0x24]
mov dword [rsp + 0x24], r12d
mov rcx, rbx
mov dword [rsp + 0x20], r12d
call fcn.140009038
mov esi, eax
test eax, eax
jns 0x14000fe4a
mov rcx, qword [rbp + 0x178]
mov r9d, eax
mov edx, 0xcf
call fcn.140008a50
mov rcx, rbx
call fcn.140008b64
jmp 0x14000fee5
lea r8, [0x1400876f8]
lea rcx, [rsp + 0x30]
call fcn.1400071ac
lea r8, [rsp + 0x30]
xor edx, edx
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_OpenSemaphoreW]
nop dword [rax + rax]
mov rdi, rax
test rax, rax
jne 0x14000fe8d
mov rcx, qword [rbp + 0x178]
mov edx, 0xd5
call fcn.140008a8c
mov esi, eax
jmp 0x14000fe3d
lea rdx, [rsp + 0x20]
mov rcx, rdi
call fcn.140009038
mov esi, eax
test eax, eax
jns 0x14000fec1
mov rcx, qword [rbp + 0x178]
mov r9d, eax
mov edx, 0xd7
call fcn.140008a50
mov rcx, rdi
call fcn.140008b64
jmp 0x14000fe3d
mov rcx, rdi
call fcn.140008b64
movsxd rax, dword [rsp + 0x20]
mov rcx, rbx
movsxd r14, dword [rsp + 0x24]
shl rax, 0x1f
or r14, rax
call fcn.140008b64
mov esi, r12d
test esi, esi
jns 0x14000ff01
mov rcx, qword [rbp + 0x178]
mov r9d, esi
mov edx, 0x62
call fcn.140008a50
mov eax, esi
jmp 0x14000ff06
mov qword [r15], r14
xor eax, eax
mov rcx, qword [rbp + 0x140]
xor rcx, rsp
call fcn.140066280
lea r11, [rsp + 0x250]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
Function at 0x14002ae8c
Capabilities:
Compare security identifiers

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0xb0
mov rax, qword [0x1400b24b8]
xor rax, rsp
mov qword [rsp + 0xa0], rax
mov rsi, rdx
mov rbx, rcx
lea rcx, [rsp + 0x20]
call fcn.1400045cc
nop
lea rdx, [rsp + 0x20]
mov rcx, rbx
call fcn.1400060bc
xor ebx, ebx
test al, al
je 0x14002af29
lea rdi, [rsi + 8]
test rdi, rdi
je 0x14002af29
cmp byte [rsi + 0x4c], bl
je 0x14002af29
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_IsValidSid]
nop dword [rax + rax]
test eax, eax
je 0x14002af29
cmp byte [rsp + 0x6c], bl
je 0x14002af29
lea rcx, [rsp + 0x28]
call qword [sym.imp.ADVAPI32.dll_IsValidSid]
nop dword [rax + rax]
test eax, eax
je 0x14002af29
lea rdx, [rsp + 0x28]
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_EqualSid]
nop dword [rax + rax]
test eax, eax
setne bl
lea rcx, [rsp + 0x20]
call fcn.140004888
mov al, bl
mov rcx, qword [rsp + 0xa0]
xor rcx, rsp
call fcn.140066280
lea r11, [rsp + 0xb0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret

Function at 0x14002b05c
Capabilities:
Get token membership

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0xd0
mov rax, qword [0x1400b24b8]
xor rax, rsp
mov qword [rsp + 0xc0], rax
mov rbx, rcx
mov dword [rsp + 0x20], 0x220
mov r9d, 0x20
lea r8d, [r9 - 0x1e]
lea rdx, [0x140087100]
lea rcx, [rsp + 0x40]
call fcn.1400046bc
lea r8, [rsp + 0x34]
lea rdx, [rsp + 0x48]
mov rcx, qword [rbx + 8]
call qword [sym.imp.ADVAPI32.dll_CheckTokenMembership]
nop dword [rax + rax]
test eax, eax
je 0x14002b0cc
cmp dword [rsp + 0x34], 0
setne bl
xor dil, dil
jmp 0x14002b0d3
mov dil, 1
mov bl, byte [rsp + 0x30]
lea rcx, [rsp + 0x40]
call fcn.140004888
test dil, dil
je 0x14002b0e6
xor al, al
jmp 0x14002b0ec
mov al, bl
jmp 0x14002b0ec
mov rcx, qword [rsp + 0xc0]
xor rcx, rsp
call fcn.140066280
mov rbx, qword [rsp + 0xe8]
add rsp, 0xd0
pop rdi
ret

Function at 0x14002b2bc
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rdi
push rbp
mov rbp, rsp
sub rsp, 0x40
mov rdi, rcx
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x20], xmm0
xor ebx, ebx
mov qword [rbp - 0x10], rbx
mov edx, 0x104
lea rcx, [rbp - 0x20]
call fcn.140037760
mov rdx, qword [rbp - 0x18]
mov rcx, qword [rbp - 0x20]
sub rdx, rcx
sar rdx, 1
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
nop dword [rax + rax]
mov r8d, eax
test eax, eax
je 0x14002b375
mov rcx, qword [rbp - 0x18]
mov rax, rcx
mov rdx, qword [rbp - 0x20]
sub rax, rdx
sar rax, 1
cmp r8, rax
jbe 0x14002b355
mov edx, r8d
lea rcx, [rbp - 0x20]
call fcn.140037760
mov rdx, qword [rbp - 0x18]
mov rcx, qword [rbp - 0x20]
sub rdx, rcx
sar rdx, 1
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
nop dword [rax + rax]
mov r8d, eax
mov rcx, qword [rbp - 0x18]
mov rdx, qword [rbp - 0x20]
test r8d, r8d
je 0x14002b375
sub rcx, rdx
sar rcx, 1
mov eax, r8d
cmp rax, rcx
ja 0x14002b375
mov rcx, rdi
call fcn.140003924
nop
mov bl, 1
jmp 0x14002b375
lea rcx, [rbp - 0x20]
call fcn.14001f3e4
mov al, bl
mov rbx, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
add rsp, 0x40
pop rbp
ret
Function at 0x1400402c4
Capabilities:
Get system information on windows

Disassembly:
push rbp
lea rbp, [rsp - 0x90]
sub rsp, 0x190
mov rax, qword [0x1400b24b8]
xor rax, rsp
mov qword [rbp + 0x80], rax
cmp dword [0x1400b3668], 0
je 0x1400402fa
mov eax, dword [0x1400b3664]
jmp 0x140040381
xor edx, edx
lea rcx, [rsp + 0x64]
mov r8d, 0x118
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
lea rcx, [rsp + 0x60]
mov dword [rsp + 0x60], 0x11c
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
nop dword [rax + rax]
xorps xmm0, xmm0
lea rcx, [rsp + 0x30]
movups xmmword [rsp + 0x30], xmm0
movups xmmword [rsp + 0x40], xmm0
movups xmmword [rsp + 0x50], xmm0
call qword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
nop dword [rax + rax]
movzx eax, word [rsp + 0x30]
mov r9b, byte [rbp + 0x7a]
mov edx, dword [rsp + 0x68]
mov ecx, dword [rsp + 0x64]
mov r8d, dword [rsp + 0x70]
mov word [rsp + 0x28], ax
movzx eax, word [rbp + 0x78]
mov word [rsp + 0x20], ax
call fcn.1400403a0
mov dword [0x1400b3664], eax
mov dword [0x1400b3668], 1
mov rcx, qword [rbp + 0x80]
xor rcx, rsp
call fcn.140066280
add rsp, 0x190
pop rbp
ret

Function at 0x140041478
Capabilities:
Query or enumerate registry value

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r14
push r15
mov rbp, rsp
sub rsp, 0x50
mov r15, r8
mov rsi, rdx
mov r14, rcx
and dword [rbp + 0x48], 0
and dword [rbp + 0x38], 0
cmp qword [rdx + 0x18], 8
jb 0x1400414a6
mov rdx, qword [rdx]
lea rax, [rbp + 0x38]
mov qword [rsp + 0x28], rax
and qword [rsp + 0x20], 0
lea r9, [rbp + 0x48]
xor r8d, r8d
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
nop dword [rax + rax]
test eax, eax
jne 0x1400415ad
mov ecx, dword [rbp + 0x38]
test ecx, ecx
je 0x1400415a8
mov eax, dword [rbp + 0x48]
dec eax
cmp eax, 1
ja 0x1400415a8
lea rbx, [rcx + 2]
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x20], xmm0
and qword [rbp - 0x10], 0
mov rdx, rbx
lea rcx, [rbp - 0x20]
call fcn.1400417d8
mov r8, rbx
xor edx, edx
mov rdi, qword [rbp - 0x20]
mov rcx, rdi
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
lea rax, [rdi + rbx]
mov qword [rbp - 0x18], rax
cmp qword [rsi + 0x18], 8
jb 0x140041529
mov rsi, qword [rsi]
lea rax, [rbp + 0x38]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rdi
lea r9, [rbp + 0x48]
xor r8d, r8d
mov rdx, rsi
mov rcx, r14
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
nop dword [rax + rax]
mov ebx, eax
test eax, eax
jne 0x140041562
mov rdx, rdi
mov rcx, r15
call fcn.140003924
nop
test rdi, rdi
je 0x1400415a4
mov rdx, qword [rbp - 0x10]
sub rdx, rdi
mov rax, rdi
cmp rdx, 0x1000
jb 0x14004159c
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14004159c
call qword [sym.imp.api_ms_win_crt_private_l1_1_0.dll__o__invalid_parameter_noinfo_noreturn]
nop dword [rax + rax]
int3
mov rcx, rdi
call fcn.1400665a8
mov eax, ebx
jmp 0x1400415ad
mov eax, 0x65e
mov rbx, qword [rsp + 0x80]
add rsp, 0x50
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
Function at 0x1400415c8
Capabilities:
Query or enumerate registry value

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rsi
push rdi
sub rsp, 0x30
and dword [r9], 0
mov rsi, r9
cmp qword [rdx + 0x18], 8
mov rdi, r8
jb 0x1400415e8
mov rdx, qword [rdx]
lea rax, [rsp + 0x50]
mov r9d, 0x20019
xor r8d, r8d
mov qword [rsp + 0x20], rax
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
nop dword [rax + rax]
test eax, eax
jne 0x14004168b
mov rbx, qword [rsp + 0x50]
lea ecx, [rax + 0x18]
call fcn.1400662a8
lea rcx, vtable.appv::utility::scope_guard_func_impl_class_std::_Binder_struct_std::_Unforced__long_int____cdecl___struct_HKEY______ptr64___struct_HKEY______ptr64____ptr64__.0
mov qword [rsp + 0x68], rax
mov qword [rax], rcx
mov rcx, qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rax + 8], rcx
mov qword [rax + 0x10], rbx
cmp qword [rdi + 0x18], 8
mov qword [rsp + 0x58], rax
mov dword [rsp + 0x70], 4
jb 0x140041654
mov rdi, qword [rdi]
mov rcx, qword [rsp + 0x50]
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rsi
mov rdx, rdi
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
nop dword [rax + rax]
lea rcx, [rsp + 0x58]
mov ebx, eax
call fcn.140006464
mov eax, ebx
add rsp, 0x30
pop rdi
pop rsi
pop rbx
ret

Function at 0x140042b80
Capabilities:
Query environment variable

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x40
mov rdi, rdx
mov rbx, rcx
mov rcx, rdx
cmp qword [rdx + 0x18], 8
jb 0x140042ba7
mov rcx, qword [rdx]
xor r8d, r8d
xor edx, edx
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
nop dword [rax + rax]
lea esi, [rax + 1]
xor ebp, ebp
mov word [rsp + 0x58], bp
mov edx, esi
lea r8, [rsp + 0x58]
lea rcx, [rsp + 0x20]
call fcn.140041704
nop
cmp qword [rdi + 0x18], 8
jb 0x140042bde
mov rdi, qword [rdi]
mov r8d, esi
mov rsi, qword [rsp + 0x20]
mov rdx, rsi
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
nop dword [rax + rax]
mov qword [rbx + 0x10], rbp
mov qword [rbx + 0x18], 7
mov word [rbx], bp
test eax, eax
je 0x140042c22
lea rdx, [0x14008ac58]
test rsi, rsi
cmovne rdx, rsi
mov rcx, rbx
call fcn.140003924
nop
lea rcx, [rsp + 0x20]
call fcn.14001f3e4
mov rax, rbx
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
add rsp, 0x40
pop rdi
ret