joyce8/EMBER2024-capa huggingface dataset:
Function at 0x180097da0
Capabilities:
Check if file exists
Create directory
Delete file
Get file attributes
Set file attributes

Disassembly:
push r12
sub rsp, 0x150
mov rax, qword [0x1801aef28]
xor rax, rsp
mov qword [rsp + 0x130], rax
mov r12, rcx
test rcx, rcx
jne 0x180097dca
xor eax, eax
jmp 0x180097f53
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.1800a1250
lea rcx, [rsp + 0x20]
mov r8d, 0x103
mov rdx, r12
call fcn.1800a2980
lea edx, [rbx + 0x5b]
lea rcx, [rsp + 0x20]
call fcn.1800a31f4
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 0x180097e75
cmp byte [rsp + 0x20], 0x5c
jne 0x180097e75
cmp byte [rsp + 0x21], 0x5c
jne 0x180097e75
lea edx, [rbx + 0x5b]
lea rcx, [rsp + 0x22]
call fcn.1800a31f4
test rax, rax
je 0x180097ef1
lea rcx, [rax + 1]
lea edx, [rbx + 0x5b]
call fcn.1800a31f4
mov rsi, rax
test rsi, rsi
je 0x180097ef1
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 0x180097ebc
test al, 1
je 0x180097eab
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 0x180097f31
cmp edi, 0xffffffff
je 0x180097ec5
test ebp, ebp
jne 0x180097ed4
lea rcx, [rsp + 0x20]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov ebx, eax
test ebx, ebx
je 0x180097f31
lea rcx, [rsi + 1]
mov edx, 0x5c
mov byte [rsi], 0x5c
call fcn.1800a31f4
mov rsi, rax
test rax, rax
jne 0x180097e80
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x180097f24
test al, 0x10
jne 0x180097f31
test al, 1
je 0x180097f15
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 0x180097f31
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.1800a1220
add rsp, 0x150
pop r12
ret
Function at 0x180097f70
Capabilities:
Check if file exists
Create directory
Delete file
Get file attributes
Set file attributes

Disassembly:
push r12
sub rsp, 0x260
mov rax, qword [0x1801aef28]
xor rax, rsp
mov qword [rsp + 0x230], rax
mov r12, rcx
test rcx, rcx
jne 0x180097f9a
xor eax, eax
jmp 0x180098153
mov qword [rsp + 0x278], rbx
mov qword [rsp + 0x280], rbp
mov qword [rsp + 0x258], rsi
mov qword [rsp + 0x250], rdi
mov qword [rsp + 0x248], r13
lea rcx, [rsp + 0x22]
mov qword [rsp + 0x240], r14
xor r14d, r14d
xor edx, edx
mov r8d, 0x206
mov ebx, 1
mov word [rsp + 0x20], r14w
call fcn.1800a1250
lea rcx, [rsp + 0x20]
mov r8d, 0x103
mov rdx, r12
call fcn.1800a11c4
mov r13d, 0x5c
lea rcx, [rsp + 0x20]
mov edx, r13d
call fcn.1800a1c0c
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x20]
mov rsi, rax
xor eax, eax
repne scasw ax, word [rdi]
not rcx
dec rcx
cmp rcx, 2
jbe 0x180098062
cmp word [rsp + 0x20], r13w
jne 0x180098062
cmp word [rsp + 0x22], r13w
jne 0x180098062
lea rcx, [rsp + 0x24]
mov edx, r13d
call fcn.1800a1c0c
test rax, rax
je 0x1800980e1
lea rcx, [rax + 2]
mov edx, r13d
call fcn.1800a1c0c
mov rsi, rax
test rsi, rsi
je 0x1800980e1
nop word [rax + rax]
lea rcx, [rsp + 0x20]
mov word [rsi], r14w
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ebp, eax
mov edi, eax
and ebp, 0x10
jne 0x1800980ad
test al, 1
je 0x18009809c
mov edx, eax
lea rcx, [rsp + 0x20]
and edx, 0xfffffffe
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ebx, eax
test eax, eax
je 0x180098121
cmp edi, 0xffffffff
je 0x1800980b6
test ebp, ebp
jne 0x1800980c5
lea rcx, [rsp + 0x20]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov ebx, eax
test ebx, ebx
je 0x180098121
lea rcx, [rsi + 2]
mov edx, r13d
mov word [rsi], r13w
call fcn.1800a1c0c
mov rsi, rax
test rax, rax
jne 0x180098070
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x180098114
test al, 0x10
jne 0x180098121
test al, 1
je 0x180098105
and eax, 0xfffffffe
mov rcx, r12
mov edx, eax
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ebx, eax
test eax, eax
je 0x180098121
xor edx, edx
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov ebx, eax
mov r14, qword [rsp + 0x240]
mov r13, qword [rsp + 0x248]
mov rdi, qword [rsp + 0x250]
mov rsi, qword [rsp + 0x258]
mov rbp, qword [rsp + 0x280]
mov eax, ebx
mov rbx, qword [rsp + 0x278]
mov rcx, qword [rsp + 0x230]
xor rcx, rsp
call fcn.1800a1220
add rsp, 0x260
pop r12
ret
Function at 0x180098170
Capabilities:
Check if file exists
Create directory
Delete file
Get file attributes
Set file attributes

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov edi, edx
mov rbx, rcx
test rcx, rcx
jne 0x1800981a4
lea ecx, [rbx + 0x57]
mov dword [0x1801df2cc], 0x57
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x1800981ca
test al, 0x10
jne 0x18009820a
mov edx, 0x80
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_DeleteFileA]
xor edx, edx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
jne 0x18009820a
mov rcx, rbx
call fcn.180097da0
test eax, eax
jne 0x18009820a
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x1801df2cc], eax
test eax, eax
je 0x1800981fd
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
test edi, edi
je 0x180098219
mov edx, edi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov eax, 1
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret

Function at 0x180098230
Capabilities:
Check if file exists
Create directory
Delete file
Get file attributes
Set file attributes

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov edi, edx
mov rbx, rcx
test rcx, rcx
jne 0x180098264
lea ecx, [rbx + 0x57]
mov dword [0x1801df2cc], 0x57
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x18009828a
test al, 0x10
jne 0x1800982ca
mov edx, 0x80
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
xor edx, edx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x1800982ca
mov rcx, rbx
call fcn.180097f70
test eax, eax
jne 0x1800982ca
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x1801df2cc], eax
test eax, eax
je 0x1800982bd
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
test edi, edi
je 0x1800982d9
mov edx, edi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov eax, 1
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
Function at 0x18009a620
Capabilities:
Delete directory
Get file attributes
Set file attributes

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
test rcx, rcx
jne 0x18009a649
lea ecx, [rbx + 0x57]
mov dword [0x1801df2cc], 0x57
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
add rsp, 0x20
pop rbx
ret
xor r9d, r9d
lea r8, [0x18009a4a0]
lea edx, [r9 + 0x20]
call fcn.1800987f0
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov rcx, rbx
and eax, 0xfffffffe
mov edx, eax
call qword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
mov ebx, eax
test eax, eax
jne 0x18009a69a
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x1801df2cc], eax
test eax, eax
je 0x18009a69a
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, ebx
add rsp, 0x20
pop rbx
ret

Function at 0x18009a6b0
Capabilities:
Delete directory
Get file attributes
Set file attributes

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
test rcx, rcx
jne 0x18009a6d9
lea ecx, [rbx + 0x57]
mov dword [0x1801df2cc], 0x57
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
add rsp, 0x20
pop rbx
ret
xor r9d, r9d
lea r8, [0x18009a560]
lea edx, [r9 + 0x20]
call fcn.180098960
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov rcx, rbx
and eax, 0xfffffffe
mov edx, eax
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov ebx, eax
test eax, eax
jne 0x18009a72a
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x1801df2cc], eax
test eax, eax
je 0x18009a72a
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, ebx
add rsp, 0x20
pop rbx
ret

Function at 0x18009be40
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 rdx, [rsp + 0x20]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
test eax, eax
je 0x18009538a
lea r8, [rsp + 0x20]
mov r9, rbp
mov edx, esi
mov rcx, rbx
call fcn.180095050
jmp 0x180095390
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov dword [0x1801df2cc], eax
test eax, eax
je 0x1800953a6
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
jmp 0x180095320
Function at 0x18009c190
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 0x18009c570
Capabilities:
Get common file path

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
sub rsp, 0x450
mov rax, qword [0x1801aef28]
xor rax, rsp
mov qword [rsp + 0x440], rax
mov rsi, rcx
mov r12, r8
mov ebp, edx
lea rcx, [rsp + 0x22]
xor ebx, ebx
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x20], bx
call fcn.1800a1250
lea rdx, [rsp + 0x20]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x18009c684
or rcx, 0xffffffffffffffff
xor eax, eax
lea rdi, [rsp + 0x20]
repne scasw ax, word [rdi]
not rcx
dec rcx
test ecx, ecx
je 0x18009c5f1
lea eax, [rcx - 1]
cmp word [rsp + rax*2 + 0x20], 0x5c
jne 0x18009c5f1
mov word [rsp + rax*2 + 0x20], bx
lea rcx, [rsp + 0x20]
call fcn.180094e80
test eax, eax
je 0x18009c670
lea rcx, [rsp + 0x232]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x230], bx
call fcn.1800a1250
lea rdx, [rsp + 0x230]
lea rcx, [rsp + 0x20]
mov r8d, 0x104
call fcn.18009bb30
or rcx, 0xffffffffffffffff
xor eax, eax
lea rdi, [rsp + 0x230]
repne scasw ax, word [rdi]
not rcx
dec rcx
cmp ecx, 0x104
jge 0x18009c670
movsxd rdi, ecx
lea rdx, [rsp + 0x230]
lea rcx, [rsp + 0x20]
mov r8, rdi
call fcn.1800a11c4
mov word [rsp + rdi*2 + 0x20], bx
lea r8, [rsp + 0x20]
mov r9, r12
mov edx, ebp
mov rcx, rsi
call fcn.180095050
jmp 0x18009c68a
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov dword [0x1801df2cc], eax
test eax, eax
je 0x18009c6a0
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
test edi, edi
sete bl
mov eax, ebx
mov rcx, qword [rsp + 0x440]
xor rcx, rsp
call fcn.1800a1220
add rsp, 0x450
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
jmp 0x18009c570
Function at 0x18009d430
Capabilities:
Query environment variable

Disassembly:
push rbx
push rbp
push rsi
push r12
sub rsp, 0x458
mov rax, qword [0x1801aef28]
xor rax, rsp
mov qword [rsp + 0x440], rax
mov rbx, rcx
mov rbp, r8
mov esi, edx
lea rcx, [rsp + 0x22]
xor r12d, r12d
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x20], r12w
call fcn.1800a1250
lea rdx, [rsp + 0x20]
lea rcx, str.ALLUSERSPROFILE
mov r8d, 0x104
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
dec eax
cmp eax, 0x102
ja 0x18009d545
lea rcx, [rsp + 0x20]
call fcn.180094e80
test eax, eax
je 0x18009d52c
lea rcx, [rsp + 0x232]
xor edx, edx
mov r8d, 0x206
mov qword [rsp + 0x450], rdi
mov word [rsp + 0x230], r12w
call fcn.1800a1250
lea rdx, [rsp + 0x230]
lea rcx, [rsp + 0x20]
mov r8d, 0x104
call fcn.18009bb30
or rcx, 0xffffffffffffffff
xor eax, eax
lea rdi, [rsp + 0x230]
repne scasw ax, word [rdi]
not rcx
dec rcx
cmp ecx, 0x104
jge 0x18009d524
movsxd rdi, ecx
lea rdx, [rsp + 0x230]
lea rcx, [rsp + 0x20]
mov r8, rdi
call fcn.1800a11c4
mov word [rsp + rdi*2 + 0x20], r12w
mov rdi, qword [rsp + 0x450]
lea r8, [rsp + 0x20]
mov r9, rbp
mov edx, esi
mov rcx, rbx
call fcn.180095050
mov eax, 1
jmp 0x18009d547
xor eax, eax
mov rcx, qword [rsp + 0x440]
xor rcx, rsp
call fcn.1800a1220
add rsp, 0x458
pop r12
pop rsi
pop rbp
pop rbx
ret
jmp 0x18009d430

Function at 0x18009d6a0
Capabilities:
Query environment variable

Disassembly:
push rbx
push rbp
push rsi
push r12
sub rsp, 0x458
mov rax, qword [0x1801aef28]
xor rax, rsp
mov qword [rsp + 0x440], rax
mov rbx, rcx
mov rbp, r8
mov esi, edx
lea rcx, [rsp + 0x22]
xor r12d, r12d
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x20], r12w
call fcn.1800a1250
lea rdx, [rsp + 0x20]
lea rcx, [0x18015c3c8]
mov r8d, 0x104
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
dec eax
cmp eax, 0x102
ja 0x18009d7b5
lea rcx, [rsp + 0x20]
call fcn.180094e80
test eax, eax
je 0x18009d79c
lea rcx, [rsp + 0x232]
xor edx, edx
mov r8d, 0x206
mov qword [rsp + 0x450], rdi
mov word [rsp + 0x230], r12w
call fcn.1800a1250
lea rdx, [rsp + 0x230]
lea rcx, [rsp + 0x20]
mov r8d, 0x104
call fcn.18009bb30
or rcx, 0xffffffffffffffff
xor eax, eax
lea rdi, [rsp + 0x230]
repne scasw ax, word [rdi]
not rcx
dec rcx
cmp ecx, 0x104
jge 0x18009d794
movsxd rdi, ecx
lea rdx, [rsp + 0x230]
lea rcx, [rsp + 0x20]
mov r8, rdi
call fcn.1800a11c4
mov word [rsp + rdi*2 + 0x20], r12w
mov rdi, qword [rsp + 0x450]
lea r8, [rsp + 0x20]
mov r9, rbp
mov edx, esi
mov rcx, rbx
call fcn.180095050
mov eax, 1
jmp 0x18009d7b7
xor eax, eax
mov rcx, qword [rsp + 0x440]
xor rcx, rsp
call fcn.1800a1220
add rsp, 0x458
pop r12
pop rsi
pop rbp
pop rbx
ret
Function at 0x18009f170
Capabilities:
Get common file path

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
sub rsp, 0x450
mov rax, qword [0x1801aef28]
xor rax, rsp
mov qword [rsp + 0x440], rax
mov rsi, rcx
mov r12, r8
mov ebp, edx
lea rcx, [rsp + 0x22]
xor ebx, ebx
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x20], bx
call fcn.1800a1250
lea rdx, [rsp + 0x20]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x18009c684
or rcx, 0xffffffffffffffff
xor eax, eax
lea rdi, [rsp + 0x20]
repne scasw ax, word [rdi]
not rcx
dec rcx
test ecx, ecx
je 0x18009c5f1
lea eax, [rcx - 1]
cmp word [rsp + rax*2 + 0x20], 0x5c
jne 0x18009c5f1
mov word [rsp + rax*2 + 0x20], bx
lea rcx, [rsp + 0x20]
call fcn.180094e80
test eax, eax
je 0x18009c670
lea rcx, [rsp + 0x232]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x230], bx
call fcn.1800a1250
lea rdx, [rsp + 0x230]
lea rcx, [rsp + 0x20]
mov r8d, 0x104
call fcn.18009bb30
or rcx, 0xffffffffffffffff
xor eax, eax
lea rdi, [rsp + 0x230]
repne scasw ax, word [rdi]
not rcx
dec rcx
cmp ecx, 0x104
jge 0x18009c670
movsxd rdi, ecx
lea rdx, [rsp + 0x230]
lea rcx, [rsp + 0x20]
mov r8, rdi
call fcn.1800a11c4
mov word [rsp + rdi*2 + 0x20], bx
lea r8, [rsp + 0x20]
mov r9, r12
mov edx, ebp
mov rcx, rsi
call fcn.180095050
jmp 0x18009c68a
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov dword [0x1801df2cc], eax
test eax, eax
je 0x18009c6a0
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
test edi, edi
sete bl
mov eax, ebx
mov rcx, qword [rsp + 0x440]
xor rcx, rsp
call fcn.1800a1220
add rsp, 0x450
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
jmp 0x18009c570

Function at 0x18009f5f0
Capabilities:
Query environment variable

Disassembly:
push rbx
push rbp
push rsi
push r12
sub rsp, 0x458
mov rax, qword [0x1801aef28]
xor rax, rsp
mov qword [rsp + 0x440], rax
mov rbx, rcx
mov rbp, r8
mov esi, edx
lea rcx, [rsp + 0x22]
xor r12d, r12d
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x20], r12w
call fcn.1800a1250
lea rdx, [rsp + 0x20]
lea rcx, str.ALLUSERSPROFILE
mov r8d, 0x104
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
dec eax
cmp eax, 0x102
ja 0x18009d545
lea rcx, [rsp + 0x20]
call fcn.180094e80
test eax, eax
je 0x18009d52c
lea rcx, [rsp + 0x232]
xor edx, edx
mov r8d, 0x206
mov qword [rsp + 0x450], rdi
mov word [rsp + 0x230], r12w
call fcn.1800a1250
lea rdx, [rsp + 0x230]
lea rcx, [rsp + 0x20]
mov r8d, 0x104
call fcn.18009bb30
or rcx, 0xffffffffffffffff
xor eax, eax
lea rdi, [rsp + 0x230]
repne scasw ax, word [rdi]
not rcx
dec rcx
cmp ecx, 0x104
jge 0x18009d524
movsxd rdi, ecx
lea rdx, [rsp + 0x230]
lea rcx, [rsp + 0x20]
mov r8, rdi
call fcn.1800a11c4
mov word [rsp + rdi*2 + 0x20], r12w
mov rdi, qword [rsp + 0x450]
lea r8, [rsp + 0x20]
mov r9, rbp
mov edx, esi
mov rcx, rbx
call fcn.180095050
mov eax, 1
jmp 0x18009d547
xor eax, eax
mov rcx, qword [rsp + 0x440]
xor rcx, rsp
call fcn.1800a1220
add rsp, 0x458
pop r12
pop rsi
pop rbp
pop rbx
ret
jmp 0x18009d430
Function at 0x18009fd50
Capabilities:
Get file size
Read file on windows

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x40
mov rbx, rdx
mov rdi, rcx
call fcn.18009fae0
xor r9d, r9d
mov qword [rsp + 0x30], 0
mov edx, 0x80000000
lea r8d, [r9 + 7]
mov rcx, rbx
mov dword [rsp + 0x28], 0x80
mov dword [rdi + 0x20], 1
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov qword [rdi + 8], rax
cmp rax, 0xffffffffffffffff
je 0x18009fde1
test rax, rax
je 0x18009fde1
lea rdx, [rdi + 0x14]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov rcx, qword [rdi + 8]
lea r9, [rdi + 0x43c]
lea rdx, [rdi + 0x3c]
mov r8d, 0x400
mov dword [rdi + 0x10], eax
mov qword [rsp + 0x20], 0
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x18009fde9
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rdi], eax
mov rax, rdi
mov rbx, qword [rsp + 0x50]
add rsp, 0x40
pop rdi
ret

Function at 0x18009fec0
Capabilities:
Read file on windows

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x30
mov rax, qword [rcx + 8]
mov esi, r8d
mov edi, edx
mov rbx, rcx
cmp rax, 0xffffffffffffffff
je 0x18009ffeb
test rax, rax
je 0x18009ffeb
mov qword [rsp + 0x60], r12
lea r9, [rsp + 0x50]
xor r12d, r12d
mov edx, edi
mov qword [rsp + 0x50], r12
call fcn.18009fc00
mov r10, qword [rsp + 0x50]
cmp r10, qword [rcx + 0x10]
jg 0x18009ff7d
cmp dword [rsp + 0x54], r12d
jne 0x18009ff30
mov eax, dword [rcx + 0x43c]
cmp dword [rsp + 0x50], eax
ja 0x18009ff30
lea rax, [rdi + rcx + 0x3c]
mov r12, qword [rsp + 0x60]
add rsp, 0x30
pop rdi
pop rsi
pop rbx
ret
mov r11, qword [rbx + 0x28]
test r11, r11
je 0x18009ff6e
mov edx, dword [rbx + 0x38]
mov r8d, dword [rbx + 0x34]
lea r9, [rsp + 0x50]
mov qword [rsp + 0x50], r12
call fcn.18009fc00
cmp edx, edi
ja 0x18009ff6e
cmp r10, qword [rsp + 0x50]
jg 0x18009ff6e
mov r12, qword [rsp + 0x60]
sub edi, edx
mov eax, edi
add rax, r11
add rsp, 0x30
pop rdi
pop rsi
pop rbx
ret
mov edx, esi
mov rcx, rbx
call fcn.18009fb90
test rax, rax
jne 0x18009ff8c
xor eax, eax
mov r12, qword [rsp + 0x60]
add rsp, 0x30
pop rdi
pop rsi
pop rbx
ret
mov edx, edi
mov rcx, rbx
mov qword [rsp + 0x58], rbp
call fcn.18009fc30
test eax, eax
je 0x18009ffdb
mov rdx, qword [rbx + 0x28]
mov rcx, qword [rbx + 8]
lea r9, [rbx + 0x34]
mov r8d, esi
mov qword [rsp + 0x20], r12
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x18009ffdb
cmp dword [rbx + 0x34], esi
jne 0x18009ffdb
mov rax, qword [rbx + 0x28]
mov dword [rbx + 0x38], edi
mov rbp, qword [rsp + 0x58]
mov r12, qword [rsp + 0x60]
add rsp, 0x30
pop rdi
pop rsi
pop rbx
ret
mov qword [rbx + 0x34], r12
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rbx], eax
xor eax, eax
jmp 0x18009ffc9
xor eax, eax
add rsp, 0x30
pop rdi
pop rsi
pop rbx
ret
Function at 0x1800a02c0
Capabilities:
Get file size
Read file via mapping

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x50
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov rbx, rcx
xor r13d, r13d
mov ebp, r13d
cmp dword [rcx + 0x30], ebp
je 0x1800a02ee
call fcn.18011c6a0
mov rbp, rax
mov edx, 0xc0000000
mov eax, 0x80000000
cmp dword [rbx + 0x28], r13d
cmovne edx, eax
mov dword [rsp + 0x90], r13d
mov esi, r13d
mov rcx, qword [rbx + 0x38]
cmp dword [rcx - 8], r13d
je 0x1800a0372
mov qword [rsp + 0x30], r13
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
mov r9, rbp
mov r8d, 3
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [rbx + 8], rax
cmp rax, 0xffffffffffffffff
je 0x1800a0355
lea rdx, [rsp + 0x90]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
cmp qword [rbx + 8], 0xffffffffffffffff
je 0x1800a04c9
cmp dword [rsp + 0x90], r13d
jne 0x1800a0372
test esi, esi
je 0x1800a04c9
mov r14d, 4
mov r12d, r14d
mov eax, 2
cmp dword [rbx + 0x28], r13d
cmovne r12d, eax
lea rdx, [rbx + 0x40]
lea rcx, [rsp + 0x98]
call fcn.180080be0
nop
cmp dword [rbx + 0x2c], 0
je 0x1800a03d8
mov rax, qword [rbx + 0x40]
cmp dword [rax - 8], 0
je 0x1800a03d8
call fcn.1800dbb60
test eax, eax
je 0x1800a03d8
lea rdx, [0x18015b820]
lea rcx, [rsp + 0x98]
call fcn.18007d430
lea rdx, [rbx + 0x40]
lea rcx, [rsp + 0x98]
call fcn.18007d5f0
mov rax, qword [rsp + 0x98]
cmp dword [rax - 8], 0
cmove rax, r13
mov qword [rsp + 0x28], rax
mov eax, dword [rbx + 0x20]
mov dword [rsp + 0x20], eax
xor r9d, r9d
mov r8d, r12d
mov rdx, rbp
mov rcx, qword [rbx + 8]
call qword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov qword [rbx + 0x10], rax
test rax, rax
je 0x1800a04bc
mov edx, 6
cmp dword [rbx + 0x28], 0
cmovne edx, r14d
mov ecx, dword [rbx + 0x20]
mov qword [rsp + 0x20], rcx
mov r9d, dword [rbx + 0x24]
xor r8d, r8d
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov qword [rbx + 0x18], rax
test rax, rax
je 0x1800a04ba
cmp dword [rbx + 0x20], 0
jne 0x1800a04a6
cmp qword [rbx + 8], 0xffffffffffffffff
je 0x1800a04a6
mov dword [rsp + 0xa0], esi
mov eax, dword [rsp + 0x90]
mov dword [rsp + 0xa4], eax
mov eax, dword [rbx + 0x24]
mov dword [rsp + 0xa8], eax
mov dword [rsp + 0xac], r13d
mov rcx, qword [rsp + 0xa0]
sub rcx, qword [rsp + 0xa8]
mov qword [rsp + 0xa0], rcx
shr rcx, 0x20
mov edx, dword [rsp + 0xa0]
or r8d, 0xffffffff
test ecx, ecx
cmovg edx, r8d
mov dword [rbx + 0x20], edx
lea rcx, [rsp + 0x98]
call fcn.18007d270
mov eax, 1
jmp 0x1800a04cc
jmp 0x1800a04bc
lea rcx, [rsp + 0x98]
call fcn.18007d270
mov eax, r13d
add rsp, 0x50
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret