joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140022cd0
Capabilities:
Parse pe header

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x20
mov qword [rbp + 0x10], rcx
mov rax, qword [rbp + 0x10]
mov qword [rbp - 8], rax
mov rax, qword [rbp - 8]
movzx eax, word [rax]
cmp ax, 0x5a4d
je 0x140022cf8
mov eax, 0
jmp 0x140022d46
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0x3c]
movsxd rdx, eax
mov rax, qword [rbp - 8]
add rax, rdx
mov qword [rbp - 0x10], rax
mov rax, qword [rbp - 0x10]
mov eax, dword [rax]
cmp eax, 0x4550
je 0x140022d21
mov eax, 0
jmp 0x140022d46
mov rax, qword [rbp - 0x10]
add rax, 0x18
mov qword [rbp - 0x18], rax
mov rax, qword [rbp - 0x18]
movzx eax, word [rax]
cmp ax, 0x20b
je 0x140022d41
mov eax, 0
jmp 0x140022d46
mov eax, 1
add rsp, 0x20
pop rbp
ret

Function at 0x140022d4c
Capabilities:
Enumerate pe sections

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x20
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x18], rdx
mov rax, qword [rbp + 0x10]
mov eax, dword [rax + 0x3c]
movsxd rdx, eax
mov rax, qword [rbp + 0x10]
add rax, rdx
mov qword [rbp - 0x18], rax
mov dword [rbp - 0xc], 0
mov rax, qword [rbp - 0x18]
movzx eax, word [rax + 0x14]
movzx edx, ax
mov rax, qword [rbp - 0x18]
add rax, rdx
add rax, 0x18
mov qword [rbp - 8], rax
jmp 0x140022dca
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0xc]
mov eax, eax
cmp qword [rbp + 0x18], rax
jb 0x140022dc1
mov rax, qword [rbp - 8]
mov edx, dword [rax + 0xc]
mov rax, qword [rbp - 8]
mov eax, dword [rax + 8]
add eax, edx
mov eax, eax
cmp qword [rbp + 0x18], rax
jae 0x140022dc1
mov rax, qword [rbp - 8]
jmp 0x140022ddf
add dword [rbp - 0xc], 1
add qword [rbp - 8], 0x28
mov rax, qword [rbp - 0x18]
movzx eax, word [rax + 6]
movzx eax, ax
cmp dword [rbp - 0xc], eax
jb 0x140022d94
mov eax, 0
add rsp, 0x20
pop rbp
ret
Function at 0x40148a
Capabilities:
Delete registry key
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x260
mov edi, r8d
mov ebx, r8d
lea r9, [rsp + 0x48]
mov r12, rcx
and edi, 0x300
mov r13, rdx
mov r8d, edi
or r8d, 9
call fcn.004076ab
test eax, eax
jne 0x401586
test bl, 2
lea rsi, [rsp + 0x56]
je 0x401518
xor edx, edx
mov rcx, qword [rsp + 0x48]
lea r9, [rsp + 0x44]
mov r8, rsi
mov dword [rsp + 0x44], 0
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
call qword [sym.imp.ADVAPI32.dll_RegEnumValueW]
cmp eax, 0x103
jne 0x401557
mov r14d, ebx
mov rbp, qword [sym.imp.ADVAPI32.dll_RegEnumKeyW]
and r14d, 1
jmp 0x401537
mov r8d, ebx
mov rdx, rsi
call fcn.0040148a
test eax, eax
jne 0x401569
xor edx, edx
mov rcx, qword [rsp + 0x48]
mov r9d, 0x105
mov r8, rsi
call rbp
test eax, eax
jne 0x401569
mov rcx, qword [rsp + 0x48]
test r14d, r14d
je 0x401528
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, 0x3eb
jmp 0x401586
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor r9d, r9d
mov r8d, edi
mov rdx, r13
mov rcx, r12
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyExW]
add rsp, 0x260
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret

Function at 0x403c17
Capabilities:
Hide graphical window

Disassembly:
sub rsp, 0x38
mov r8d, ecx
mov rcx, qword [0x0043e1c0]
test r8d, r8d
je 0x403c42
test rcx, rcx
je 0x403c35
call qword [sym.imp.USER32.dll_DestroyWindow]
mov qword [0x0043e1c0], 0
jmp case.default.0x403c9b
test rcx, rcx
je 0x403c52
xor ecx, ecx
add rsp, 0x38
jmp fcn.00408503
call qword [sym.imp.KERNEL32.dll_GetTickCount]
cmp eax, dword [0x0042a140]
jbe case.default.0x403c9b
mov rax, qword [0x0040d0e0]
lea r9, [0x00403b80]
xor r8d, r8d
mov edx, 0x6f
mov qword [rsp + 0x20], 0
mov rcx, qword [rax]
call qword [sym.imp.USER32.dll_CreateDialogParamW]
mov edx, 5
mov rcx, rax
mov qword [0x0043e1c0], rax
add rsp, 0x38
jmp qword [sym.imp.USER32.dll_ShowWindow]
add rsp, 0x38
ret

Function at 0x403ca7
Capabilities:
Read file on windows

Disassembly:
mov r8d, edx
mov rdx, rcx
mov rcx, qword [0x0040a020]
jmp fcn.0040752a
Function at 0x403ccf
Capabilities:
Check for time delay via gettickcount

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xc8
mov ebx, 0x8000
lea rdi, [0x0042e1c0]
test r8, r8
mov qword [rsp + 0x118], rdx
mov r13, r8
mov r12d, r9d
cmovne ebx, r9d
cmovne rdi, r8
test ecx, ecx
js 0x403d1a
movsxd rcx, ecx
add rcx, qword [0x0042a1b4]
call fcn.00403cb9
lea rcx, [rsp + 0x3c]
mov edx, 4
call fcn.00403ca7
test eax, eax
je 0x403ec9
mov r9d, dword [rsp + 0x3c]
test r9d, r9d
jns 0x403ed9
mov r15, qword [sym.imp.KERNEL32.dll_GetTickCount]
xor r12d, r12d
call r15
lea rcx, [0x0043e1e0]
mov r14d, eax
call fcn.00408650
mov ebp, dword [rsp + 0x3c]
and ebp, 0x7fffffff
mov dword [rsp + 0x3c], ebp
mov esi, dword [rsp + 0x3c]
test esi, esi
jle 0x403f08
cmp esi, 0x4000
mov eax, 0x4000
lea rcx, [0x0042a1c0]
cmovg esi, eax
mov edx, esi
call fcn.00403ca7
test eax, eax
je 0x403ec9
lea rax, [0x0042a1c0]
sub dword [rsp + 0x3c], esi
mov qword [0x0043e1f8], rax
mov dword [0x0043e200], esi
lea rcx, [0x0043e1e0]
mov qword [0x0043e208], rdi
mov dword [0x0043e210], ebx
call fcn.0040867e
mov dword [rsp + 0x28], eax
test eax, eax
js 0x403ed1
mov rsi, qword [0x0043e208]
call r15
mov r9d, eax
mov rax, qword [0x0040d0b0]
sub rsi, rdi
test byte [rax + 0x34], 1
je 0x403e4a
mov edx, r9d
mov eax, dword [rsp + 0x3c]
sub edx, r14d
cmp edx, 0xc8
ja 0x403e09
test eax, eax
jne 0x403e4a
mov ecx, ebp
mov dword [rsp + 0x2c], r9d
lea r14, [rsp + 0x40]
mov r8d, ebp
sub ecx, eax
mov edx, 0x64
call qword [sym.imp.KERNEL32.dll_MulDiv]
mov rcx, r14
lea rdx, str....__d__
mov r8d, eax
call qword [sym.imp.USER32.dll_wsprintfW]
mov rdx, r14
xor ecx, ecx
call fcn.00406a8a
mov r9d, dword [rsp + 0x2c]
mov r14d, r9d
test esi, esi
je 0x403d69
test r13, r13
jne 0x403e77
mov rcx, qword [rsp + 0x118]
mov r8d, esi
mov rdx, rdi
call fcn.00407559
test eax, eax
je 0x403f02
add r12d, esi
jmp 0x403e83
mov rdi, qword [0x0043e208]
add r12d, esi
sub ebx, esi
cmp dword [rsp + 0x28], 1
jne 0x403db1
jmp 0x403f08
mov rcx, qword [rsp + 0x118]
mov r8d, esi
mov rdx, rdi
call fcn.00407559
test eax, eax
je 0x403f02
sub dword [rsp + 0x3c], esi
add r12d, esi
mov esi, dword [rsp + 0x3c]
test esi, esi
jle 0x403f08
cmp esi, ebx
mov rcx, rdi
cmovg esi, ebx
mov edx, esi
call fcn.00403ca7
test eax, eax
jne 0x403e90
mov r12d, 0xfffffffd
jmp 0x403f08
mov r12d, 0xfffffffc
jmp 0x403f08
test r13, r13
jne 0x403eea
xor r12d, r12d
lea rdi, [0x0042a1c0]
jmp 0x403eae
cmp r9d, r12d
mov rcx, r13
cmovle r12d, r9d
mov edx, r12d
call fcn.00403ca7
test eax, eax
jne 0x403f08
jmp 0x403ec9
mov r12d, 0xfffffffe
mov eax, r12d
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
Function at 0x4041f0
Capabilities:
Get common file path

Disassembly:
push r12
push rbx
sub rsp, 0x28
mov rax, qword [0x0040d150]
mov rbx, qword [rax]
lea r12, [rbx + 0x64000]
mov rcx, r12
call fcn.00407942
mov rcx, r12
call fcn.004072ac
test eax, eax
je 0x404242
mov rcx, r12
call fcn.004078cc
mov rcx, r12
call fcn.00407103
lea rcx, [rbx + 0x60000]
mov rdx, r12
add rsp, 0x28
pop rbx
pop r12
jmp fcn.004074be
xor eax, eax
add rsp, 0x28
pop rbx
pop r12
ret

Function at 0x40424c
Capabilities:
Delete file

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, qword [0x0040d0a0]
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x40426e
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rbx], 0xffffffffffffffff
call fcn.00404865
mov rax, qword [0x0040d150]
mov edx, 7
mov rcx, qword [rax]
add rcx, 0x68000
add rsp, 0x20
pop rbx
jmp fcn.0040815d
Function at 0x407070
Capabilities:
Create directory

Disassembly:
push r12
push rsi
push rbx
sub rsp, 0x60
lea rax, [0x0040c8f0]
mov qword [rsp + 0x40], rax
lea rsi, [rsp + 0x38]
mov r12, rcx
lea rdx, [rsp + 0x20]
mov qword [rsp + 0x48], rax
sub rax, 0x10
mov dword [rsp + 0x38], 0x40001
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x58], rax
mov dword [rsp + 0x20], 0x18
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x30], 0
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x4070d3
xor eax, eax
jmp 0x4070fa
mov rbx, qword [sym.imp.KERNEL32.dll_GetLastError]
call rbx
cmp eax, 0xb7
jne 0x4070fa
mov r8, rsi
mov edx, 0x80000007
mov rcx, r12
call qword [sym.imp.ADVAPI32.dll_SetFileSecurityW]
test eax, eax
jne 0x4070cf
call rbx
add rsp, 0x60
pop rbx
pop rsi
pop r12
ret

Function at 0x407103
Capabilities:
Create directory

Disassembly:
sub rsp, 0x28
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x40711e
add rsp, 0x28
jmp qword [sym.imp.KERNEL32.dll_GetLastError]
xor eax, eax
add rsp, 0x28
ret

Function at 0x407125
Capabilities:
Create process on windows

Disassembly:
sub rsp, 0x78
xor r8d, r8d
xor r9d, r9d
mov dword [0x0047bea0], 0x68
lea rax, [rsp + 0x58]
mov rdx, rcx
xor ecx, ecx
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x48], rax
lea rax, [0x0047bea0]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x4000000
mov dword [rsp + 0x20], 0
call qword [sym.imp.KERNEL32.dll_CreateProcessW]
mov r8d, eax
xor eax, eax
test r8d, r8d
je 0x407196
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, qword [rsp + 0x58]
add rsp, 0x78
ret

Function at 0x40719b
Capabilities:
Create process on windows

Disassembly:
mov dword [rcx], 0x70
mov qword [rcx + 0x40], 0
jmp qword [sym.imp.SHELL32.dll_ShellExecuteExW]

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

Disassembly:
push r12
sub rsp, 0x20
mov qword [rsp + 0x30], rcx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov r12d, eax
cmp eax, 0xffffffff
je 0x407408
mov edx, eax
mov rcx, qword [rsp + 0x30]
and edx, 0xfffffffe
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov eax, r12d
add rsp, 0x20
pop r12
ret

Function at 0x407412
Capabilities:
Delete directory
Delete file
Set file attributes

Disassembly:
push r13
push r12
push rbx
sub rsp, 0x20
mov r12, rcx
mov ebx, edx
call fcn.004073df
mov r13d, eax
cmp eax, 0xffffffff
jne 0x407431
xor ebx, ebx
jmp 0x407465
mov rcx, r12
test bl, 1
je 0x40745d
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
jne 0x407456
and ebx, 4
jne 0x40742d
mov edx, r13d
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
jmp 0x407465
mov ebx, 1
jmp 0x407465
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
jmp 0x40743f
mov eax, ebx
add rsp, 0x20
pop rbx
pop r12
pop r13
ret
Function at 0x407471
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push rbx
sub rsp, 0x40
mov dword [rsp + 0x58], edx
mov ebx, r8d
mov qword [rsp + 0x50], rcx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov rcx, qword [rsp + 0x50]
mov edx, dword [rsp + 0x58]
cmp eax, 0xffffffff
jne 0x407498
xor eax, eax
mov dword [rsp + 0x28], eax
xor r9d, r9d
mov r8d, 1
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x20], ebx
call qword [sym.imp.KERNEL32.dll_CreateFileW]
add rsp, 0x40
pop rbx
ret

Function at 0x4074be
Capabilities:
Get common file path

Disassembly:
push r12
push rdi
push rsi
push rbx
sub rsp, 0x38
mov ebx, 0x65
movabs rdi, 0x610073006e
mov r12, rcx
mov rsi, rdx
dec ebx
je 0x407513
mov qword [rsp + 0x28], rdi
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, 0x1a
xor edx, edx
xor r8d, r8d
div ecx
mov r9, r12
mov rcx, rsi
add word [rsp + 0x2c], dx
lea rdx, [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
je 0x4074dc
jmp 0x40751d
mov word [r12], 0
xor r12d, r12d
mov rax, r12
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop r12
ret

Function at 0x40752a
Capabilities:
Read file on windows

Disassembly:
push rbx
sub rsp, 0x40
mov qword [rsp + 0x20], 0
mov ebx, r8d
lea r9, [rsp + 0x3c]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x407553
xor eax, eax
cmp dword [rsp + 0x3c], ebx
sete al
add rsp, 0x40
pop rbx
ret

Function at 0x407559
Capabilities:
Write file on windows

Disassembly:
push rbx
sub rsp, 0x40
mov qword [rsp + 0x20], 0
mov ebx, r8d
lea r9, [rsp + 0x3c]
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x407582
xor eax, eax
cmp dword [rsp + 0x3c], ebx
sete al
add rsp, 0x40
pop rbx
ret

Function at 0x40762f
Capabilities:
Move file

Disassembly:
sub rsp, 0x28
mov r8d, 5
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
mov rax, qword [0x0040d0b0]
inc dword [rax + 0x10]
add rsp, 0x28
ret

Function at 0x407747
Capabilities:
Query or enumerate registry value

Disassembly:
push r12
push rsi
push rbx
sub rsp, 0x40
mov r12, r8
mov r8d, dword [rsp + 0x80]
mov dword [rsp + 0x30], 0x4000
mov rbx, r9
test r8d, r8d
je 0x407770
mov r8d, 0x200
or r8d, 0x20019
lea r9, [rsp + 0x38]
call fcn.004076ab
test eax, eax
je 0x40778c
mov word [rbx], 0
jmp 0x4077d6
lea rax, [rsp + 0x30]
mov rcx, qword [rsp + 0x38]
xor r8d, r8d
mov rdx, r12
lea r9, [rsp + 0x34]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov rcx, qword [rsp + 0x38]
mov esi, eax
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov word [rbx + 0x3ffe], 0
test esi, esi
jne 0x407785
mov eax, dword [rsp + 0x34]
dec eax
cmp eax, 1
ja 0x407785
add rsp, 0x40
pop rbx
pop rsi
pop r12
ret
Function at 0x407d24
Capabilities:
Write file on windows

Disassembly:
sub rsp, 0x28
test ecx, ecx
je 0x407d4f
mov rcx, qword [0x0040a040]
cmp rcx, 0xffffffffffffffff
je 0x407d3f
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [0x0040a040], 0xffffffffffffffff
jmp 0x407ded
cmp dword [0x0046b420], 0
je 0x407ded
cmp word [0x00473440], 0
je 0x407de3
cmp qword [0x0040a040], 0xffffffffffffffff
je 0x407dab
lea rdx, [0x0040c356]
lea rcx, [0x0046a420]
call sub.KERNEL32.dll_lstrcatW
lea rcx, [0x0046a420]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov rcx, qword [0x0040a040]
lea rdx, [0x0046a420]
lea r8d, [rax + rax]
add rsp, 0x28
jmp fcn.00407559
lea rcx, [0x00473440]
mov r8d, 4
mov edx, 0x40000000
call fcn.00407471
mov qword [0x0040a040], rax
mov rcx, rax
cmp rax, 0xffffffffffffffff
je 0x407ded
mov r9d, 2
xor r8d, r8d
xor edx, edx
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp qword [0x0040a040], 0xffffffffffffffff
jne 0x407d70
add rsp, 0x28
ret

Function at 0x4080a8
Capabilities:
Get file attributes

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x20
mov rdx, rcx
lea rcx, [0x00473ea0]
call fcn.004078b1
lea rcx, [0x00473ea0]
call fcn.004072d6
mov rbx, rax
test rax, rax
jne 0x4080d6
xor eax, eax
jmp 0x408155
mov rcx, rax
call fcn.00407942
mov rax, qword [0x0040d0d0]
test byte [rax], 0x80
je 0x4080f8
mov ax, word [rbx]
test ax, ax
je 0x4080d2
cmp ax, 0x5c
je 0x4080d2
lea rsi, [0x00473ea0]
mov rdi, qword [sym.imp.KERNEL32.dll_lstrlenW]
sub rbx, rsi
sar rbx, 1
mov rcx, rsi
call rdi
cdqe
cmp rax, rbx
jle 0x408134
mov rcx, rsi
call fcn.0040807a
test rax, rax
je 0x40812a
test byte [rax], 0x10
je 0x4080d2
mov rcx, rsi
call fcn.0040726f
jmp 0x40810c
lea rcx, [0x00473ea0]
call fcn.004078cc
lea rcx, [0x00473ea0]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
inc eax
setne al
movzx eax, al
add rsp, 0x20
pop rbx
pop rsi
pop rdi
ret
Function at 0x40815d
Capabilities:
Delete file

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x288
mov edi, edx
mov r12, rcx
mov esi, edx
call fcn.004080a8
and edi, 4
mov ebp, eax
test sil, 8
je 0x4081a3
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov rdx, qword [0x0040d0b0]
cmp eax, 1
adc dword [rdx + 8], 0
jmp 0x4083db
mov r14d, esi
and r14d, 1
je 0x4081c9
test eax, eax
jne 0x4081bf
mov rdx, r12
lea rcx, str.RMDir:_RemoveDirectory_invalid_input___s__
jmp 0x4083bf
test sil, 2
je 0x408357
mov rdx, r12
lea rcx, [0x00477ea0]
call fcn.004078b1
test r14d, r14d
je 0x4081f2
lea rdx, str..
lea rcx, [0x00477ea0]
call sub.KERNEL32.dll_lstrcatW
jmp 0x4081fa
mov rcx, r12
call fcn.0040726f
cmp word [r12], 0
jne 0x40820c
cmp word [0x00477ea0], 0x5c
jne 0x40821b
lea rdx, [0x0040c340]
mov rcx, r12
call sub.KERNEL32.dll_lstrcatW
mov rcx, r12
lea r15, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov rdx, r15
lea rcx, [0x00477ea0]
movsxd rbx, eax
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
add rbx, rbx
add rbx, r12
mov r13, rax
cmp rax, 0xffffffffffffffff
je 0x408340
lea rax, [rsp + 0x5c]
mov qword [rsp + 0x28], rax
mov rax, qword [sym.imp.KERNEL32.dll_FindNextFileW]
mov qword [rsp + 0x20], rax
cmp word [rsp + 0x5c], 0x2e
jne 0x40828d
mov ax, word [rsp + 0x5e]
test ax, ax
je 0x408322
cmp ax, 0x2e
jne 0x40828d
cmp word [rsp + 0x60], 0
je 0x408322
mov rdx, qword [rsp + 0x28]
mov rcx, rbx
call fcn.004078b1
test byte [rsp + 0x30], 0x10
je 0x4082b7
mov eax, esi
and eax, 3
cmp eax, 3
jne 0x408322
mov edx, esi
mov rcx, r12
call fcn.0040815d
jmp 0x408322
mov rdx, r12
lea rcx, str.Delete:_DeleteFile___s__
call fcn.00408012
mov edx, edi
mov rcx, r12
call fcn.00407412
mov rdx, r12
test eax, eax
jne 0x408318
test edi, edi
je 0x408300
lea rcx, str.Delete:_DeleteFile_on_Reboot___s__
call fcn.00408012
mov rdx, r12
mov ecx, 0xfffffff1
call fcn.00406a8a
xor edx, edx
mov rcx, r12
call fcn.0040762f
jmp 0x408322
lea rcx, str.Delete:_DeleteFile_failed___s__
call fcn.00408012
mov rax, qword [0x0040d0b0]
inc dword [rax + 8]
jmp 0x408322
mov ecx, 0xfffffff2
call fcn.00406a8a
mov rax, qword [rsp + 0x20]
mov rdx, r15
mov rcx, r13
call rax
test eax, eax
jne 0x408265
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_FindClose]
test r14d, r14d
je 0x4083db
mov word [rbx - 2], 0
test ebp, ebp
je 0x4081b0
mov rcx, r12
call fcn.0040807a
test rax, rax
je 0x4083db
mov rcx, r12
call fcn.004078cc
mov rdx, r12
lea rcx, str.RMDir:_RemoveDirectory___s__
call fcn.00408012
mov edx, edi
mov rcx, r12
or edx, 1
call fcn.00407412
mov rdx, r12
test eax, eax
jne 0x4083d0
test edi, edi
je 0x4083b8
lea rcx, str.RMDir:_RemoveDirectory_on_Reboot___s__
call fcn.00408012
mov rdx, r12
mov ecx, 0xfffffff1
call fcn.00406a8a
xor edx, edx
mov rcx, r12
call fcn.0040762f
jmp 0x4083db
lea rcx, str.RMDir:_RemoveDirectory_failed___s__
call fcn.00408012
mov rax, qword [0x0040d0b0]
inc dword [rax + 8]
jmp 0x4083db
mov ecx, 0xffffffe5
call fcn.00406a8a
nop
add rsp, 0x288
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
Function at 0x4083ef
Capabilities:
Get common file path

Disassembly:
push r12
sub rsp, 0x260
mov edx, 0x104
lea r12, [rsp + 0x24]
mov qword [rsp + 0x270], rcx
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov r9, qword [rsp + 0x270]
lea edx, [rax - 1]
cmp edx, 0x103
ja 0x408434
cmp word [rsp + rdx*2 + 0x24], 0x5c
sete dl
movzx edx, dl
jmp 0x40843b
xor eax, eax
mov edx, 1
mov eax, eax
add rdx, rdx
add rax, rax
lea rcx, [r12 + rax]
lea rax, [0x0040c340]
lea r8, [rax + rdx]
lea rdx, str._s_S.dll
call qword [sym.imp.USER32.dll_wsprintfW]
mov r8d, 8
xor edx, edx
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LoadLibraryExW]
add rsp, 0x260
pop r12
ret
Function at 0x14006f370
Capabilities:
Access peb ldr_data
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x50
mov rax, qword gs:[0x60]
xor r11d, r11d
mov rsi, r8
mov ebp, edx
mov rdi, qword [rax + 0x10]
movsxd rbx, dword [rdi + 0x3c]
add rbx, rdi
movzx eax, word [rbx + 0x14]
lea r9, [rbx + 0x18]
movzx r10d, word [rbx + 6]
add r9, rax
test r10, r10
je 0x14006f42f
mov dword [rsp + 0x78], 0x6544302e
mov byte [rsp + 0x7c], 0x76
movups xmm2, xmmword [r9]
lea rcx, [rsp + 0x78]
movups xmm0, xmmword [r9 + 0x10]
movsd xmm1, qword [r9 + 0x20]
movd edx, xmm2
movups xmmword [rsp + 0x20], xmm2
movsd qword [rsp + 0x40], xmm1
movups xmmword [rsp + 0x30], xmm0
test dl, dl
je 0x14006f417
lea rax, [rsp + 0x78]
lea r8, [rsp + 0x20]
sub r8, rax
movzx eax, dl
nop
movzx edx, al
cmp al, byte [rcx]
jne 0x14006f417
movzx eax, byte [r8 + rcx + 1]
inc rcx
movzx edx, al
test al, al
jne 0x14006f400
cmp dl, byte [rcx]
lea rdx, [rsp + 0x20]
cmovne rdx, r11
add r9, 0x28
mov r11, rdx
sub r10, 1
jne 0x14006f3c2
mov eax, dword [r11 + 0xc]
mov rdx, rsi
mov ecx, dword [rbx + 8]
mov eax, dword [rax + rdi]
xor eax, dword [rbx + 0x68]
ror eax, cl
mov ecx, ebp
add rax, rdi
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
add rsp, 0x50
pop rdi
jmp rax
Function at 0x2fc4d7c1c
Capabilities:
Enumerate pe sections

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x20
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x18], rdx
mov rax, qword [rbp + 0x10]
mov eax, dword [rax + 0x3c]
movsxd rdx, eax
mov rax, qword [rbp + 0x10]
add rax, rdx
mov qword [rbp - 0x18], rax
mov dword [rbp - 0xc], 0
mov rax, qword [rbp - 0x18]
movzx eax, word [rax + 0x14]
movzx edx, ax
mov rax, qword [rbp - 0x18]
add rax, rdx
add rax, 0x18
mov qword [rbp - 8], rax
jmp 0x2fc4d7c9a
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0xc]
mov eax, eax
cmp qword [rbp + 0x18], rax
jb 0x2fc4d7c91
mov rax, qword [rbp - 8]
mov edx, dword [rax + 0xc]
mov rax, qword [rbp - 8]
mov eax, dword [rax + 8]
add eax, edx
mov eax, eax
cmp qword [rbp + 0x18], rax
jae 0x2fc4d7c91
mov rax, qword [rbp - 8]
jmp 0x2fc4d7caf
add dword [rbp - 0xc], 1
add qword [rbp - 8], 0x28
mov rax, qword [rbp - 0x18]
movzx eax, word [rax + 6]
movzx eax, ax
cmp dword [rbp - 0xc], eax
jb 0x2fc4d7c64
mov eax, 0
add rsp, 0x20
pop rbp
ret

Function at 0x140001b58
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x140001ba2
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x140001ba2
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x140001ba2
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x140001ba2
cmp dword [rcx + 0x84], 0xe
jbe 0x140001ba2
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x140001ba4
xor al, al
add rsp, 0x28
ret
Function at 0x140024da0
Capabilities:
Get common file path

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x478
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x3f0], 0xfffffffffffffffe
mov qword [rbp + 0x3e0], rcx
mov qword [rbp + 0x3c8], 0
mov qword [rbp + 0x3d0], 2
mov qword [rbp + 0x3d8], 0
mov r8d, 0x200
mov eax, 2
mov qword [rbp + 0x3e8], rax
xor ebx, ebx
xor edi, edi
xor r12d, r12d
cmp r8, 0x201
jae 0x140024e40
jmp 0x140024e2f
jae 0x140024f00
cmp r8, 0x201
jae 0x140024e40
mov esi, 0x200
lea r13, [rbp - 0x58]
mov r15, r8
jmp 0x140024e98
sub r8, r12
sub rdi, r12
cmp rdi, r8
jae 0x140024e6f
lea rcx, [rbp + 0x3c8]
mov rdx, r12
call fcn.14003bf80
mov rbx, qword [rbp + 0x3c8]
mov rax, qword [rbp + 0x3d0]
mov qword [rbp + 0x3e8], rax
mov eax, 0xffffffff
cmp rbx, rax
mov r12d, 0xffffffff
cmovb r12, rbx
mov qword [rbp + 0x3d8], r12
mov rdi, rbx
mov rsi, r12
mov r13, qword [rbp + 0x3e8]
mov r15, r12
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov ecx, r15d
mov rdx, r13
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
mov r14d, eax
test eax, eax
jne 0x140024ec1
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x140024f68
mov r8d, r14d
cmp r15, r8
jne 0x140024e20
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x140024f95
add r15, r15
mov eax, 0xffffffff
cmp r15, rax
cmovae r15, rax
mov r8, r15
cmp r8, 0x201
jb 0x140024e2f
jmp 0x140024e40
cmp rsi, r8
jb 0x140024faf
lea rcx, [rbp + 0x3a8]
mov rdx, r13
call fcn.140027ba0
movups xmm0, xmmword [rbp + 0x3a8]
movups xmm1, xmmword [rbp + 0x3b8]
mov rsi, qword [rbp + 0x3e0]
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
test rbx, rbx
je 0x140024f51
add rbx, rbx
mov r8d, 2
mov rcx, qword [rbp + 0x3e8]
mov rdx, rbx
call fcn.140022490
mov rax, rsi
add rsp, 0x478
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call qword [sym.imp.KERNEL32.dll_GetLastError]
shl rax, 0x20
or rax, 2
mov rsi, qword [rbp + 0x3e0]
mov qword [rsi + 8], rax
movabs rax, 0x8000000000000000
mov qword [rsi], rax
test rbx, rbx
jne 0x140024f39
jmp 0x140024f51
lea rcx, str.internal_error:_entered_unreachable_code_rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrary_alloc_src_vecmod.rs
lea r8, str.library_std_src_syswindowsmod.rs
mov edx, 0x28
call fcn.14003c990
jmp 0x140024fc4
lea rax, str.library_std_src_syswindowsmod.rs
mov rcx, r8
mov rdx, rsi
mov r8, rax
call fcn.14003cde0
ud2