joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1800e8770
Capabilities:
Link many functions at runtime

Disassembly:
sub rsp, 0x28
mov ecx, dword [0x1801e0fcc]
test ecx, ecx
jne 0x1800e88d4
mov eax, dword [0x1801e0fc8]
cmp eax, 3
ja 0x1800e88d4
inc eax
mov qword [rsp + 0x20], rbx
mov dword [0x1801e0fc8], eax
call fcn.1800dbb00
test eax, eax
je 0x1800e87b6
lea rcx, [0x18015c3b0]
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
jmp 0x1800e87c3
lea rcx, str.psapi.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rbx, rax
test rax, rax
jne 0x1800e87d5
mov rbx, qword [rsp + 0x20]
add rsp, 0x28
ret
lea rdx, str.EnumProcesses
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.EnumProcessModules
mov rcx, rbx
mov qword [0x1801e0f78], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetProcessMemoryInfo
mov rcx, rbx
mov qword [0x1801e0f80], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetModuleFileNameExA
mov rcx, rbx
mov qword [0x1801e0f88], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetModuleFileNameExW
mov rcx, rbx
mov qword [0x1801e0f90], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetModuleInformation
mov rcx, rbx
mov qword [0x1801e0f98], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetProcessImageFileNameA
mov rcx, rbx
mov qword [0x1801e0fa0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetProcessImageFileNameW
mov rcx, rbx
mov qword [0x1801e0fa8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetMappedFileNameA
mov rcx, rbx
mov qword [0x1801e0fb0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetMappedFileNameW
mov rcx, rbx
mov qword [0x1801e0fb8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbx, qword [rsp + 0x20]
mov qword [0x1801e0fc0], rax
mov dword [0x1801e0fcc], 1
mov eax, 1
add rsp, 0x28
ret
mov eax, ecx
add rsp, 0x28
ret

Function at 0x1800e8980
Capabilities:
Clear file content

Disassembly:
push rbx
sub rsp, 0x20
xor r8d, r8d
mov rbx, rcx
call fcn.1800e8930
mov rcx, qword [rbx + 8]
call qword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
jne 0x1800e89ae
call qword [sym.imp.KERNEL32.dll_GetLastError]
xor edx, edx
mov ecx, eax
call fcn.1801217e0
add rsp, 0x20
pop rbx
ret
Function at 0x1800ee810
Capabilities:
Access the windows event log

Disassembly:
mov qword [rsp + 8], rcx
mov qword [rsp + 0x10], rdx
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x20], r9
push rbp
push rbx
push rsi
push rdi
push r12
push r13
mov eax, 0x278
call fcn.1801298f0
sub rsp, rax
lea rbp, [rsp + 0x50]
mov rax, qword [0x1801aef28]
xor rax, rbp
mov qword [rbp + 0x210], rax
mov ecx, 0xfffffff4
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
test rax, rax
je 0x1800ee890
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileType]
test eax, eax
je 0x1800ee890
lea rbx, [rbp + 0x268]
call fcn.1800c6518
mov rdx, qword [rbp + 0x260]
lea rcx, [rax + 0x60]
mov r8, rbx
call fcn.1801225c8
jmp 0x1800eea58
mov r8, qword [rbp + 0x260]
mov rcx, r8
call fcn.1800ee4c0
inc eax
mov edi, eax
add rax, rax
lea rcx, [rax + 0xf]
cmp rcx, rax
ja 0x1800ee8b9
movabs rcx, 0xffffffffffffff0
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.1801298f0
sub rsp, rcx
xor esi, esi
lea rbx, [rsp + 0x50]
test rbx, rbx
jne 0x1800ee8e0
lea rbx, str.no_stack_
jmp 0x1800ee9b3
mov r9d, edi
xor edx, edx
xor ecx, ecx
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
jne 0x1800ee929
mov rdx, rsi
test rdi, rdi
je 0x1800ee929
nop word [rax + rax]
mov rax, qword [rbp + 0x260]
inc rdx
movsx ecx, byte [rdx + rax - 1]
mov word [rbx + rdx*2 - 2], cx
cmp rdx, rdi
jb 0x1800ee910
mov rdx, rsi
test rdi, rdi
je 0x1800ee9b3
mov r10d, 0x53
lea r9, [0x180000000]
lea r11d, [r10 + 0x20]
lea r12d, [r10 - 0x10]
lea r13d, [r10 + 0x10]
nop
cmp word [rbx + rdx*2], 0x25
jne case.0x1800ee982.47
lea r8, [rbx + rdx*2 + 2]
nop dword [rax]
movzx eax, word [r8]
add eax, 0xffffffd6
cmp eax, 0x49
ja case.0x1800ee982.47
cdqe
movzx eax, byte [r9 + rax + 0xeea90]
mov ecx, dword [r9 + rax*4 + 0xeea78]
add rcx, r9
jmp rcx
inc rdx
add r8, 2
jmp 0x1800ee960
mov word [rbx + rdx*2 + 2], r10w
jmp case.0x1800ee982.47
mov word [rbx + rdx*2 + 2], r11w
jmp case.0x1800ee982.47
mov word [rbx + rdx*2 + 2], r12w
jmp case.0x1800ee982.47
mov word [rbx + rdx*2 + 2], r13w
inc rdx
cmp rdx, rdi
jb 0x1800ee950
lea r9, [rbp + 0x268]
lea rcx, [rbp + 0x10]
mov r8, rbx
mov edx, 0xff
call fcn.1800a58f4
mov word [rbp + 0x20e], si
call qword [sym.imp.KERNEL32.dll_GetVersion]
cmp eax, 0x80000000
jae 0x1800eea3f
call fcn.1800ee6e0
test eax, eax
jle 0x1800eea3f
lea rdx, str.OPENSSL
xor ecx, ecx
call qword [sym.imp.ADVAPI32.dll_RegisterEventSourceW]
mov qword [rsp + 0x40], rsi
mov ecx, 1
mov rbx, rax
lea rax, [rbp + 0x10]
mov edx, ecx
mov qword [rbp], rax
lea rax, [rbp]
xor r8d, r8d
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x30], esi
mov word [rsp + 0x28], cx
mov rcx, rbx
xor r9d, r9d
mov qword [rsp + 0x20], rsi
call qword [sym.imp.ADVAPI32.dll_ReportEventW]
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_DeregisterEventSource]
jmp 0x1800eea58
lea r8, str.OpenSSL:_FATAL
lea rdx, [rbp + 0x10]
mov r9d, reloc.WS2_32.dll_recv
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
mov rcx, qword [rbp + 0x210]
xor rcx, rbp
call fcn.1800a1220
lea rsp, [rbp + 0x228]
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
Function at 0x1800f36f0
Capabilities:
Encode data using xor

Disassembly:
push rbx
mov eax, 0x20
call fcn.1801298f0
sub rsp, rax
mov rbx, r8
call fcn.1800f3100
test eax, eax
js 0x1800f392e
mov eax, dword [rbx + 0xf0]
xor r10d, r10d
shl eax, 2
movsxd r9, eax
test eax, eax
jle 0x1800f3779
lea rdx, [rbx + r9*4 + 8]
lea r8, [rbx + 8]
nop dword [rax + rax]
mov eax, dword [rdx - 8]
mov ecx, dword [r8 - 8]
add r10, 4
mov dword [r8 - 8], eax
mov eax, dword [rdx - 4]
mov dword [rdx - 8], ecx
mov ecx, dword [r8 - 4]
mov dword [r8 - 4], eax
mov eax, dword [rdx]
mov dword [rdx - 4], ecx
mov ecx, dword [r8]
mov dword [r8], eax
mov eax, dword [rdx + 4]
mov dword [rdx], ecx
mov ecx, dword [r8 + 4]
mov dword [r8 + 4], eax
sub r9, 4
mov dword [rdx + 4], ecx
sub rdx, 0x10
add r8, 0x10
cmp r10, r9
jl 0x1800f3730
mov r11d, 1
cmp dword [rbx + 0xf0], r11d
jle 0x1800f392c
mov qword [rsp + 0x30], rdi
lea r10, [rbx + 2]
lea rdi, [0x180000000]
nop dword [rax]
mov r8d, dword [r10 + 0xe]
add r10, 0x10
inc r11d
mov eax, r8d
shr rax, 0x18
movzx edx, byte [rdi + rax*4 + 0x16d600]
movzx eax, byte [r10 - 1]
movzx ecx, byte [rdi + rax*4 + 0x16d600]
mov r9d, dword [rdi + rdx*4 + 0x16e200]
movzx eax, r8b
xor r9d, dword [rdi + rcx*4 + 0x16ea00]
movzx ecx, byte [rdi + rax*4 + 0x16d600]
movzx eax, byte [r10]
xor r9d, dword [rdi + rcx*4 + 0x16ee00]
movzx ecx, byte [rdi + rax*4 + 0x16d600]
xor r9d, dword [rdi + rcx*4 + 0x16e600]
mov dword [r10 - 2], r9d
mov r9d, dword [r10 + 2]
mov eax, r9d
shr rax, 0x18
movzx edx, byte [rdi + rax*4 + 0x16d600]
movzx eax, byte [r10 + 3]
movzx ecx, byte [rdi + rax*4 + 0x16d600]
mov r8d, dword [rdi + rdx*4 + 0x16e200]
movzx eax, byte [r10 + 4]
xor r8d, dword [rdi + rcx*4 + 0x16ea00]
movzx ecx, byte [rdi + rax*4 + 0x16d600]
movzx eax, r9b
xor r8d, dword [rdi + rcx*4 + 0x16e600]
movzx ecx, byte [rdi + rax*4 + 0x16d600]
mov r9d, dword [r10 + 6]
xor r8d, dword [rdi + rcx*4 + 0x16ee00]
mov eax, r9d
mov dword [r10 + 2], r8d
shr rax, 0x18
movzx edx, byte [rdi + rax*4 + 0x16d600]
movzx eax, byte [r10 + 7]
movzx ecx, byte [rdi + rax*4 + 0x16d600]
mov r8d, dword [rdi + rdx*4 + 0x16e200]
movzx eax, byte [r10 + 8]
xor r8d, dword [rdi + rcx*4 + 0x16ea00]
movzx ecx, byte [rdi + rax*4 + 0x16d600]
movzx eax, r9b
xor r8d, dword [rdi + rcx*4 + 0x16e600]
movzx ecx, byte [rdi + rax*4 + 0x16d600]
movzx eax, byte [r10 + 0xb]
xor r8d, dword [rdi + rcx*4 + 0x16ee00]
mov r9d, dword [r10 + 0xa]
mov dword [r10 + 6], r8d
movzx edx, byte [rdi + rax*4 + 0x16d600]
movzx eax, byte [r10 + 0xc]
movzx ecx, byte [rdi + rax*4 + 0x16d600]
mov r8d, dword [rdi + rdx*4 + 0x16ea00]
mov eax, r9d
xor r8d, dword [rdi + rcx*4 + 0x16e600]
shr rax, 0x18
movzx ecx, byte [rdi + rax*4 + 0x16d600]
movzx eax, r9b
xor r8d, dword [rdi + rcx*4 + 0x16e200]
movzx ecx, byte [rdi + rax*4 + 0x16d600]
xor r8d, dword [rdi + rcx*4 + 0x16ee00]
mov dword [r10 + 0xa], r8d
cmp r11d, dword [rbx + 0xf0]
jl 0x1800f37a0
mov rdi, qword [rsp + 0x30]
xor eax, eax
add rsp, 0x20
pop rbx
ret
Function at 0x1800f4b20
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
mov eax, 0x50
call fcn.1801298f0
sub rsp, rax
mov rax, qword [0x1801aef28]
xor rax, rsp
mov qword [rbp - 8], rax
mov rax, qword [rbp + 0x60]
mov r15, qword [rbp + 0x68]
mov rsi, rcx
movzx r10d, byte [rax]
mov ebx, dword [r15]
lea rdi, [rax + 1]
movzx ecx, byte [rdi + 6]
mov qword [rbp - 0x18], rax
movzx eax, byte [rdi]
shl eax, 8
mov r14, rdx
movzx edx, byte [rdi + 3]
or r10d, eax
movzx eax, byte [rdi + 1]
shl ecx, 8
shl eax, 0x10
mov r12d, r8d
lea r8, [rdi + 5]
or r10d, eax
movzx eax, byte [rdi + 2]
xor r13d, r13d
shl eax, 0x18
mov qword [rbp - 0x28], r9
mov qword [rbp - 0x20], r15
or r10d, eax
movzx eax, byte [rdi + 4]
shl eax, 8
mov dword [rbp - 0x30], r10d
mov byte [rbp - 0x10], r10b
or edx, eax
movzx eax, byte [r8]
or ecx, eax
mov eax, r10d
shr eax, 8
shl ecx, 0x10
mov byte [rbp - 0xf], al
or edx, ecx
mov eax, r10d
shr eax, 0x10
mov dword [rbp - 0x2c], edx
mov byte [rbp - 0xc], dl
mov byte [rbp - 0xe], al
mov eax, r10d
shr eax, 0x18
mov byte [rbp - 0xd], al
mov eax, edx
shr eax, 8
mov byte [rbp - 0xb], al
mov eax, edx
shr eax, 0x10
mov byte [rbp - 0xa], al
mov eax, edx
shr eax, 0x18
mov byte [rbp - 9], al
test r12d, r12d
je 0x1800f4cdc
mov r15, qword [rbp - 0x28]
sub r14, rsi
movzx r8d, dl
movzx r9d, r10b
dec r12d
test ebx, ebx
jne 0x1800f4c78
lea r8d, [rbx + 1]
lea rcx, [rbp - 0x30]
mov rdx, r15
call fcn.1800efea0
mov r10d, dword [rbp - 0x30]
mov edx, dword [rbp - 0x2c]
movzx r9d, byte [rbp - 0x30]
movzx r8d, byte [rbp - 0x2c]
mov eax, r10d
shr eax, 8
mov byte [rbp - 0x10], r9b
mov byte [rbp - 0xc], r8b
mov byte [rbp - 0xf], al
mov eax, r10d
shr eax, 0x10
mov byte [rbp - 0xe], al
mov eax, r10d
shr eax, 0x18
mov byte [rbp - 0xd], al
mov eax, edx
shr eax, 8
mov byte [rbp - 0xb], al
mov eax, edx
shr eax, 0x10
mov byte [rbp - 0xa], al
mov eax, edx
shr eax, 0x18
inc r13d
mov byte [rbp - 9], al
movsxd rax, ebx
inc rsi
movzx ecx, byte [rbp + rax - 0x10]
xor cl, byte [rsi - 1]
inc ebx
mov byte [r14 + rsi - 1], cl
and ebx, 7
test r12d, r12d
jne 0x1800f4c12
mov r15, qword [rbp - 0x20]
test r13d, r13d
je 0x1800f4cdc
mov rax, qword [rbp - 0x18]
mov byte [rax], r9b
mov eax, r10d
shr eax, 8
mov byte [rdi], al
mov eax, r10d
shr r10d, 0x18
shr eax, 0x10
mov byte [rdi + 1], al
mov byte [rdi + 2], r10b
mov byte [rdi + 3], r8b
mov eax, edx
shr eax, 8
mov byte [rdi + 4], al
mov eax, edx
shr eax, 0x10
shr edx, 0x18
mov byte [rdi + 5], al
mov byte [rdi + 6], dl
mov dword [r15], ebx
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.1800a1220
mov rbx, qword [rsp + 0x90]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
Function at 0x180101d20
Capabilities:
Encode data using xor

Disassembly:
xor r8d, r8d
mov r9, rcx
test rcx, rcx
je 0x180101d78
movzx eax, byte [rcx]
test al, al
je 0x180101d78
mov r10d, 0x100
nop dword [rax + rax]
movsx edx, al
inc r9
or edx, r10d
add r10d, 0x100
mov eax, edx
shr eax, 2
xor eax, edx
and eax, 0xf
movzx ecx, al
movzx eax, byte [r9]
imul edx, edx
rol r8d, cl
xor r8d, edx
test al, al
jne 0x180101d40
mov eax, r8d
shr eax, 0x10
xor eax, r8d
ret
xor eax, eax
ret

Function at 0x180118bb0
Capabilities:
Query or enumerate registry value

Disassembly:
push rdi
sub rsp, 0x40
xor edi, edi
mov qword [rsp + 0x38], rbp
mov rbp, rcx
lea r8, [rsp + 0x68]
lea rdx, str.SystemCurrentControlSetControlProductOptions
mov rcx, 0xffffffff80000002
mov qword [rsp + 0x68], rdi
mov dword [rsp + 0x60], edi
mov dword [rsp + 0x58], edi
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test eax, eax
jne 0x180118ccf
mov rcx, qword [rsp + 0x68]
lea rax, [rsp + 0x58]
lea r9, [rsp + 0x60]
mov qword [rsp + 0x28], rax
lea rdx, str.ProductSuite
xor r8d, r8d
mov qword [rsp + 0x20], rdi
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x180118ccf
mov eax, dword [rsp + 0x58]
test eax, eax
je 0x180118ccf
lea ecx, [rdi + 0x40]
mov edx, eax
mov qword [rsp + 0x30], rsi
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov rsi, rax
test rax, rax
je 0x180118cca
mov rcx, qword [rsp + 0x68]
lea rax, [rsp + 0x58]
lea r9, [rsp + 0x60]
mov qword [rsp + 0x28], rax
lea rdx, str.ProductSuite
xor r8d, r8d
mov qword [rsp + 0x20], rsi
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x180118cc1
cmp dword [rsp + 0x60], 7
jne 0x180118cc1
mov qword [rsp + 0x50], rbx
mov rbx, rsi
cmp byte [rsi], dil
je 0x180118cbc
nop dword [rax + rax]
mov rdx, rbp
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
je 0x180118cb7
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
cdqe
add rbx, rax
cmp byte [rbx], dil
jne 0x180118c90
jmp 0x180118cbc
mov edi, 1
mov rbx, qword [rsp + 0x50]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rsi, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x38]
test rcx, rcx
je 0x180118ce4
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, edi
add rsp, 0x40
pop rdi
ret
Function at 0x180118cf0
Capabilities:
Query service status

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x50
mov rax, qword [0x1801aef28]
xor rax, rsp
mov qword [rsp + 0x40], rax
xor ebx, ebx
call fcn.1800dbb00
test eax, eax
je 0x180118dc7
call fcn.1800dbb60
test eax, eax
je 0x180118db9
xor edx, edx
xor ecx, ecx
mov r8d, 0x20000
call qword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov rdi, rax
test rax, rax
je 0x180118d67
lea r8d, [rbx + 4]
lea rdx, str.TermService
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov rsi, rax
test rax, rax
jne 0x180118d6b
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
xor eax, eax
jmp 0x180118dc9
xor eax, eax
lea rdx, [rsp + 0x20]
mov rcx, rsi
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x38], eax
call qword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
test eax, eax
je 0x180118da5
mov eax, dword [rsp + 0x24]
cmp eax, 4
je 0x180118da0
cmp eax, 2
jne 0x180118da5
mov ebx, 1
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
jmp 0x180118dc7
lea rcx, str.Terminal_Server
call fcn.180118bb0
mov ebx, eax
mov eax, ebx
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.1800a1220
mov rbx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
add rsp, 0x50
pop rdi
ret
jmp 0x180118cf0

Function at 0x180119070
Capabilities:
Query service status

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x50
mov rax, qword [0x1801aef28]
xor rax, rsp
mov qword [rsp + 0x40], rax
xor ebx, ebx
call fcn.1800dbb00
test eax, eax
je 0x180118dc7
call fcn.1800dbb60
test eax, eax
je 0x180118db9
xor edx, edx
xor ecx, ecx
mov r8d, 0x20000
call qword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov rdi, rax
test rax, rax
je 0x180118d67
lea r8d, [rbx + 4]
lea rdx, str.TermService
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov rsi, rax
test rax, rax
jne 0x180118d6b
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
xor eax, eax
jmp 0x180118dc9
xor eax, eax
lea rdx, [rsp + 0x20]
mov rcx, rsi
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x38], eax
call qword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
test eax, eax
je 0x180118da5
mov eax, dword [rsp + 0x24]
cmp eax, 4
je 0x180118da0
cmp eax, 2
jne 0x180118da5
mov ebx, 1
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
jmp 0x180118dc7
lea rcx, str.Terminal_Server
call fcn.180118bb0
mov ebx, eax
mov eax, ebx
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.1800a1220
mov rbx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
add rsp, 0x50
pop rdi
ret
jmp 0x180118cf0
Function at 0x18011a3d0
Capabilities:
Get disk information

Disassembly:
push rbx
push rsi
sub rsp, 0x258
mov rax, qword [0x1801aef28]
xor rax, rsp
mov qword [rsp + 0x240], rax
mov rbx, rcx
call qword [sym.imp.KERNEL32.dll_GetDriveTypeW]
mov esi, eax
cmp eax, 1
jne 0x18011a535
test rbx, rbx
je 0x18011a535
or rcx, 0xffffffffffffffff
mov qword [rsp + 0x280], rdi
xor eax, eax
mov rdi, rbx
repne scasw ax, word [rdi]
not rcx
dec rcx
mov rdi, rcx
cmp ecx, 2
jle 0x18011a52d
movzx eax, word [rbx + 2]
cmp ax, 0x3a
jne 0x18011a462
movabs rax, 0x5c003a0041
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x20], rax
movzx eax, word [rbx]
mov word [rsp + 0x20], ax
call qword [sym.imp.KERNEL32.dll_GetDriveTypeW]
mov esi, eax
jmp 0x18011a52d
cmp word [rbx], 0x5c
jne 0x18011a52d
cmp ax, 0x5c
jne 0x18011a52d
mov qword [rsp + 0x278], rbp
mov qword [rsp + 0x250], r12
mov r12d, 0x5c
lea rcx, [rbx + 4]
mov edx, r12d
call fcn.1800a1c0c
mov rbp, rax
test rax, rax
je 0x18011a51d
xor eax, eax
lea rcx, [rsp + 0x32]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x30], ax
call fcn.1800a1250
lea rcx, [rbp + 2]
mov edx, r12d
call fcn.1800a1c0c
test rax, rax
je 0x18011a4ed
sub rax, rbx
sar rax, 1
lea ecx, [rax + 1]
cmp ecx, 0x104
jge 0x18011a51d
movsxd r8, ecx
lea rcx, [rsp + 0x30]
mov rdx, rbx
call fcn.1800a11c4
jmp 0x18011a510
lea eax, [rdi + 1]
cmp eax, 0x104
jge 0x18011a51d
movsxd rdi, edi
lea rcx, [rsp + 0x30]
mov rdx, rbx
mov r8, rdi
call fcn.1800a11c4
mov word [rsp + rdi*2 + 0x30], r12w
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetDriveTypeW]
mov esi, eax
mov rbp, qword [rsp + 0x278]
mov r12, qword [rsp + 0x250]
mov rdi, qword [rsp + 0x280]
mov eax, esi
mov rcx, qword [rsp + 0x240]
xor rcx, rsp
call fcn.1800a1220
add rsp, 0x258
pop rsi
pop rbx
ret

Function at 0x18011a630
Capabilities:
Get disk information

Disassembly:
sub rsp, 0x48
xor eax, eax
mov dword [rdx], eax
test rcx, rcx
je 0x18011a65e
mov dword [rsp + 0x38], eax
mov qword [rsp + 0x30], rax
mov r9, rdx
mov qword [rsp + 0x28], rax
xor edx, edx
xor r8d, r8d
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
add rsp, 0x48
ret

Function at 0x18011a8d0
Capabilities:
Get disk information

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x260
mov rax, qword [0x1801aef28]
xor rax, rsp
mov qword [rsp + 0x250], rax
mov rbx, rcx
mov rcx, rdx
mov rdi, rdx
call fcn.180080e90
xor esi, esi
test rbx, rbx
je 0x18011a960
lea rcx, [rsp + 0x42]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x40], si
call fcn.1800a1250
mov dword [rsp + 0x38], 0x104
lea rax, [rsp + 0x40]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x30], rax
xor edx, edx
mov rcx, rbx
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
lea rdx, [rsp + 0x40]
mov rcx, rdi
mov ebx, eax
call fcn.18007d430
mov eax, ebx
jmp 0x18011a962
mov eax, esi
mov rcx, qword [rsp + 0x250]
xor rcx, rsp
call fcn.1800a1220
lea r11, [rsp + 0x260]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret
Function at 0x18011a990
Capabilities:
Get disk information

Disassembly:
sub rsp, 0x48
xor eax, eax
mov dword [rdx], eax
test rcx, rcx
je 0x18011a9be
mov dword [rsp + 0x38], eax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rdx
xor edx, edx
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
add rsp, 0x48
ret

Function at 0x18011a9f0
Capabilities:
Get disk information

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x260
mov rax, qword [0x1801aef28]
xor rax, rsp
mov qword [rsp + 0x250], rax
mov rbx, rcx
mov rcx, rdx
mov rdi, rdx
call fcn.180080e90
xor esi, esi
test rbx, rbx
je 0x18011aa7d
lea rcx, [rsp + 0x42]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x40], si
call fcn.1800a1250
mov dword [rsp + 0x38], esi
mov qword [rsp + 0x30], rsi
lea rdx, [rsp + 0x40]
xor r9d, r9d
mov r8d, 0x104
mov rcx, rbx
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
lea rdx, [rsp + 0x40]
mov rcx, rdi
mov ebx, eax
call fcn.18007d430
mov eax, ebx
jmp 0x18011aa7f
mov eax, esi
mov rcx, qword [rsp + 0x250]
xor rcx, rsp
call fcn.1800a1220
lea r11, [rsp + 0x260]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret

Function at 0x18011ab50
Capabilities:
Get disk information

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x830
mov rax, qword [0x1801aef28]
xor rax, rsp
mov qword [rsp + 0x820], rax
mov rbx, rcx
mov rcx, rdx
mov rdi, rdx
call fcn.180080e90
lea rcx, [rsp + 0x22]
xor esi, esi
xor edx, edx
mov r8d, 0x7fe
mov word [rsp + 0x20], si
call fcn.1800a1250
lea rdx, [rsp + 0x20]
mov r8d, 0x400
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
dec eax
cmp eax, 0x3fe
ja 0x18011abca
lea rdx, [rsp + 0x20]
mov rcx, rdi
call fcn.18007d430
lea eax, [rsi + 1]
jmp 0x18011abcc
mov eax, esi
mov rcx, qword [rsp + 0x820]
xor rcx, rsp
call fcn.1800a1220
lea r11, [rsp + 0x830]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret

Function at 0x18011ace0
Capabilities:
Get disk information

Disassembly:
push rbp
push rsi
push rdi
sub rsp, 0x40
mov qword [rsp + 0x28], 0xfffffffffffffffe
mov qword [rsp + 0x70], rbx
mov rax, qword [0x1801aef28]
xor rax, rsp
mov qword [rsp + 0x38], rax
mov rbp, rdx
mov rsi, rcx
or r8d, 0xffffffff
xor edx, edx
mov rcx, rbp
call fcn.180081640
call qword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov dword [rsi], eax
mov edi, 1
xor ebx, ebx
test dword [rsi], edi
je 0x18011ad79
mov eax, dword [0x180144738]
mov dword [rsp + 0x30], eax
movzx eax, word [0x18014473c]
mov word [rsp + 0x34], ax
xor eax, eax
mov word [rsp + 0x36], ax
add word [rsp + 0x30], bx
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x20]
call fcn.180080ca0
nop
lea r8, [rsp + 0x20]
mov edx, dword [rbp + 8]
mov rcx, rbp
call fcn.180081890
nop
lea rcx, [rsp + 0x20]
call fcn.18007d270
inc ebx
add edi, edi
cmp ebx, 0x1a
jb 0x18011ad28
mov eax, 1
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.1800a1220
mov rbx, qword [rsp + 0x70]
add rsp, 0x40
pop rdi
pop rsi
pop rbp
ret
Function at 0x18011adb0
Capabilities:
Get disk information

Disassembly:
push rbp
push rsi
push rdi
sub rsp, 0x30
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x58], rbx
mov rbp, rdx
mov rsi, rcx
or r8d, 0xffffffff
xor edx, edx
mov rcx, rbp
call fcn.1800830f0
call qword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov dword [rsi], eax
mov edi, 1
xor ebx, ebx
nop dword [rax]
test dword [rsi], edi
je 0x18011ae40
movzx eax, word [0x18015e348]
mov word [rsp + 0x50], ax
movzx eax, byte [0x18015e34a]
mov byte [rsp + 0x52], al
xor eax, eax
mov byte [rsp + 0x53], al
add byte [rsp + 0x50], bl
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x60]
call fcn.1800820d0
nop
lea r8, [rsp + 0x60]
mov edx, dword [rbp + 8]
mov rcx, rbp
call fcn.180083340
nop
lea rcx, [rsp + 0x60]
call fcn.18007f540
inc ebx
add edi, edi
cmp ebx, 0x1a
jb 0x18011adf0
mov eax, 1
mov rbx, qword [rsp + 0x58]
add rsp, 0x30
pop rdi
pop rsi
pop rbp
ret

Function at 0x18011ae60
Capabilities:
Get disk information

Disassembly:
push rbp
push rsi
push rdi
sub rsp, 0x40
mov qword [rsp + 0x28], 0xfffffffffffffffe
mov qword [rsp + 0x70], rbx
mov rax, qword [0x1801aef28]
xor rax, rsp
mov qword [rsp + 0x38], rax
mov rbp, rdx
mov rsi, rcx
or r8d, 0xffffffff
xor edx, edx
mov rcx, rbp
call fcn.180081640
call qword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov dword [rsi], eax
mov edi, 1
xor ebx, ebx
test dword [rsi], edi
je 0x18011aef9
mov eax, dword [0x180144738]
mov dword [rsp + 0x30], eax
movzx eax, word [0x18014473c]
mov word [rsp + 0x34], ax
xor eax, eax
mov word [rsp + 0x36], ax
add word [rsp + 0x30], bx
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x20]
call fcn.180080ca0
nop
lea r8, [rsp + 0x20]
mov edx, dword [rbp + 8]
mov rcx, rbp
call fcn.180081890
nop
lea rcx, [rsp + 0x20]
call fcn.18007d270
inc ebx
add edi, edi
cmp ebx, 0x1a
jb 0x18011aea8
mov eax, 1
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.1800a1220
mov rbx, qword [rsp + 0x70]
add rsp, 0x40
pop rdi
pop rsi
pop rbp
ret