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

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x140
mov rax, qword [0x180132920]
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.18004a760
lea rcx, [rsp + 0x20]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
je 0x1800bf88b
lea rcx, [rsp + 0x20]
mov edx, 0x5c
call fcn.18004c664
test rax, rax
je 0x1800bf877
mov byte [rax], 0
lea r8, [rsp + 0x20]
mov r9, rsi
mov edx, edi
mov rcx, rbx
call fcn.1800bf330
jmp 0x1800bf891
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov dword [0x180157be0], eax
test eax, eax
je 0x1800bf8a5
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.18004ac60
add rsp, 0x140
pop rdi
pop rsi
pop rbx
ret

Function at 0x1800bf8d0
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
sub rsp, 0x240
mov rax, qword [0x180132920]
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.18004a760
lea rcx, [rsp + 0x20]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x1800bf94f
lea edx, [rdi + 0x5c]
lea rcx, [rsp + 0x20]
call fcn.18004b884
test rax, rax
je 0x1800bf93b
mov word [rax], di
lea r8, [rsp + 0x20]
mov r9, rbp
mov edx, esi
mov rcx, rbx
call fcn.1800bf3d0
jmp 0x1800bf955
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov dword [0x180157be0], eax
test eax, eax
je 0x1800bf96b
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.18004ac60
mov rbx, qword [rsp + 0x278]
add rsp, 0x240
pop rdi
pop rsi
pop rbp
ret

Function at 0x1800bf9a0
Capabilities:
Get common file path

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x140
mov rax, qword [0x180132920]
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.18004a760
lea rcx, [rsp + 0x20]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
je 0x1800bfa04
lea r8, [rsp + 0x20]
mov r9, rsi
mov edx, edi
mov rcx, rbx
call fcn.1800bf330
jmp 0x1800bfa0a
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov dword [0x180157be0], eax
test eax, eax
je 0x1800bfa1e
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.18004ac60
add rsp, 0x140
pop rdi
pop rsi
pop rbx
ret
Function at 0x1800bfa40
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
sub rsp, 0x240
mov rax, qword [0x180132920]
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.18004a760
lea rcx, [rsp + 0x20]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x1800bfaaa
lea r8, [rsp + 0x20]
mov r9, rbp
mov edx, esi
mov rcx, rbx
call fcn.1800bf3d0
jmp 0x1800bfab0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov dword [0x180157be0], eax
test eax, eax
je 0x1800bfac6
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.18004ac60
mov rbx, qword [rsp + 0x278]
add rsp, 0x240
pop rdi
pop rsi
pop rbp
ret

Function at 0x1800bfaf0
Capabilities:
Get common file path

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x140
mov rax, qword [0x180132920]
xor rax, rsp
mov qword [rsp + 0x130], rax
mov rsi, r8
mov edi, edx
mov rbx, rcx
call fcn.180078ab0
test eax, eax
je 0x1800bfb2d
mov r8, rsi
mov edx, edi
mov rcx, rbx
call fcn.1800bf9a0
jmp 0x1800bfba4
lea rcx, [rsp + 0x21]
xor edx, edx
mov r8d, 0x103
mov byte [rsp + 0x20], 0
call fcn.18004a760
lea rcx, [rsp + 0x20]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
je 0x1800bfb83
lea rdx, [0x1800f5fb0]
lea rcx, [rsp + 0x20]
mov r8d, 0x103
call fcn.1800cb880
lea r8, [rsp + 0x20]
mov r9, rsi
mov edx, edi
mov rcx, rbx
call fcn.1800bf330
jmp 0x1800bfb89
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov dword [0x180157be0], eax
test eax, eax
je 0x1800bfb9d
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.18004ac60
add rsp, 0x140
pop rdi
pop rsi
pop rbx
ret
jmp 0x1800bfaf0
Function at 0x1800bfe40
Capabilities:
Query or enumerate registry value

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
sub rsp, 0x170
mov rax, qword [0x180132920]
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.18004a760
xor ebx, ebx
lea r8, [rsp + 0x38]
lea rdx, [0x1800f60b0]
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 0x1800bff1e
mov rcx, qword [rsp + 0x38]
lea rax, [rsp + 0x40]
lea r9, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x50]
lea rdx, [0x1800f60a0]
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 0x1800bff1e
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 0x1800bff69
lea rcx, [rsp + 0x50]
xor edx, edx
mov r8d, 0x104
call fcn.18004a760
mov eax, dword [0x18010d728]
movups xmm0, xmmword [0x18010d710]
movsd xmm1, qword [0x18010d720]
mov dword [rsp + 0x68], eax
movzx eax, word [0x18010d72c]
movaps xmmword [rsp + 0x50], xmm0
movsd qword [rsp + 0x60], xmm1
mov word [rsp + 0x6c], ax
call fcn.1800bf750
mov byte [rsp + 0x50], al
lea r8, [rsp + 0x50]
mov r9, r12
mov edx, ebp
mov rcx, rsi
call fcn.1800bf330
mov edi, eax
mov dword [0x180157be0], eax
test eax, eax
je 0x1800bff8f
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.18004ac60
add rsp, 0x170
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
Function at 0x1800bffc0
Capabilities:
Query or enumerate registry value

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
sub rsp, 0x270
mov rax, qword [0x180132920]
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.18004a760
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 0x1800c009c
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 0x1800c009c
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 0x1800c00dc
mov word [rsp + rax*2 + 0x50], bx
jmp 0x1800c00dc
lea rcx, [rsp + 0x50]
xor edx, edx
mov r8d, 0x208
call fcn.18004a760
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 0x1800c00c0
call fcn.1800bf7b0
mov word [rsp + 0x50], ax
lea r8, [rsp + 0x50]
mov r9, r12
mov edx, ebp
mov rcx, rsi
call fcn.1800bf3d0
mov edi, eax
mov dword [0x180157be0], eax
test eax, eax
je 0x1800c0102
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.18004ac60
add rsp, 0x270
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
Function at 0x1800c02c0
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 [0x180132920]
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.18004a760
xor ebx, ebx
lea rax, [rsp + 0x54]
lea rdx, [0x1800f60b0]
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 0x1800c03d1
mov rcx, qword [rsp + 0x58]
lea rax, [rsp + 0x60]
lea r9, [rsp + 0x50]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x70]
lea rdx, [0x1800f60a0]
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 0x1800c03d1
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 0x1800c0419
lea rcx, [rsp + 0x70]
xor edx, edx
mov r8d, 0x104
call fcn.18004a760
mov eax, dword [0x18010d728]
movups xmm0, xmmword [0x18010d710]
movsd xmm1, qword [0x18010d720]
mov dword [rbp - 0x78], eax
movzx eax, word [0x18010d72c]
movaps xmmword [rsp + 0x70], xmm0
movsd qword [rbp - 0x80], xmm1
mov word [rbp - 0x74], ax
call fcn.1800bf750
mov byte [rsp + 0x70], al
lea r8, [rsp + 0x70]
mov r9, r13
mov edx, r12d
mov rcx, rsi
call fcn.1800bf330
mov edi, eax
mov dword [0x180157be0], eax
test eax, eax
je 0x1800c0440
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.18004ac60
mov rbx, qword [rsp + 0x1d8]
add rsp, 0x190
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
Function at 0x1800c0470
Capabilities:
Query or enumerate registry value

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
sub rsp, 0x290
mov rax, qword [0x180132920]
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.18004a760
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 0x1800c0576
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 0x1800c0576
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 0x1800c05bc
mov word [rsp + rax*2 + 0x70], bx
jmp 0x1800c05bc
lea rcx, [rsp + 0x70]
xor edx, edx
mov r8d, 0x208
call fcn.18004a760
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 0x1800c05a0
call fcn.1800bf7b0
mov word [rsp + 0x70], ax
lea r8, [rsp + 0x70]
mov r9, r12
mov edx, ebp
mov rcx, rsi
call fcn.1800bf3d0
mov edi, eax
mov dword [0x180157be0], eax
test eax, eax
je 0x1800c05e2
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.18004ac60
add rsp, 0x290
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
Function at 0x1800c07a0
Capabilities:
Query or enumerate registry value

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
sub rsp, 0x190
mov rax, qword [0x180132920]
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.18004a760
xor ebx, ebx
lea rax, [rsp + 0x54]
lea rdx, [0x1800f60b0]
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 0x1800c08a8
mov rcx, qword [rsp + 0x58]
lea rax, [rsp + 0x60]
lea r9, [rsp + 0x50]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x70]
lea rdx, [0x1800f60a0]
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 0x1800c08a8
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 0x1800c08eb
lea rcx, [rsp + 0x70]
xor edx, edx
mov r8d, 0x104
call fcn.18004a760
mov eax, dword [0x18010d808]
movups xmm0, xmmword [0x18010d7e8]
movups xmm1, xmmword [0x18010d7f8]
mov dword [rsp + 0x90], eax
movaps xmmword [rsp + 0x70], xmm0
movaps xmmword [rsp + 0x80], xmm1
call fcn.1800bf750
mov byte [rsp + 0x70], al
lea r8, [rsp + 0x70]
mov r9, r12
mov edx, ebp
mov rcx, rsi
call fcn.1800bf330
mov edi, eax
mov dword [0x180157be0], eax
test eax, eax
je 0x1800c0911
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.18004ac60
add rsp, 0x190
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
Function at 0x1800c0940
Capabilities:
Query or enumerate registry value

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
sub rsp, 0x290
mov rax, qword [0x180132920]
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.18004a760
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 0x1800c0a46
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 0x1800c0a46
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 0x1800c0a8c
mov word [rsp + rax*2 + 0x70], bx
jmp 0x1800c0a8c
lea rcx, [rsp + 0x70]
xor edx, edx
mov r8d, 0x208
call fcn.18004a760
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 0x1800c0a70
call fcn.1800bf7b0
mov word [rsp + 0x70], ax
lea r8, [rsp + 0x70]
mov r9, r12
mov edx, ebp
mov rcx, rsi
call fcn.1800bf3d0
mov edi, eax
mov dword [0x180157be0], eax
test eax, eax
je 0x1800c0ab2
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.18004ac60
add rsp, 0x290
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret

Function at 0x1800c1370
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 0x1800c1399
lea ecx, [rbx + 0x57]
mov dword [0x180157be0], 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 0x1800c13d6
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x1800c13d6
test al, 0x10
jne 0x1800c13d6
test al, 1
je 0x1800c1391
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 0x1800c13f0
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 0x1800c1419
lea ecx, [rbx + 0x57]
mov dword [0x180157be0], 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 0x1800c1456
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1800c1456
test al, 0x10
jne 0x1800c1456
test al, 1
je 0x1800c1411
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 0x1800c1470
Capabilities:
Move file

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x260
mov rax, qword [0x180132920]
xor rax, rsp
mov qword [rsp + 0x250], rax
mov rdi, r8
mov rbx, rdx
mov rsi, rcx
test rcx, rcx
je 0x1800c1598
test rdx, rdx
jne 0x1800c14ad
test r8, r8
je 0x1800c1598
lea rcx, [rsp + 0x141]
xor edx, edx
mov r8d, 0x103
mov byte [rsp + 0x140], 0
call fcn.18004a760
lea r8, [0x1800d4548]
lea rcx, [rsp + 0x140]
mov r9, rsi
mov edx, 0x103
mov qword [rsp + 0x20], rbx
call fcn.1800b9644
lea rcx, [rsp + 0x140]
xor edx, edx
call fcn.1800c0e50
test eax, eax
jne 0x1800c1510
mov dword [0x180157be0], 2
lea ecx, [rax + 2]
jmp 0x1800c15a7
lea rcx, [rsp + 0x31]
xor edx, edx
mov r8d, 0x103
mov byte [rsp + 0x30], 0
call fcn.18004a760
lea r8, [0x1800d4548]
lea rcx, [rsp + 0x30]
mov r9, rsi
mov edx, 0x103
mov qword [rsp + 0x20], rdi
call fcn.1800b9644
lea rcx, [rsp + 0x30]
xor edx, edx
call fcn.1800c0e50
test eax, eax
je 0x1800c1566
mov dword [0x180157be0], 0xb7
mov ecx, 0xb7
jmp 0x1800c15a7
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x140]
call qword [sym.imp.KERNEL32.dll_MoveFileA]
test eax, eax
jne 0x1800c1591
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x180157be0], eax
test eax, eax
je 0x1800c15ad
mov ecx, eax
jmp 0x1800c15a7
mov eax, 1
jmp 0x1800c15af
mov dword [0x180157be0], 0x57
mov ecx, 0x57
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
mov rcx, qword [rsp + 0x250]
xor rcx, rsp
call fcn.18004ac60
add rsp, 0x260
pop rdi
pop rsi
pop rbx
ret
Function at 0x1800c15d0
Capabilities:
Move file

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x460
mov rax, qword [0x180132920]
xor rax, rsp
mov qword [rsp + 0x450], rax
mov rdi, r8
mov rbx, rdx
mov rsi, rcx
test rcx, rcx
je 0x1800c1735
test rdx, rdx
jne 0x1800c160d
test r8, r8
je 0x1800c1735
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.18004a760
lea r8, [0x1800d4558]
lea rcx, [rsp + 0x240]
mov r9, rsi
mov edx, 0x103
mov qword [rsp + 0x20], rbx
call fcn.18004ba54
lea rcx, [rsp + 0x240]
xor edx, edx
call fcn.1800c0ec0
test eax, eax
jne 0x1800c16a0
mov dword [0x180157be0], 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.18004ac60
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.18004a760
lea r8, [0x1800d4558]
lea rcx, [rsp + 0x30]
mov r9, rsi
mov edx, 0x103
mov qword [rsp + 0x20], rdi
call fcn.18004ba54
lea rcx, [rsp + 0x30]
xor edx, edx
call fcn.1800c0ec0
test eax, eax
je 0x1800c16f9
mov dword [0x180157be0], 0xb7
mov ecx, 0xb7
jmp 0x1800c1675
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x240]
call qword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
jne 0x1800c172b
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x180157be0], eax
test eax, eax
je 0x1800c167b
mov ecx, eax
jmp 0x1800c1675
mov eax, 1
jmp 0x1800c167d
mov ecx, 0x57
mov dword [0x180157be0], 0x57
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
jmp 0x1800c1685
Function at 0x1800c2100
Capabilities:
Check if file exists
Create directory
Delete file
Get file attributes
Set file attributes

Disassembly:
push r12
sub rsp, 0x150
mov rax, qword [0x180132920]
xor rax, rsp
mov qword [rsp + 0x130], rax
mov r12, rcx
test rcx, rcx
jne 0x1800c212a
xor eax, eax
jmp 0x1800c22b3
mov qword [rsp + 0x168], rbx
mov qword [rsp + 0x170], rbp
lea rcx, [rsp + 0x21]
xor edx, edx
mov r8d, 0x103
mov qword [rsp + 0x148], rsi
mov ebx, 1
mov byte [rsp + 0x20], 0
mov qword [rsp + 0x140], rdi
call fcn.18004a760
lea rcx, [rsp + 0x20]
mov r8d, 0x103
mov rdx, r12
call fcn.18004a5e0
lea edx, [rbx + 0x5b]
lea rcx, [rsp + 0x20]
call fcn.18004c68c
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x20]
mov rsi, rax
xor eax, eax
repne scasb al, byte [rdi]
not rcx
dec rcx
cmp rcx, 2
jbe 0x1800c21d5
cmp byte [rsp + 0x20], 0x5c
jne 0x1800c21d5
cmp byte [rsp + 0x21], 0x5c
jne 0x1800c21d5
lea edx, [rbx + 0x5b]
lea rcx, [rsp + 0x22]
call fcn.18004c68c
test rax, rax
je 0x1800c2251
lea rcx, [rax + 1]
lea edx, [rbx + 0x5b]
call fcn.18004c68c
mov rsi, rax
test rsi, rsi
je 0x1800c2251
nop word [rax + rax]
lea rcx, [rsp + 0x20]
mov byte [rsi], 0
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov ebp, eax
mov edi, eax
and ebp, 0x10
jne 0x1800c221c
test al, 1
je 0x1800c220b
mov edx, eax
lea rcx, [rsp + 0x20]
and edx, 0xfffffffe
call qword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_DeleteFileA]
mov ebx, eax
test eax, eax
je 0x1800c2291
cmp edi, 0xffffffff
je 0x1800c2225
test ebp, ebp
jne 0x1800c2234
lea rcx, [rsp + 0x20]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov ebx, eax
test ebx, ebx
je 0x1800c2291
lea rcx, [rsi + 1]
mov edx, 0x5c
mov byte [rsi], 0x5c
call fcn.18004c68c
mov rsi, rax
test rax, rax
jne 0x1800c21e0
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x1800c2284
test al, 0x10
jne 0x1800c2291
test al, 1
je 0x1800c2275
and eax, 0xfffffffe
mov rcx, r12
mov edx, eax
call qword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_DeleteFileA]
mov ebx, eax
test eax, eax
je 0x1800c2291
xor edx, edx
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov ebx, eax
mov rdi, qword [rsp + 0x140]
mov rsi, qword [rsp + 0x148]
mov rbp, qword [rsp + 0x170]
mov eax, ebx
mov rbx, qword [rsp + 0x168]
mov rcx, qword [rsp + 0x130]
xor rcx, rsp
call fcn.18004ac60
add rsp, 0x150
pop r12
ret