joyce8/EMBER2024-capa huggingface dataset:
Function at 0x180095490
Capabilities:
Get common file path

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x140
mov rax, qword [0x1801aef28]
xor rax, rsp
mov qword [rsp + 0x130], rax
mov rbx, rcx
mov rsi, r8
mov edi, edx
lea rcx, [rsp + 0x21]
xor edx, edx
mov r8d, 0x103
mov byte [rsp + 0x20], 0
call fcn.1800a1250
lea rcx, [rsp + 0x20]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
je 0x18009550b
lea rcx, [rsp + 0x20]
mov edx, 0x5c
call fcn.1800a33e8
test rax, rax
je 0x1800954f7
mov byte [rax], 0
lea r8, [rsp + 0x20]
mov r9, rsi
mov edx, edi
mov rcx, rbx
call fcn.180094fb0
jmp 0x180095511
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov dword [0x1801df2cc], eax
test eax, eax
je 0x180095525
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
test ebx, ebx
sete al
mov rcx, qword [rsp + 0x130]
xor rcx, rsp
call fcn.1800a1220
add rsp, 0x140
pop rdi
pop rsi
pop rbx
ret

Function at 0x180095550
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
sub rsp, 0x240
mov rax, qword [0x1801aef28]
xor rax, rsp
mov qword [rsp + 0x230], rax
mov rbx, rcx
mov rbp, r8
mov esi, edx
lea rcx, [rsp + 0x22]
xor edi, edi
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x20], di
call fcn.1800a1250
lea rcx, [rsp + 0x20]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x1800955cf
lea edx, [rdi + 0x5c]
lea rcx, [rsp + 0x20]
call fcn.1800a1be0
test rax, rax
je 0x1800955bb
mov word [rax], di
lea r8, [rsp + 0x20]
mov r9, rbp
mov edx, esi
mov rcx, rbx
call fcn.180095050
jmp 0x1800955d5
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov dword [0x1801df2cc], eax
test eax, eax
je 0x1800955eb
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
test ebx, ebx
sete dil
mov eax, edi
mov rcx, qword [rsp + 0x230]
xor rcx, rsp
call fcn.1800a1220
mov rbx, qword [rsp + 0x278]
add rsp, 0x240
pop rdi
pop rsi
pop rbp
ret

Function at 0x180095620
Capabilities:
Get common file path

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x140
mov rax, qword [0x1801aef28]
xor rax, rsp
mov qword [rsp + 0x130], rax
mov rbx, rcx
mov rsi, r8
mov edi, edx
lea rcx, [rsp + 0x21]
xor edx, edx
mov r8d, 0x103
mov byte [rsp + 0x20], 0
call fcn.1800a1250
lea rcx, [rsp + 0x20]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
je 0x180095684
lea r8, [rsp + 0x20]
mov r9, rsi
mov edx, edi
mov rcx, rbx
call fcn.180094fb0
jmp 0x18009568a
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov dword [0x1801df2cc], eax
test eax, eax
je 0x18009569e
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
test ebx, ebx
sete al
mov rcx, qword [rsp + 0x130]
xor rcx, rsp
call fcn.1800a1220
add rsp, 0x140
pop rdi
pop rsi
pop rbx
ret
Function at 0x1800956c0
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
sub rsp, 0x240
mov rax, qword [0x1801aef28]
xor rax, rsp
mov qword [rsp + 0x230], rax
mov rbx, rcx
mov rbp, r8
mov esi, edx
lea rcx, [rsp + 0x22]
xor edi, edi
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x20], di
call fcn.1800a1250
lea rcx, [rsp + 0x20]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x18009572a
lea r8, [rsp + 0x20]
mov r9, rbp
mov edx, esi
mov rcx, rbx
call fcn.180095050
jmp 0x180095730
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov dword [0x1801df2cc], eax
test eax, eax
je 0x180095746
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
test ebx, ebx
sete dil
mov eax, edi
mov rcx, qword [rsp + 0x230]
xor rcx, rsp
call fcn.1800a1220
mov rbx, qword [rsp + 0x278]
add rsp, 0x240
pop rdi
pop rsi
pop rbp
ret

Function at 0x180095840
Capabilities:
Get common file path

Disassembly:
push rbx
push rbp
push rsi
sub rsp, 0x240
mov rax, qword [0x1801aef28]
xor rax, rsp
mov qword [rsp + 0x230], rax
mov rbp, r8
mov esi, edx
mov rbx, rcx
call fcn.1800dba80
test eax, eax
je 0x180095880
mov r8, rbp
mov edx, esi
mov rcx, rbx
call fcn.1800956c0
jmp 0x18009590a
mov qword [rsp + 0x278], rdi
lea rcx, [rsp + 0x22]
xor edi, edi
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x20], di
call fcn.1800a1250
lea rcx, [rsp + 0x20]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x1800958e0
lea rdx, [0x180140e78]
lea rcx, [rsp + 0x20]
mov r8d, 0x103
call fcn.1800a315c
lea r8, [rsp + 0x20]
mov r9, rbp
mov edx, esi
mov rcx, rbx
call fcn.180095050
jmp 0x1800958e6
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov dword [0x1801df2cc], eax
test eax, eax
je 0x1800958fc
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
test ebx, ebx
sete dil
mov eax, edi
mov rdi, qword [rsp + 0x278]
mov rcx, qword [rsp + 0x230]
xor rcx, rsp
call fcn.1800a1220
add rsp, 0x240
pop rsi
pop rbp
pop rbx
ret
jmp 0x180095840
Function at 0x180095ae0
Capabilities:
Query or enumerate registry value

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
sub rsp, 0x170
mov rax, qword [0x1801aef28]
xor rax, rsp
mov qword [rsp + 0x160], rax
mov rsi, rcx
mov r12, r8
mov ebp, edx
lea rcx, [rsp + 0x51]
xor edx, edx
mov r8d, 0x103
mov byte [rsp + 0x50], 0
call fcn.1800a1250
xor ebx, ebx
lea r8, [rsp + 0x38]
lea rdx, str.SoftwareMicrosoftWindowsCurrentVersion
mov rcx, 0xffffffff80000002
mov dword [rsp + 0x40], 0x104
mov dword [rsp + 0x30], ebx
mov qword [rsp + 0x38], rbx
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x180095bbe
mov rcx, qword [rsp + 0x38]
lea rax, [rsp + 0x40]
lea r9, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x50]
lea rdx, str.CommonFilesDir
xor r8d, r8d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov rcx, qword [rsp + 0x38]
mov edi, eax
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test edi, edi
jne 0x180095bbe
xor eax, eax
or rcx, 0xffffffffffffffff
mov byte [rsp + 0x153], bl
lea rdi, [rsp + 0x50]
repne scasb al, byte [rdi]
not rcx
sub ecx, 2
movsxd rdx, ecx
movzx eax, byte [rsp + rdx + 0x50]
cmp byte [rsp + rdx + 0x50], 0x5c
cmove eax, ebx
mov byte [rsp + rdx + 0x50], al
jmp 0x180095c09
lea rcx, [rsp + 0x50]
xor edx, edx
mov r8d, 0x104
call fcn.1800a1250
mov eax, dword [0x180163350]
movups xmm0, xmmword [0x180163338]
movsd xmm1, qword [0x180163348]
mov dword [rsp + 0x68], eax
movzx eax, word [reloc.WS2_32.dll_WSAStartup]
movaps xmmword [rsp + 0x50], xmm0
movsd qword [rsp + 0x60], xmm1
mov word [rsp + 0x6c], ax
call fcn.1800953d0
mov byte [rsp + 0x50], al
lea r8, [rsp + 0x50]
mov r9, r12
mov edx, ebp
mov rcx, rsi
call fcn.180094fb0
mov edi, eax
mov dword [0x1801df2cc], eax
test eax, eax
je 0x180095c2f
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
test edi, edi
sete bl
mov eax, ebx
mov rcx, qword [rsp + 0x160]
xor rcx, rsp
call fcn.1800a1220
add rsp, 0x170
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
Function at 0x180095c60
Capabilities:
Query or enumerate registry value

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
sub rsp, 0x270
mov rax, qword [0x1801aef28]
xor rax, rsp
mov qword [rsp + 0x260], rax
mov rsi, rcx
mov r12, r8
mov ebp, edx
lea rcx, [rsp + 0x52]
xor ebx, ebx
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x50], bx
call fcn.1800a1250
lea r8, [rsp + 0x38]
lea rdx, [0x180140f50]
mov rcx, 0xffffffff80000002
mov dword [rsp + 0x40], 0x208
mov dword [rsp + 0x30], ebx
mov qword [rsp + 0x38], rbx
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyW]
test eax, eax
jne 0x180095d3c
mov rcx, qword [rsp + 0x38]
lea rax, [rsp + 0x40]
lea r9, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x50]
lea rdx, [0x180140f28]
xor r8d, r8d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov rcx, qword [rsp + 0x38]
mov edi, eax
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test edi, edi
jne 0x180095d3c
xor eax, eax
or rcx, 0xffffffffffffffff
mov word [rsp + 0x256], bx
lea rdi, [rsp + 0x50]
repne scasw ax, word [rdi]
not rcx
lea rax, [rcx - 2]
cdqe
cmp word [rsp + rax*2 + 0x50], 0x5c
jne 0x180095d7c
mov word [rsp + rax*2 + 0x50], bx
jmp 0x180095d7c
lea rcx, [rsp + 0x50]
xor edx, edx
mov r8d, 0x208
call fcn.1800a1250
mov rcx, rbx
lea rdx, str.c:program_filescommom_files
nop dword [rax + rax]
movzx eax, word [rcx + rdx]
add rcx, 2
mov word [rsp + rcx + 0x4e], ax
test ax, ax
jne 0x180095d60
call fcn.180095430
mov word [rsp + 0x50], ax
lea r8, [rsp + 0x50]
mov r9, r12
mov edx, ebp
mov rcx, rsi
call fcn.180095050
mov edi, eax
mov dword [0x1801df2cc], eax
test eax, eax
je 0x180095da2
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
test edi, edi
sete bl
mov eax, ebx
mov rcx, qword [rsp + 0x260]
xor rcx, rsp
call fcn.1800a1220
add rsp, 0x270
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
Function at 0x180095f80
Capabilities:
Query or enumerate registry value

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
lea rbp, [rsp - 0x90]
sub rsp, 0x190
mov rax, qword [0x1801aef28]
xor rax, rsp
mov qword [rbp + 0x80], rax
mov rsi, rcx
mov r13, r8
mov r12d, edx
lea rcx, [rsp + 0x71]
xor edx, edx
mov r8d, 0x103
mov byte [rsp + 0x70], 0
call fcn.1800a1250
xor ebx, ebx
lea rax, [rsp + 0x54]
lea rdx, str.SoftwareMicrosoftWindowsCurrentVersion
xor r9d, r9d
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x58]
xor r8d, r8d
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rbx
mov rcx, 0xffffffff80000002
mov dword [rsp + 0x28], 0x20119
mov dword [rsp + 0x60], 0x104
mov dword [rsp + 0x50], ebx
mov dword [rsp + 0x20], ebx
mov qword [rsp + 0x58], rbx
mov dword [rsp + 0x54], ebx
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x180096091
mov rcx, qword [rsp + 0x58]
lea rax, [rsp + 0x60]
lea r9, [rsp + 0x50]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x70]
lea rdx, str.CommonFilesDir
xor r8d, r8d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov rcx, qword [rsp + 0x58]
mov edi, eax
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test edi, edi
jne 0x180096091
xor eax, eax
or rcx, 0xffffffffffffffff
mov byte [rbp + 0x73], bl
lea rdi, [rsp + 0x70]
repne scasb al, byte [rdi]
not rcx
sub ecx, 2
movsxd rdx, ecx
movzx eax, byte [rsp + rdx + 0x70]
cmp byte [rsp + rdx + 0x70], 0x5c
cmove eax, ebx
mov byte [rsp + rdx + 0x70], al
jmp 0x1800960d9
lea rcx, [rsp + 0x70]
xor edx, edx
mov r8d, 0x104
call fcn.1800a1250
mov eax, dword [0x180163350]
movups xmm0, xmmword [0x180163338]
movsd xmm1, qword [0x180163348]
mov dword [rbp - 0x78], eax
movzx eax, word [reloc.WS2_32.dll_WSAStartup]
movaps xmmword [rsp + 0x70], xmm0
movsd qword [rbp - 0x80], xmm1
mov word [rbp - 0x74], ax
call fcn.1800953d0
mov byte [rsp + 0x70], al
lea r8, [rsp + 0x70]
mov r9, r13
mov edx, r12d
mov rcx, rsi
call fcn.180094fb0
mov edi, eax
mov dword [0x1801df2cc], eax
test eax, eax
je 0x180096100
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
test edi, edi
sete bl
mov eax, ebx
mov rcx, qword [rbp + 0x80]
xor rcx, rsp
call fcn.1800a1220
mov rbx, qword [rsp + 0x1d8]
add rsp, 0x190
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
Function at 0x180096130
Capabilities:
Query or enumerate registry value

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
sub rsp, 0x290
mov rax, qword [0x1801aef28]
xor rax, rsp
mov qword [rsp + 0x280], rax
mov rsi, rcx
mov r12, r8
mov ebp, edx
lea rcx, [rsp + 0x72]
xor ebx, ebx
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x70], bx
call fcn.1800a1250
lea rax, [rsp + 0x54]
lea rdx, [0x180140f50]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x58]
xor r9d, r9d
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rbx
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov dword [rsp + 0x28], 0x20119
mov dword [rsp + 0x60], 0x208
mov dword [rsp + 0x20], ebx
mov dword [rsp + 0x50], ebx
mov qword [rsp + 0x58], rbx
mov dword [rsp + 0x54], ebx
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x180096236
mov rcx, qword [rsp + 0x58]
lea rax, [rsp + 0x60]
lea r9, [rsp + 0x50]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x70]
lea rdx, [0x180140f28]
xor r8d, r8d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov rcx, qword [rsp + 0x58]
mov edi, eax
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test edi, edi
jne 0x180096236
xor eax, eax
or rcx, 0xffffffffffffffff
mov word [rsp + 0x276], bx
lea rdi, [rsp + 0x70]
repne scasw ax, word [rdi]
not rcx
lea rax, [rcx - 2]
cdqe
cmp word [rsp + rax*2 + 0x70], 0x5c
jne 0x18009627c
mov word [rsp + rax*2 + 0x70], bx
jmp 0x18009627c
lea rcx, [rsp + 0x70]
xor edx, edx
mov r8d, 0x208
call fcn.1800a1250
mov rcx, rbx
lea rdx, str.c:program_filescommom_files
nop word [rax + rax]
movzx eax, word [rcx + rdx]
add rcx, 2
mov word [rsp + rcx + 0x6e], ax
test ax, ax
jne 0x180096260
call fcn.180095430
mov word [rsp + 0x70], ax
lea r8, [rsp + 0x70]
mov r9, r12
mov edx, ebp
mov rcx, rsi
call fcn.180095050
mov edi, eax
mov dword [0x1801df2cc], eax
test eax, eax
je 0x1800962a2
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
test edi, edi
sete bl
mov eax, ebx
mov rcx, qword [rsp + 0x280]
xor rcx, rsp
call fcn.1800a1220
add rsp, 0x290
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
Function at 0x180096460
Capabilities:
Query or enumerate registry value

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
sub rsp, 0x190
mov rax, qword [0x1801aef28]
xor rax, rsp
mov qword [rsp + 0x180], rax
mov rsi, rcx
mov r12, r8
mov ebp, edx
lea rcx, [rsp + 0x71]
xor edx, edx
mov r8d, 0x103
mov byte [rsp + 0x70], 0
call fcn.1800a1250
xor ebx, ebx
lea rax, [rsp + 0x54]
lea rdx, str.SoftwareMicrosoftWindowsCurrentVersion
xor r9d, r9d
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x58]
xor r8d, r8d
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rbx
mov rcx, 0xffffffff80000002
mov dword [rsp + 0x28], 0x20219
mov dword [rsp + 0x60], 0x104
mov dword [rsp + 0x50], ebx
mov dword [rsp + 0x20], ebx
mov qword [rsp + 0x58], rbx
mov dword [rsp + 0x54], ebx
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x180096568
mov rcx, qword [rsp + 0x58]
lea rax, [rsp + 0x60]
lea r9, [rsp + 0x50]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x70]
lea rdx, str.CommonFilesDir
xor r8d, r8d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov rcx, qword [rsp + 0x58]
mov edi, eax
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test edi, edi
jne 0x180096568
xor eax, eax
or rcx, 0xffffffffffffffff
mov byte [rsp + 0x173], bl
lea rdi, [rsp + 0x70]
repne scasb al, byte [rdi]
not rcx
sub ecx, 2
movsxd rdx, ecx
movzx eax, byte [rsp + rdx + 0x70]
cmp byte [rsp + rdx + 0x70], 0x5c
cmove eax, ebx
mov byte [rsp + rdx + 0x70], al
jmp 0x1800965ab
lea rcx, [rsp + 0x70]
xor edx, edx
mov r8d, 0x104
call fcn.1800a1250
mov eax, dword [0x180163400]
movups xmm0, xmmword [0x1801633e0]
movups xmm1, xmmword [0x1801633f0]
mov dword [rsp + 0x90], eax
movaps xmmword [rsp + 0x70], xmm0
movaps xmmword [rsp + 0x80], xmm1
call fcn.1800953d0
mov byte [rsp + 0x70], al
lea r8, [rsp + 0x70]
mov r9, r12
mov edx, ebp
mov rcx, rsi
call fcn.180094fb0
mov edi, eax
mov dword [0x1801df2cc], eax
test eax, eax
je 0x1800965d1
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
test edi, edi
sete bl
mov eax, ebx
mov rcx, qword [rsp + 0x180]
xor rcx, rsp
call fcn.1800a1220
add rsp, 0x190
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
Function at 0x180096600
Capabilities:
Query or enumerate registry value

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
sub rsp, 0x290
mov rax, qword [0x1801aef28]
xor rax, rsp
mov qword [rsp + 0x280], rax
mov rsi, rcx
mov r12, r8
mov ebp, edx
lea rcx, [rsp + 0x72]
xor ebx, ebx
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x70], bx
call fcn.1800a1250
lea rax, [rsp + 0x54]
lea rdx, [0x180140f50]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x58]
xor r9d, r9d
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rbx
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov dword [rsp + 0x28], 0x20219
mov dword [rsp + 0x60], 0x208
mov dword [rsp + 0x20], ebx
mov dword [rsp + 0x50], ebx
mov qword [rsp + 0x58], rbx
mov dword [rsp + 0x54], ebx
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x180096706
mov rcx, qword [rsp + 0x58]
lea rax, [rsp + 0x60]
lea r9, [rsp + 0x50]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x70]
lea rdx, [0x180140f28]
xor r8d, r8d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov rcx, qword [rsp + 0x58]
mov edi, eax
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test edi, edi
jne 0x180096706
xor eax, eax
or rcx, 0xffffffffffffffff
mov word [rsp + 0x276], bx
lea rdi, [rsp + 0x70]
repne scasw ax, word [rdi]
not rcx
lea rax, [rcx - 2]
cdqe
cmp word [rsp + rax*2 + 0x70], 0x5c
jne 0x18009674c
mov word [rsp + rax*2 + 0x70], bx
jmp 0x18009674c
lea rcx, [rsp + 0x70]
xor edx, edx
mov r8d, 0x208
call fcn.1800a1250
mov rcx, rbx
lea rdx, str.c:program_files__x86_commom_files
nop word [rax + rax]
movzx eax, word [rcx + rdx]
add rcx, 2
mov word [rsp + rcx + 0x6e], ax
test ax, ax
jne 0x180096730
call fcn.180095430
mov word [rsp + 0x70], ax
lea r8, [rsp + 0x70]
mov r9, r12
mov edx, ebp
mov rcx, rsi
call fcn.180095050
mov edi, eax
mov dword [0x1801df2cc], eax
test eax, eax
je 0x180096772
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
test edi, edi
sete bl
mov eax, ebx
mov rcx, qword [rsp + 0x280]
xor rcx, rsp
call fcn.1800a1220
add rsp, 0x290
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret

Function at 0x180097010
Capabilities:
Check if file exists
Delete file
Get file attributes
Set file attributes

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
test rcx, rcx
jne 0x180097039
lea ecx, [rbx + 0x57]
mov dword [0x1801df2cc], 0x57
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
add rsp, 0x20
pop rbx
ret
call qword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x180097076
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x180097076
test al, 0x10
jne 0x180097076
test al, 1
je 0x180097031
and eax, 0xfffffffe
mov rcx, rbx
mov edx, eax
call qword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov rcx, rbx
add rsp, 0x20
pop rbx
jmp qword [sym.imp.KERNEL32.dll_DeleteFileA]
mov eax, 1
add rsp, 0x20
pop rbx
ret
Function at 0x180097090
Capabilities:
Check if file exists
Delete file
Get file attributes
Set file attributes

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
test rcx, rcx
jne 0x1800970b9
lea ecx, [rbx + 0x57]
mov dword [0x1801df2cc], 0x57
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
add rsp, 0x20
pop rbx
ret
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x1800970f6
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1800970f6
test al, 0x10
jne 0x1800970f6
test al, 1
je 0x1800970b1
and eax, 0xfffffffe
mov rcx, rbx
mov edx, eax
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov rcx, rbx
add rsp, 0x20
pop rbx
jmp qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov eax, 1
add rsp, 0x20
pop rbx
ret

Function at 0x180097110
Capabilities:
Move file

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x260
mov rax, qword [0x1801aef28]
xor rax, rsp
mov qword [rsp + 0x250], rax
mov rdi, r8
mov rbx, rdx
mov rsi, rcx
test rcx, rcx
je 0x180097238
test rdx, rdx
jne 0x18009714d
test r8, r8
je 0x180097238
lea rcx, [rsp + 0x141]
xor edx, edx
mov r8d, 0x103
mov byte [rsp + 0x140], 0
call fcn.1800a1250
lea r8, [0x18015c3fc]
lea rcx, [rsp + 0x140]
mov r9, rsi
mov edx, 0x103
mov qword [rsp + 0x20], rbx
call fcn.1800a3e38
lea rcx, [rsp + 0x140]
xor edx, edx
call fcn.180096af0
test eax, eax
jne 0x1800971b0
mov dword [0x1801df2cc], 2
lea ecx, [rax + 2]
jmp 0x180097247
lea rcx, [rsp + 0x31]
xor edx, edx
mov r8d, 0x103
mov byte [rsp + 0x30], 0
call fcn.1800a1250
lea r8, [0x18015c3fc]
lea rcx, [rsp + 0x30]
mov r9, rsi
mov edx, 0x103
mov qword [rsp + 0x20], rdi
call fcn.1800a3e38
lea rcx, [rsp + 0x30]
xor edx, edx
call fcn.180096af0
test eax, eax
je 0x180097206
mov dword [0x1801df2cc], 0xb7
mov ecx, 0xb7
jmp 0x180097247
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x140]
call qword [sym.imp.KERNEL32.dll_MoveFileA]
test eax, eax
jne 0x180097231
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x1801df2cc], eax
test eax, eax
je 0x18009724d
mov ecx, eax
jmp 0x180097247
mov eax, 1
jmp 0x18009724f
mov dword [0x1801df2cc], 0x57
mov ecx, 0x57
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
mov rcx, qword [rsp + 0x250]
xor rcx, rsp
call fcn.1800a1220
add rsp, 0x260
pop rdi
pop rsi
pop rbx
ret
Function at 0x180097270
Capabilities:
Move file

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x460
mov rax, qword [0x1801aef28]
xor rax, rsp
mov qword [rsp + 0x450], rax
mov rdi, r8
mov rbx, rdx
mov rsi, rcx
test rcx, rcx
je 0x1800973d5
test rdx, rdx
jne 0x1800972ad
test r8, r8
je 0x1800973d5
mov qword [rsp + 0x498], rbp
lea rcx, [rsp + 0x242]
xor ebp, ebp
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x240], bp
call fcn.1800a1250
lea r8, [0x18013fb48]
lea rcx, [rsp + 0x240]
mov r9, rsi
mov edx, 0x103
mov qword [rsp + 0x20], rbx
call fcn.1800a2084
lea rcx, [rsp + 0x240]
xor edx, edx
call fcn.180096b60
test eax, eax
jne 0x180097340
mov dword [0x1801df2cc], 2
lea ecx, [rbp + 2]
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
mov rbp, qword [rsp + 0x498]
mov rcx, qword [rsp + 0x450]
xor rcx, rsp
call fcn.1800a1220
add rsp, 0x460
pop rdi
pop rsi
pop rbx
ret
lea rcx, [rsp + 0x32]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x30], bp
call fcn.1800a1250
lea r8, [0x18013fb48]
lea rcx, [rsp + 0x30]
mov r9, rsi
mov edx, 0x103
mov qword [rsp + 0x20], rdi
call fcn.1800a2084
lea rcx, [rsp + 0x30]
xor edx, edx
call fcn.180096b60
test eax, eax
je 0x180097399
mov dword [0x1801df2cc], 0xb7
mov ecx, 0xb7
jmp 0x180097315
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x240]
call qword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
jne 0x1800973cb
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x1801df2cc], eax
test eax, eax
je 0x18009731b
mov ecx, eax
jmp 0x180097315
mov eax, 1
jmp 0x18009731d
mov ecx, 0x57
mov dword [0x1801df2cc], 0x57
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
jmp 0x180097325
Function at 0x180097ac0
Capabilities:
Enumerate files on windows

Disassembly:
push rbx
sub rsp, 0x4a0
mov rax, qword [0x1801aef28]
xor rax, rsp
mov qword [rsp + 0x490], rax
mov rbx, rcx
test rcx, rcx
jne 0x180097afd
lea ecx, [rbx + 0x57]
mov dword [0x1801df2cc], 0x57
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
jmp 0x180097c04
mov qword [rsp + 0x4b8], rsi
xor esi, esi
lea rcx, [rsp + 0x282]
xor edx, edx
mov r8d, 0x206
mov qword [rsp + 0x4c0], rdi
mov dword [0x1801df2cc], esi
mov word [rsp + 0x280], si
mov edi, esi
call fcn.1800a1250
lea r11, [0x18015bb8c]
lea r8, [0x18013fb48]
lea rcx, [rsp + 0x280]
mov r9, rbx
mov edx, 0x103
mov qword [rsp + 0x20], r11
call fcn.1800a2084
lea rcx, [rsp + 0x34]
xor edx, edx
mov r8d, 0x24c
mov dword [rsp + 0x30], esi
call fcn.1800a1250
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x280]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x180097bda
lea edi, [rsi + 1]
cmp word [rsp + 0x5c], 0x2e
jne 0x180097bcd
movzx eax, word [rsp + 0x5e]
test ax, ax
je 0x180097bb0
cmp ax, 0x2e
jne 0x180097bcd
cmp word [rsp + 0x60], si
jne 0x180097bcd
lea rdx, [rsp + 0x30]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x180097b91
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FindClose]
jmp 0x180097bf2
mov rcx, rbx
mov edi, esi
call qword [sym.imp.KERNEL32.dll_FindClose]
jmp 0x180097bf2
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x1801df2cc], eax
test eax, eax
je 0x180097bf2
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rsi, qword [rsp + 0x4b8]
mov eax, edi
mov rdi, qword [rsp + 0x4c0]
mov rcx, qword [rsp + 0x490]
xor rcx, rsp
call fcn.1800a1220
add rsp, 0x4a0
pop rbx
ret