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

Disassembly:
sub rsp, 0x148
mov rax, qword [0x1800d7110]
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.180029630
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.180029600
add rsp, 0x148
ret

Function at 0x18001e1c0
Capabilities:
Get common file path

Disassembly:
sub rsp, 0x248
mov rax, qword [0x1800d7110]
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.180029630
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.180029600
add rsp, 0x248
ret

Function at 0x18001e220
Capabilities:
Get common file path

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x140
mov rax, qword [0x1800d7110]
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.180029630
lea rcx, [rsp + 0x20]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
je 0x18001e29b
lea rcx, [rsp + 0x20]
mov edx, 0x5c
call fcn.180029eb0
test rax, rax
je 0x18001e287
mov byte [rax], 0
lea r8, [rsp + 0x20]
mov r9, rsi
mov edx, edi
mov rcx, rbx
call fcn.18001dd40
jmp 0x18001e2a1
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov dword [0x1800ef0ec], eax
test eax, eax
je 0x18001e2b5
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.180029600
add rsp, 0x140
pop rdi
pop rsi
pop rbx
ret

Function at 0x18001e2e0
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
sub rsp, 0x240
mov rax, qword [0x1800d7110]
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.180029630
lea rcx, [rsp + 0x20]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x18001e35f
lea edx, [rdi + 0x5c]
lea rcx, [rsp + 0x20]
call fcn.180028888
test rax, rax
je 0x18001e34b
mov word [rax], di
lea r8, [rsp + 0x20]
mov r9, rbp
mov edx, esi
mov rcx, rbx
call fcn.18001dde0
jmp 0x18001e365
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov dword [0x1800ef0ec], eax
test eax, eax
je 0x18001e37b
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.180029600
mov rbx, qword [rsp + 0x278]
add rsp, 0x240
pop rdi
pop rsi
pop rbp
ret
Function at 0x18001e3b0
Capabilities:
Get common file path

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x140
mov rax, qword [0x1800d7110]
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.180029630
lea rcx, [rsp + 0x20]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
je 0x18001e414
lea r8, [rsp + 0x20]
mov r9, rsi
mov edx, edi
mov rcx, rbx
call fcn.18001dd40
jmp 0x18001e41a
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov dword [0x1800ef0ec], eax
test eax, eax
je 0x18001e42e
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.180029600
add rsp, 0x140
pop rdi
pop rsi
pop rbx
ret

Function at 0x18001e450
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
sub rsp, 0x240
mov rax, qword [0x1800d7110]
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.180029630
lea rcx, [rsp + 0x20]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x18001e4ba
lea r8, [rsp + 0x20]
mov r9, rbp
mov edx, esi
mov rcx, rbx
call fcn.18001dde0
jmp 0x18001e4c0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov dword [0x1800ef0ec], eax
test eax, eax
je 0x18001e4d6
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.180029600
mov rbx, qword [rsp + 0x278]
add rsp, 0x240
pop rdi
pop rsi
pop rbp
ret

Function at 0x18001e500
Capabilities:
Get common file path

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x140
mov rax, qword [0x1800d7110]
xor rax, rsp
mov qword [rsp + 0x130], rax
mov rsi, r8
mov edi, edx
mov rbx, rcx
call fcn.18001c790
test eax, eax
je 0x18001e53d
mov r8, rsi
mov edx, edi
mov rcx, rbx
call fcn.18001e3b0
jmp 0x18001e5b4
lea rcx, [rsp + 0x21]
xor edx, edx
mov r8d, 0x103
mov byte [rsp + 0x20], 0
call fcn.180029630
lea rcx, [rsp + 0x20]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
je 0x18001e593
lea rdx, [0x1800a5958]
lea rcx, [rsp + 0x20]
mov r8d, 0x103
call fcn.18002db90
lea r8, [rsp + 0x20]
mov r9, rsi
mov edx, edi
mov rcx, rbx
call fcn.18001dd40
jmp 0x18001e599
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov dword [0x1800ef0ec], eax
test eax, eax
je 0x18001e5ad
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.180029600
add rsp, 0x140
pop rdi
pop rsi
pop rbx
ret
jmp 0x18001e500
Function at 0x18001e850
Capabilities:
Query or enumerate registry value

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
sub rsp, 0x170
mov rax, qword [0x1800d7110]
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.180029630
xor ebx, ebx
lea r8, [rsp + 0x38]
lea rdx, [0x1800a59d8]
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 0x18001e92e
mov rcx, qword [rsp + 0x38]
lea rax, [rsp + 0x40]
lea r9, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x50]
lea rdx, [0x1800a59c8]
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 0x18001e92e
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 0x18001e979
lea rcx, [rsp + 0x50]
xor edx, edx
mov r8d, 0x104
call fcn.180029630
mov eax, dword [0x1800ab180]
movups xmm0, xmmword [0x1800ab168]
movsd xmm1, qword [0x1800ab178]
mov dword [rsp + 0x68], eax
movzx eax, word [0x1800ab184]
movaps xmmword [rsp + 0x50], xmm0
movsd qword [rsp + 0x60], xmm1
mov word [rsp + 0x6c], ax
call fcn.18001e160
mov byte [rsp + 0x50], al
lea r8, [rsp + 0x50]
mov r9, r12
mov edx, ebp
mov rcx, rsi
call fcn.18001dd40
mov edi, eax
mov dword [0x1800ef0ec], eax
test eax, eax
je 0x18001e99f
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.180029600
add rsp, 0x170
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
Function at 0x18001e9d0
Capabilities:
Query or enumerate registry value

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
sub rsp, 0x270
mov rax, qword [0x1800d7110]
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.180029630
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 0x18001eaac
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 0x18001eaac
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 0x18001eaec
mov word [rsp + rax*2 + 0x50], bx
jmp 0x18001eaec
lea rcx, [rsp + 0x50]
xor edx, edx
mov r8d, 0x208
call fcn.180029630
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 0x18001ead0
call fcn.18001e1c0
mov word [rsp + 0x50], ax
lea r8, [rsp + 0x50]
mov r9, r12
mov edx, ebp
mov rcx, rsi
call fcn.18001dde0
mov edi, eax
mov dword [0x1800ef0ec], eax
test eax, eax
je 0x18001eb12
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.180029600
add rsp, 0x270
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
Function at 0x18001ecd0
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 [0x1800d7110]
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.180029630
xor ebx, ebx
lea rax, [rsp + 0x54]
lea rdx, [0x1800a59d8]
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 0x18001ede1
mov rcx, qword [rsp + 0x58]
lea rax, [rsp + 0x60]
lea r9, [rsp + 0x50]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x70]
lea rdx, [0x1800a59c8]
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 0x18001ede1
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 0x18001ee29
lea rcx, [rsp + 0x70]
xor edx, edx
mov r8d, 0x104
call fcn.180029630
mov eax, dword [0x1800ab180]
movups xmm0, xmmword [0x1800ab168]
movsd xmm1, qword [0x1800ab178]
mov dword [rbp - 0x78], eax
movzx eax, word [0x1800ab184]
movaps xmmword [rsp + 0x70], xmm0
movsd qword [rbp - 0x80], xmm1
mov word [rbp - 0x74], ax
call fcn.18001e160
mov byte [rsp + 0x70], al
lea r8, [rsp + 0x70]
mov r9, r13
mov edx, r12d
mov rcx, rsi
call fcn.18001dd40
mov edi, eax
mov dword [0x1800ef0ec], eax
test eax, eax
je 0x18001ee50
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.180029600
mov rbx, qword [rsp + 0x1d8]
add rsp, 0x190
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
Function at 0x18001ee80
Capabilities:
Query or enumerate registry value

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
sub rsp, 0x290
mov rax, qword [0x1800d7110]
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.180029630
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 0x18001ef86
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 0x18001ef86
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 0x18001efcc
mov word [rsp + rax*2 + 0x70], bx
jmp 0x18001efcc
lea rcx, [rsp + 0x70]
xor edx, edx
mov r8d, 0x208
call fcn.180029630
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 0x18001efb0
call fcn.18001e1c0
mov word [rsp + 0x70], ax
lea r8, [rsp + 0x70]
mov r9, r12
mov edx, ebp
mov rcx, rsi
call fcn.18001dde0
mov edi, eax
mov dword [0x1800ef0ec], eax
test eax, eax
je 0x18001eff2
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.180029600
add rsp, 0x290
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
Function at 0x18001f1b0
Capabilities:
Query or enumerate registry value

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
sub rsp, 0x190
mov rax, qword [0x1800d7110]
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.180029630
xor ebx, ebx
lea rax, [rsp + 0x54]
lea rdx, [0x1800a59d8]
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 0x18001f2b8
mov rcx, qword [rsp + 0x58]
lea rax, [rsp + 0x60]
lea r9, [rsp + 0x50]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x70]
lea rdx, [0x1800a59c8]
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 0x18001f2b8
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 0x18001f2fb
lea rcx, [rsp + 0x70]
xor edx, edx
mov r8d, 0x104
call fcn.180029630
mov eax, dword [0x1800ab268]
movups xmm0, xmmword [0x1800ab248]
movups xmm1, xmmword [0x1800ab258]
mov dword [rsp + 0x90], eax
movaps xmmword [rsp + 0x70], xmm0
movaps xmmword [rsp + 0x80], xmm1
call fcn.18001e160
mov byte [rsp + 0x70], al
lea r8, [rsp + 0x70]
mov r9, r12
mov edx, ebp
mov rcx, rsi
call fcn.18001dd40
mov edi, eax
mov dword [0x1800ef0ec], eax
test eax, eax
je 0x18001f321
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.180029600
add rsp, 0x190
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
Function at 0x18001f350
Capabilities:
Query or enumerate registry value

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
sub rsp, 0x290
mov rax, qword [0x1800d7110]
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.180029630
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 0x18001f456
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 0x18001f456
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 0x18001f49c
mov word [rsp + rax*2 + 0x70], bx
jmp 0x18001f49c
lea rcx, [rsp + 0x70]
xor edx, edx
mov r8d, 0x208
call fcn.180029630
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 0x18001f480
call fcn.18001e1c0
mov word [rsp + 0x70], ax
lea r8, [rsp + 0x70]
mov r9, r12
mov edx, ebp
mov rcx, rsi
call fcn.18001dde0
mov edi, eax
mov dword [0x1800ef0ec], eax
test eax, eax
je 0x18001f4c2
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.180029600
add rsp, 0x290
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret

Function at 0x18001fd80
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 0x18001fda9
lea ecx, [rbx + 0x57]
mov dword [0x1800ef0ec], 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 0x18001fde6
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x18001fde6
test al, 0x10
jne 0x18001fde6
test al, 1
je 0x18001fda1
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 0x18001fe00
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 0x18001fe29
lea ecx, [rbx + 0x57]
mov dword [0x1800ef0ec], 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 0x18001fe66
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x18001fe66
test al, 0x10
jne 0x18001fe66
test al, 1
je 0x18001fe21
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 0x18001fe80
Capabilities:
Move file

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x260
mov rax, qword [0x1800d7110]
xor rax, rsp
mov qword [rsp + 0x250], rax
mov rdi, r8
mov rbx, rdx
mov rsi, rcx
test rcx, rcx
je 0x18001ffa8
test rdx, rdx
jne 0x18001febd
test r8, r8
je 0x18001ffa8
lea rcx, [rsp + 0x141]
xor edx, edx
mov r8d, 0x103
mov byte [rsp + 0x140], 0
call fcn.180029630
lea r8, [0x1800a5a04]
lea rcx, [rsp + 0x140]
mov r9, rsi
mov edx, 0x103
mov qword [rsp + 0x20], rbx
call fcn.18002daa4
lea rcx, [rsp + 0x140]
xor edx, edx
call fcn.18001f860
test eax, eax
jne 0x18001ff20
mov dword [0x1800ef0ec], 2
lea ecx, [rax + 2]
jmp 0x18001ffb7
lea rcx, [rsp + 0x31]
xor edx, edx
mov r8d, 0x103
mov byte [rsp + 0x30], 0
call fcn.180029630
lea r8, [0x1800a5a04]
lea rcx, [rsp + 0x30]
mov r9, rsi
mov edx, 0x103
mov qword [rsp + 0x20], rdi
call fcn.18002daa4
lea rcx, [rsp + 0x30]
xor edx, edx
call fcn.18001f860
test eax, eax
je 0x18001ff76
mov dword [0x1800ef0ec], 0xb7
mov ecx, 0xb7
jmp 0x18001ffb7
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x140]
call qword [sym.imp.KERNEL32.dll_MoveFileA]
test eax, eax
jne 0x18001ffa1
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x1800ef0ec], eax
test eax, eax
je 0x18001ffbd
mov ecx, eax
jmp 0x18001ffb7
mov eax, 1
jmp 0x18001ffbf
mov dword [0x1800ef0ec], 0x57
mov ecx, 0x57
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
mov rcx, qword [rsp + 0x250]
xor rcx, rsp
call fcn.180029600
add rsp, 0x260
pop rdi
pop rsi
pop rbx
ret
Function at 0x18001ffe0
Capabilities:
Move file

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x460
mov rax, qword [0x1800d7110]
xor rax, rsp
mov qword [rsp + 0x450], rax
mov rdi, r8
mov rbx, rdx
mov rsi, rcx
test rcx, rcx
je 0x180020145
test rdx, rdx
jne 0x18002001d
test r8, r8
je 0x180020145
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.180029630
lea r8, str._s_s
lea rcx, [rsp + 0x240]
mov r9, rsi
mov edx, 0x103
mov qword [rsp + 0x20], rbx
call fcn.18002a9e0
lea rcx, [rsp + 0x240]
xor edx, edx
call fcn.18001f8d0
test eax, eax
jne 0x1800200b0
mov dword [0x1800ef0ec], 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.180029600
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.180029630
lea r8, str._s_s
lea rcx, [rsp + 0x30]
mov r9, rsi
mov edx, 0x103
mov qword [rsp + 0x20], rdi
call fcn.18002a9e0
lea rcx, [rsp + 0x30]
xor edx, edx
call fcn.18001f8d0
test eax, eax
je 0x180020109
mov dword [0x1800ef0ec], 0xb7
mov ecx, 0xb7
jmp 0x180020085
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x240]
call qword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
jne 0x18002013b
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x1800ef0ec], eax
test eax, eax
je 0x18002008b
mov ecx, eax
jmp 0x180020085
mov eax, 1
jmp 0x18002008d
mov ecx, 0x57
mov dword [0x1800ef0ec], 0x57
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
jmp 0x180020095