joyce8/EMBER2024-capa huggingface dataset:
Function at 0x18005c7e0
Capabilities:
Check os version
Get system information on windows

Disassembly:
push rdi
sub rsp, 0x150
mov rax, qword [0x1800a5cc0]
xor rax, rsp
mov qword [rsp + 0x140], rax
cmp dword [0x1800add78], 0
jne 0x18005c984
lea rcx, [0x1800adbf0]
mov edi, 1
mov dword [0x1800adbf0], 0x94
mov dword [0x1800add78], edi
call qword [sym.imp.KERNEL32.dll_GetVersionExA]
xor r11d, r11d
cmp dword [0x1800adc00], 2
sete r11b
mov dword [0x1800a760c], r11d
test r11d, r11d
je 0x18005c968
lea rcx, [0x1800adc90]
mov qword [rsp + 0x160], rbx
mov dword [0x1800adc90], 0x9c
call qword [sym.imp.KERNEL32.dll_GetVersionExA]
lea rcx, str.kernel32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
lea rdx, str.GetNativeSystemInfo
mov rcx, rax
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetProductInfo
mov rcx, rbx
mov qword [0x1800adbe8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, [0x1800add30]
mov qword [0x1800add60], rax
mov rax, qword [0x1800adbe8]
test rax, rax
je 0x18005c8bc
call rax
jmp 0x18005c8c2
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [0x1800adc94]
cmp eax, 6
jae 0x18005c8db
cmp eax, 5
jne 0x18005c8f2
cmp dword [0x1800adc98], 2
jb 0x18005c8f2
mov eax, dword [0x1800adbe0]
cmp word [0x1800add30], 9
cmove eax, edi
mov dword [0x1800adbe0], eax
lea rcx, str.Ntdll.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x18005c920
lea rdx, str.RtlGetVersion
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbx, rax
mov qword [0x1800add68], rax
jmp 0x18005c927
mov rbx, qword [0x1800add68]
test rbx, rbx
je 0x18005c960
lea rcx, [rsp + 0x24]
xor edx, edx
mov r8d, 0x110
call fcn.18002f310
lea rcx, [rsp + 0x20]
mov dword [rsp + 0x20], 0x114
call rbx
mov ecx, dword [0x1800adbfc]
test eax, eax
cmove ecx, dword [rsp + 0x2c]
mov dword [0x1800adbfc], ecx
mov rbx, qword [rsp + 0x160]
lea rdx, [0x1800adbf8]
lea rcx, [0x1800adbf4]
call fcn.18005c6a0
call fcn.18005c3e0
mov eax, edi
jmp 0x18005c989
mov eax, 1
mov rcx, qword [rsp + 0x140]
xor rcx, rsp
call fcn.18002f2e0
add rsp, 0x150
pop rdi
ret

Function at 0x18005e270
Capabilities:
Get common file path

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x140
mov rax, qword [0x1800a5cc0]
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.18002f310
lea rdx, [rsp + 0x20]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
test eax, eax
je 0x18005e2d4
lea r8, [rsp + 0x20]
mov r9, rsi
mov edx, edi
mov rcx, rbx
call fcn.18005dfa0
jmp 0x18005e2da
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov dword [0x1800add7c], eax
test eax, eax
je 0x18005e2ee
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.18002f2e0
add rsp, 0x140
pop rdi
pop rsi
pop rbx
ret
jmp 0x18005e270
Function at 0x18005e3c0
Capabilities:
Get common file path

Disassembly:
sub rsp, 0x148
mov rax, qword [0x1800a5cc0]
xor rax, rsp
mov qword [rsp + 0x130], rax
lea rcx, [rsp + 0x21]
xor edx, edx
mov r8d, 0x103
mov byte [rsp + 0x20], 0
call fcn.18002f310
lea rcx, [rsp + 0x20]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
movzx eax, byte [rsp + 0x20]
mov rcx, qword [rsp + 0x130]
xor rcx, rsp
call fcn.18002f2e0
add rsp, 0x148
ret

Function at 0x18005e420
Capabilities:
Get common file path

Disassembly:
sub rsp, 0x248
mov rax, qword [0x1800a5cc0]
xor rax, rsp
mov qword [rsp + 0x230], rax
xor eax, eax
lea rcx, [rsp + 0x22]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x20], ax
call fcn.18002f310
lea rcx, [rsp + 0x20]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
movzx eax, word [rsp + 0x20]
mov rcx, qword [rsp + 0x230]
xor rcx, rsp
call fcn.18002f2e0
add rsp, 0x248
ret

Function at 0x18005e480
Capabilities:
Get common file path

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x140
mov rax, qword [0x1800a5cc0]
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.18002f310
lea rcx, [rsp + 0x20]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
je 0x18005e4fb
lea rcx, [rsp + 0x20]
mov edx, 0x5c
call fcn.180030e30
test rax, rax
je 0x18005e4e7
mov byte [rax], 0
lea r8, [rsp + 0x20]
mov r9, rsi
mov edx, edi
mov rcx, rbx
call fcn.18005dfa0
jmp 0x18005e501
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov dword [0x1800add7c], eax
test eax, eax
je 0x18005e515
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.18002f2e0
add rsp, 0x140
pop rdi
pop rsi
pop rbx
ret

Function at 0x18005e540
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
sub rsp, 0x240
mov rax, qword [0x1800a5cc0]
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.18002f310
lea rcx, [rsp + 0x20]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x18005e5bf
lea edx, [rdi + 0x5c]
lea rcx, [rsp + 0x20]
call fcn.1800305ac
test rax, rax
je 0x18005e5ab
mov word [rax], di
lea r8, [rsp + 0x20]
mov r9, rbp
mov edx, esi
mov rcx, rbx
call fcn.18005e040
jmp 0x18005e5c5
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov dword [0x1800add7c], eax
test eax, eax
je 0x18005e5db
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.18002f2e0
mov rbx, qword [rsp + 0x278]
add rsp, 0x240
pop rdi
pop rsi
pop rbp
ret
Function at 0x18005e610
Capabilities:
Get common file path

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x140
mov rax, qword [0x1800a5cc0]
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.18002f310
lea rcx, [rsp + 0x20]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
je 0x18005e674
lea r8, [rsp + 0x20]
mov r9, rsi
mov edx, edi
mov rcx, rbx
call fcn.18005dfa0
jmp 0x18005e67a
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov dword [0x1800add7c], eax
test eax, eax
je 0x18005e68e
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.18002f2e0
add rsp, 0x140
pop rdi
pop rsi
pop rbx
ret

Function at 0x18005e6b0
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
sub rsp, 0x240
mov rax, qword [0x1800a5cc0]
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.18002f310
lea rcx, [rsp + 0x20]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x18005e71a
lea r8, [rsp + 0x20]
mov r9, rbp
mov edx, esi
mov rcx, rbx
call fcn.18005e040
jmp 0x18005e720
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov dword [0x1800add7c], eax
test eax, eax
je 0x18005e736
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.18002f2e0
mov rbx, qword [rsp + 0x278]
add rsp, 0x240
pop rdi
pop rsi
pop rbp
ret

Function at 0x18005e760
Capabilities:
Get common file path

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x140
mov rax, qword [0x1800a5cc0]
xor rax, rsp
mov qword [rsp + 0x130], rax
mov rsi, r8
mov edi, edx
mov rbx, rcx
call fcn.18005c9f0
test eax, eax
je 0x18005e79d
mov r8, rsi
mov edx, edi
mov rcx, rbx
call fcn.18005e610
jmp 0x18005e814
lea rcx, [rsp + 0x21]
xor edx, edx
mov r8d, 0x103
mov byte [rsp + 0x20], 0
call fcn.18002f310
lea rcx, [rsp + 0x20]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
je 0x18005e7f3
lea rdx, [0x180089290]
lea rcx, [rsp + 0x20]
mov r8d, 0x103
call fcn.180071160
lea r8, [rsp + 0x20]
mov r9, rsi
mov edx, edi
mov rcx, rbx
call fcn.18005dfa0
jmp 0x18005e7f9
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov dword [0x1800add7c], eax
test eax, eax
je 0x18005e80d
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.18002f2e0
add rsp, 0x140
pop rdi
pop rsi
pop rbx
ret
jmp 0x18005e760
Function at 0x18005eab0
Capabilities:
Query or enumerate registry value

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
sub rsp, 0x170
mov rax, qword [0x1800a5cc0]
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.18002f310
xor ebx, ebx
lea r8, [rsp + 0x38]
lea rdx, [0x180089448]
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 0x18005eb8e
mov rcx, qword [rsp + 0x38]
lea rax, [rsp + 0x40]
lea r9, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x50]
lea rdx, [0x180089438]
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 0x18005eb8e
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 0x18005ebd9
lea rcx, [rsp + 0x50]
xor edx, edx
mov r8d, 0x104
call fcn.18002f310
mov eax, dword [0x18008f360]
movups xmm0, xmmword [0x18008f348]
movsd xmm1, qword [0x18008f358]
mov dword [rsp + 0x68], eax
movzx eax, word [0x18008f364]
movaps xmmword [rsp + 0x50], xmm0
movsd qword [rsp + 0x60], xmm1
mov word [rsp + 0x6c], ax
call fcn.18005e3c0
mov byte [rsp + 0x50], al
lea r8, [rsp + 0x50]
mov r9, r12
mov edx, ebp
mov rcx, rsi
call fcn.18005dfa0
mov edi, eax
mov dword [0x1800add7c], eax
test eax, eax
je 0x18005ebff
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.18002f2e0
add rsp, 0x170
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
Function at 0x18005ec30
Capabilities:
Query or enumerate registry value

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
sub rsp, 0x270
mov rax, qword [0x1800a5cc0]
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.18002f310
lea r8, [rsp + 0x38]
lea rdx, str.SoftwareMicrosoftWindowsCurrentVersion
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 0x18005ed0c
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_RegQueryValueExW]
mov rcx, qword [rsp + 0x38]
mov edi, eax
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test edi, edi
jne 0x18005ed0c
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 0x18005ed4c
mov word [rsp + rax*2 + 0x50], bx
jmp 0x18005ed4c
lea rcx, [rsp + 0x50]
xor edx, edx
mov r8d, 0x208
call fcn.18002f310
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 0x18005ed30
call fcn.18005e420
mov word [rsp + 0x50], ax
lea r8, [rsp + 0x50]
mov r9, r12
mov edx, ebp
mov rcx, rsi
call fcn.18005e040
mov edi, eax
mov dword [0x1800add7c], eax
test eax, eax
je 0x18005ed72
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.18002f2e0
add rsp, 0x270
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
Function at 0x18005ef30
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 [0x1800a5cc0]
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.18002f310
xor ebx, ebx
lea rax, [rsp + 0x54]
lea rdx, [0x180089448]
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 0x18005f041
mov rcx, qword [rsp + 0x58]
lea rax, [rsp + 0x60]
lea r9, [rsp + 0x50]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x70]
lea rdx, [0x180089438]
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 0x18005f041
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 0x18005f089
lea rcx, [rsp + 0x70]
xor edx, edx
mov r8d, 0x104
call fcn.18002f310
mov eax, dword [0x18008f360]
movups xmm0, xmmword [0x18008f348]
movsd xmm1, qword [0x18008f358]
mov dword [rbp - 0x78], eax
movzx eax, word [0x18008f364]
movaps xmmword [rsp + 0x70], xmm0
movsd qword [rbp - 0x80], xmm1
mov word [rbp - 0x74], ax
call fcn.18005e3c0
mov byte [rsp + 0x70], al
lea r8, [rsp + 0x70]
mov r9, r13
mov edx, r12d
mov rcx, rsi
call fcn.18005dfa0
mov edi, eax
mov dword [0x1800add7c], eax
test eax, eax
je 0x18005f0b0
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.18002f2e0
mov rbx, qword [rsp + 0x1d8]
add rsp, 0x190
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
Function at 0x18005f0e0
Capabilities:
Query or enumerate registry value

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
sub rsp, 0x290
mov rax, qword [0x1800a5cc0]
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.18002f310
lea rax, [rsp + 0x54]
lea rdx, str.SoftwareMicrosoftWindowsCurrentVersion
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 0x18005f1e6
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_RegQueryValueExW]
mov rcx, qword [rsp + 0x58]
mov edi, eax
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test edi, edi
jne 0x18005f1e6
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 0x18005f22c
mov word [rsp + rax*2 + 0x70], bx
jmp 0x18005f22c
lea rcx, [rsp + 0x70]
xor edx, edx
mov r8d, 0x208
call fcn.18002f310
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 0x18005f210
call fcn.18005e420
mov word [rsp + 0x70], ax
lea r8, [rsp + 0x70]
mov r9, r12
mov edx, ebp
mov rcx, rsi
call fcn.18005e040
mov edi, eax
mov dword [0x1800add7c], eax
test eax, eax
je 0x18005f252
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.18002f2e0
add rsp, 0x290
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
Function at 0x18005f410
Capabilities:
Query or enumerate registry value

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
sub rsp, 0x190
mov rax, qword [0x1800a5cc0]
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.18002f310
xor ebx, ebx
lea rax, [rsp + 0x54]
lea rdx, [0x180089448]
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 0x18005f518
mov rcx, qword [rsp + 0x58]
lea rax, [rsp + 0x60]
lea r9, [rsp + 0x50]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x70]
lea rdx, [0x180089438]
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 0x18005f518
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 0x18005f55b
lea rcx, [rsp + 0x70]
xor edx, edx
mov r8d, 0x104
call fcn.18002f310
mov eax, dword [0x18008f448]
movups xmm0, xmmword [0x18008f428]
movups xmm1, xmmword [0x18008f438]
mov dword [rsp + 0x90], eax
movaps xmmword [rsp + 0x70], xmm0
movaps xmmword [rsp + 0x80], xmm1
call fcn.18005e3c0
mov byte [rsp + 0x70], al
lea r8, [rsp + 0x70]
mov r9, r12
mov edx, ebp
mov rcx, rsi
call fcn.18005dfa0
mov edi, eax
mov dword [0x1800add7c], eax
test eax, eax
je 0x18005f581
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.18002f2e0
add rsp, 0x190
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
Function at 0x18005f5b0
Capabilities:
Query or enumerate registry value

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
sub rsp, 0x290
mov rax, qword [0x1800a5cc0]
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.18002f310
lea rax, [rsp + 0x54]
lea rdx, str.SoftwareMicrosoftWindowsCurrentVersion
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 0x18005f6b6
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_RegQueryValueExW]
mov rcx, qword [rsp + 0x58]
mov edi, eax
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test edi, edi
jne 0x18005f6b6
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 0x18005f6fc
mov word [rsp + rax*2 + 0x70], bx
jmp 0x18005f6fc
lea rcx, [rsp + 0x70]
xor edx, edx
mov r8d, 0x208
call fcn.18002f310
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 0x18005f6e0
call fcn.18005e420
mov word [rsp + 0x70], ax
lea r8, [rsp + 0x70]
mov r9, r12
mov edx, ebp
mov rcx, rsi
call fcn.18005e040
mov edi, eax
mov dword [0x1800add7c], eax
test eax, eax
je 0x18005f722
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.18002f2e0
add rsp, 0x290
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret

Function at 0x18005ffe0
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 0x180060009
lea ecx, [rbx + 0x57]
mov dword [0x1800add7c], 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 0x180060046
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x180060046
test al, 0x10
jne 0x180060046
test al, 1
je 0x180060001
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 0x180060060
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 0x180060089
lea ecx, [rbx + 0x57]
mov dword [0x1800add7c], 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 0x1800600c6
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1800600c6
test al, 0x10
jne 0x1800600c6
test al, 1
je 0x180060081
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 0x1800600e0
Capabilities:
Move file

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x260
mov rax, qword [0x1800a5cc0]
xor rax, rsp
mov qword [rsp + 0x250], rax
mov rdi, r8
mov rbx, rdx
mov rsi, rcx
test rcx, rcx
je 0x180060208
test rdx, rdx
jne 0x18006011d
test r8, r8
je 0x180060208
lea rcx, [rsp + 0x141]
xor edx, edx
mov r8d, 0x103
mov byte [rsp + 0x140], 0
call fcn.18002f310
lea r8, str._s_s
lea rcx, [rsp + 0x140]
mov r9, rsi
mov edx, 0x103
mov qword [rsp + 0x20], rbx
call fcn.180071078
lea rcx, [rsp + 0x140]
xor edx, edx
call fcn.18005fac0
test eax, eax
jne 0x180060180
mov dword [0x1800add7c], 2
lea ecx, [rax + 2]
jmp 0x180060217
lea rcx, [rsp + 0x31]
xor edx, edx
mov r8d, 0x103
mov byte [rsp + 0x30], 0
call fcn.18002f310
lea r8, str._s_s
lea rcx, [rsp + 0x30]
mov r9, rsi
mov edx, 0x103
mov qword [rsp + 0x20], rdi
call fcn.180071078
lea rcx, [rsp + 0x30]
xor edx, edx
call fcn.18005fac0
test eax, eax
je 0x1800601d6
mov dword [0x1800add7c], 0xb7
mov ecx, 0xb7
jmp 0x180060217
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x140]
call qword [sym.imp.KERNEL32.dll_MoveFileA]
test eax, eax
jne 0x180060201
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x1800add7c], eax
test eax, eax
je 0x18006021d
mov ecx, eax
jmp 0x180060217
mov eax, 1
jmp 0x18006021f
mov dword [0x1800add7c], 0x57
mov ecx, 0x57
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
mov rcx, qword [rsp + 0x250]
xor rcx, rsp
call fcn.18002f2e0
add rsp, 0x260
pop rdi
pop rsi
pop rbx
ret