joyce8/EMBER2024-capa huggingface dataset:
Function at 0x180055250
Capabilities:
Enumerate threads
Suspend thread

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x40
xor esi, esi
mov r14d, edx
mov rbx, rcx
mov qword [rcx], rsi
mov qword [rcx + 8], rsi
xor edx, edx
mov ebp, r8d
lea ecx, [rsi + 4]
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x18005536a
lea rdx, [rsp + 0x20]
mov dword [rsp + 0x20], 0x1c
mov rcx, rax
call sub.KERNEL32.dll_Thread32First
test eax, eax
je 0x180055361
cmp dword [rsp + 0x20], 0x10
jb 0x180055344
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
cmp dword [rsp + 0x2c], eax
jne 0x180055344
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [rsp + 0x28], eax
je 0x180055344
mov rdx, qword [rbx]
test rdx, rdx
jne 0x180055302
mov dword [rbx + 8], 0x80
mov r8d, 0x200
mov rcx, qword [0x18010efe8]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov qword [rbx], rax
mov rdx, rax
test rax, rax
je 0x180055361
jmp 0x180055337
mov eax, dword [rbx + 8]
cmp dword [rbx + 0xc], eax
jb 0x180055337
mov rcx, qword [0x18010efe8]
lea r9d, [rax + rax]
mov r8, rdx
shl r9, 2
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapReAlloc]
mov rdx, rax
test rax, rax
je 0x180055361
mov eax, dword [rbx + 8]
add eax, eax
mov qword [rbx], rdx
mov dword [rbx + 8], eax
mov ecx, dword [rbx + 0xc]
mov eax, dword [rsp + 0x28]
mov dword [rdx + rcx*4], eax
inc dword [rbx + 0xc]
lea rdx, [rsp + 0x20]
mov dword [rsp + 0x20], 0x1c
mov rcx, rdi
call sub.KERNEL32.dll_Thread32Next
test eax, eax
jne 0x1800552b0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp qword [rbx], rsi
je 0x1800553c3
cmp dword [rbx + 0xc], esi
jbe 0x1800553c3
nop dword [rax]
nop dword [rax + rax]
mov rax, qword [rbx]
xor edx, edx
mov ecx, esi
mov r8d, dword [rax + rcx*4]
lea ecx, [rdx + 0x5a]
call qword [sym.imp.KERNEL32.dll_OpenThread]
mov rdi, rax
test rax, rax
je 0x1800553bc
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SuspendThread]
mov r8d, ebp
mov edx, r14d
mov rcx, rdi
call fcn.1800553e0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
inc esi
cmp esi, dword [rbx + 0xc]
jb 0x180055380
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x68]
add rsp, 0x40
pop r14
ret

Function at 0x180055570
Capabilities:
Resume thread

Disassembly:
push rdi
sub rsp, 0x20
cmp qword [rcx], 0
mov rdi, rcx
je 0x1800555df
mov qword [rsp + 0x30], rbx
xor ebx, ebx
cmp dword [rcx + 0xc], ebx
jbe 0x1800555c8
mov qword [rsp + 0x38], rsi
mov rax, qword [rdi]
xor edx, edx
mov r8d, dword [rax + rbx*4]
lea ecx, [rdx + 0x5a]
call qword [sym.imp.KERNEL32.dll_OpenThread]
mov rsi, rax
test rax, rax
je 0x1800555bc
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_ResumeThread]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
inc ebx
cmp ebx, dword [rdi + 0xc]
jb 0x180055590
mov rsi, qword [rsp + 0x38]
mov r8, qword [rdi]
xor edx, edx
mov rcx, qword [0x18010efe8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
Function at 0x180055c60
Capabilities:
Access peb ldr_data
Encode data using xor
Hash data using fnv

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
movzx ebx, byte [rcx]
lea rdi, [rcx + 1]
mov rsi, rdx
mov r10d, 0x811c9dc5
mov rcx, rdi
movzx eax, bl
test bl, bl
je 0x180055ca9
nop dword [rax]
movsx eax, al
lea rcx, [rcx + 1]
xor eax, r10d
imul r10d, eax, 0x1000193
movzx eax, byte [rcx - 1]
test al, al
jne 0x180055c90
mov rax, qword gs:[0x60]
mov rcx, qword [rax + 0x18]
mov r11, qword [rcx + 0x10]
mov r9, r11
nop dword [rax]
mov rcx, qword [r9 + 0x60]
mov edx, 0x811c9dc5
movzx eax, word [r9 + 0x58]
shr rax, 1
lea r8, [rcx + rax*2]
cmp rcx, r8
je 0x180055cf4
nop word [rax + rax]
movsx eax, byte [rcx]
add rcx, 2
xor eax, edx
imul edx, eax, 0x1000193
cmp rcx, r8
jne 0x180055ce0
cmp edx, r10d
je 0x180055d06
mov r9, qword [r9]
cmp r9, r11
jne 0x180055cc0
xor r11d, r11d
jmp 0x180055d0a
mov r11, qword [r9 + 0x30]
mov r10d, 0x811c9dc5
test bl, bl
je 0x180055d38
nop dword [rax]
nop dword [rax + rax]
movsx eax, bl
movzx ebx, byte [rdi]
lea rdi, [rdi + 1]
xor eax, r10d
imul r10d, eax, 0x1000193
test bl, bl
jne 0x180055d20
mov rax, qword gs:[0x60]
mov rcx, qword [rax + 0x18]
mov rbx, qword [rcx + 0x10]
mov r8, rbx
nop dword [rax]
mov rcx, qword [r8 + 0x60]
mov edx, 0x811c9dc5
movzx eax, word [r8 + 0x58]
shr rax, 1
lea r9, [rcx + rax*2]
cmp rcx, r9
je 0x180055d84
nop word [rax + rax]
movsx eax, byte [rcx]
add rcx, 2
xor eax, edx
imul edx, eax, 0x1000193
cmp rcx, r9
jne 0x180055d70
cmp edx, r10d
je 0x180055d95
mov r8, qword [r8]
cmp r8, rbx
jne 0x180055d50
xor eax, eax
jmp 0x180055d99
mov eax, dword [r8 + 0x40]
lea rbx, [rax + r11]
xor r10d, r10d
mov r8, rsi
cmp r11, rbx
jae 0x180055e57
mov edi, 0x3f3f
movzx r9d, byte [r8]
test r9b, r9b
je 0x180055e69
cmp r9b, 0x3f
je 0x180055e21
movzx eax, r9b
and al, 0xdf
sub al, 0x41
cmp al, 5
ja 0x180055ddc
movzx edx, r9b
and dl, 0xdf
sub dl, 0x37
jmp 0x180055de9
xor edx, edx
lea ecx, [r9 - 0x30]
cmp cl, 9
cmovbe edx, r9d
movzx ecx, byte [r8 + 1]
movzx eax, cl
and al, 0xdf
sub al, 0x41
cmp al, 5
ja 0x180055e01
and cl, 0xdf
sub cl, 0x37
jmp 0x180055e0f
lea eax, [rcx - 0x30]
cmp al, 9
ja 0x180055e0d
sub cl, 0x30
jmp 0x180055e0f
xor cl, cl
shl dl, 4
or dl, cl
cmp byte [r11], dl
je 0x180055e21
mov r8, rsi
xor r10d, r10d
jmp 0x180055e4b
test r10, r10
mov rax, r11
cmovne rax, r10
cmp byte [r8 + 2], 0
mov r10, rax
je 0x180055e59
cmp word [r8], di
je 0x180055e47
cmp r9b, 0x3f
jne 0x180055e47
add r8, 2
jmp 0x180055e4b
add r8, 3
inc r11
cmp r11, rbx
jb 0x180055db1
xor eax, eax
mov rbx, qword [rsp + 8]
mov rsi, qword [rsp + 0x10]
mov rdi, qword [rsp + 0x18]
ret
mov rbx, qword [rsp + 8]
mov rax, r10
mov rsi, qword [rsp + 0x10]
mov rdi, qword [rsp + 0x18]
ret
Function at 0x180058030
Capabilities:
Allocate or change rwx memory

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x68
mov rax, qword [rsp + 0x78]
sub rax, 0x10000
mov rcx, rax
call fcn.180058250
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x70]
cmp qword [rsp + 0x20], rax
jbe 0x180058137
mov rax, qword [0x18010e550]
cmp qword [rsp + 0x20], rax
jb 0x180058094
mov rax, qword [0x18010e558]
cmp qword [rsp + 0x20], rax
ja 0x180058094
mov rax, qword [rsp + 0x20]
sub rax, 0x8000000
mov qword [rsp + 0x20], rax
jmp 0x180058056
mov r8d, 0x30
xor edx, edx
lea rcx, [rsp + 0x30]
call sub.VCRUNTIME140.dll_memset
mov r8d, 0x30
lea rdx, [rsp + 0x30]
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
test rax, rax
jne 0x1800580c3
jmp 0x180058137
cmp dword [rsp + 0x50], 0x10000
jne 0x18005811a
cmp qword [rsp + 0x48], 0x10000
jb 0x18005811a
mov r9d, 0x40
mov r8d, 0x3000
mov edx, 0x10000
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov qword [rsp + 0x28], rax
cmp qword [rsp + 0x28], 0
je 0x180058108
mov rax, qword [rsp + 0x28]
jmp 0x180058139
mov rax, qword [rsp + 0x20]
sub rax, 0x10000
mov qword [rsp + 0x20], rax
jmp 0x180058132
mov rax, qword [rsp + 0x38]
sub rax, 0x10000
mov rcx, rax
call fcn.180058250
mov qword [rsp + 0x20], rax
jmp 0x180058056
xor eax, eax
add rsp, 0x68
ret

Function at 0x180058140
Capabilities:
Allocate or change rwx memory

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x68
mov rcx, qword [rsp + 0x70]
call fcn.180058290
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x78]
cmp qword [rsp + 0x20], rax
jae 0x180058243
mov rax, qword [0x18010e550]
cmp qword [rsp + 0x20], rax
jb 0x18005819b
mov rax, qword [0x18010e558]
cmp qword [rsp + 0x20], rax
ja 0x18005819b
mov rax, qword [rsp + 0x20]
add rax, 0x8000000
mov qword [rsp + 0x20], rax
jmp 0x18005815d
mov r8d, 0x30
xor edx, edx
lea rcx, [rsp + 0x30]
call sub.VCRUNTIME140.dll_memset
mov r8d, 0x30
lea rdx, [rsp + 0x30]
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
test rax, rax
jne 0x1800581ca
jmp 0x180058243
cmp dword [rsp + 0x50], 0x10000
jne 0x180058221
cmp qword [rsp + 0x48], 0x10000
jb 0x180058221
mov r9d, 0x40
mov r8d, 0x3000
mov edx, 0x10000
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov qword [rsp + 0x28], rax
cmp qword [rsp + 0x28], 0
je 0x18005820f
mov rax, qword [rsp + 0x28]
jmp 0x180058245
mov rax, qword [rsp + 0x20]
add rax, 0x10000
mov qword [rsp + 0x20], rax
jmp 0x18005823e
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x30]
add rcx, rax
mov rax, rcx
mov rcx, rax
call fcn.180058290
mov qword [rsp + 0x20], rax
jmp 0x18005815d
xor eax, eax
add rsp, 0x68
ret
Function at 0x1800582e0
Capabilities:
Hook routines via microsoft detours

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x58
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x38]
mov rcx, qword [rsp + 0x60]
call fcn.180058870
mov qword [rsp + 0x28], 0
cmp qword [0x18010f0b8], 0
jne 0x180058328
cmp qword [0x18010f0b0], 0
je 0x180058328
mov rax, qword [0x18010f0b0]
mov qword [0x18010f0b8], rax
cmp qword [0x18010f0b8], 0
je 0x1800583ce
mov rax, qword [0x18010f0b8]
cmp qword [rax + 0x10], 0
je 0x1800583ce
mov rax, qword [0x18010f0b8]
mov rcx, qword [rsp + 0x38]
cmp qword [rax + 0x10], rcx
jb 0x1800583ce
mov rax, qword [0x18010f0b8]
mov rcx, qword [rsp + 0x30]
cmp qword [rax + 0x10], rcx
ja 0x1800583ce
mov rax, qword [0x18010f0b8]
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x38]
cmp qword [rsp + 0x28], rax
jb 0x180058394
mov rax, qword [rsp + 0x30]
cmp qword [rsp + 0x28], rax
jbe 0x18005839b
xor eax, eax
jmp 0x180058549
mov rax, qword [0x18010f0b8]
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx + 0x48]
mov qword [rax + 0x10], rcx
mov r8d, 0x60
mov edx, 0xcc
mov rcx, qword [rsp + 0x28]
call sub.VCRUNTIME140.dll_memset
mov rax, qword [rsp + 0x28]
jmp 0x180058549
mov rax, qword [0x18010f0b0]
mov qword [0x18010f0b8], rax
jmp 0x1800583f0
mov rax, qword [0x18010f0b8]
mov rax, qword [rax + 8]
mov qword [0x18010f0b8], rax
cmp qword [0x18010f0b8], 0
je 0x18005843d
cmp qword [0x18010f0b8], 0
je 0x18005843b
mov rax, qword [0x18010f0b8]
cmp qword [rax + 0x10], 0
je 0x18005843b
mov rax, qword [0x18010f0b8]
mov rcx, qword [rsp + 0x38]
cmp qword [rax + 0x10], rcx
jb 0x18005843b
mov rax, qword [0x18010f0b8]
mov rcx, qword [rsp + 0x30]
cmp qword [rax + 0x10], rcx
ja 0x18005843b
jmp 0x18005836c
jmp 0x1800583de
mov rcx, qword [rsp + 0x60]
call fcn.18005a4a0
and eax, 0xffff
mov eax, eax
mov rcx, qword [rsp + 0x60]
sub rcx, rax
mov rax, rcx
mov qword [rsp + 0x60], rax
mov r8, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x60]
call fcn.180058550
mov qword [rsp + 0x48], rax
cmp qword [rsp + 0x48], 0
je 0x180058547
mov rax, qword [rsp + 0x48]
mov qword [0x18010f0b8], rax
mov rax, qword [0x18010f0b8]
mov dword [rax], 0x52727464
mov rax, qword [0x18010f0b8]
mov qword [rax + 0x10], 0
mov rax, qword [0x18010f0b8]
mov rcx, qword [0x18010f0b0]
mov qword [rax + 8], rcx
mov rax, qword [0x18010f0b8]
mov qword [0x18010f0b0], rax
mov qword [rsp + 0x40], 0
mov rax, qword [0x18010f0b8]
add rax, 0x60
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x2a8
jmp 0x1800584f8
mov eax, dword [rsp + 0x20]
dec eax
mov dword [rsp + 0x20], eax
cmp dword [rsp + 0x20], 1
jle 0x180058532
movsxd rax, dword [rsp + 0x20]
imul rax, rax, 0x60
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x40]
mov qword [rcx + rax + 0x48], rdx
movsxd rax, dword [rsp + 0x20]
imul rax, rax, 0x60
mov rcx, qword [rsp + 0x28]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x40], rax
jmp 0x1800584ee
mov rax, qword [0x18010f0b8]
mov rcx, qword [rsp + 0x40]
mov qword [rax + 0x10], rcx
jmp 0x18005836c
xor eax, eax
add rsp, 0x58
ret
Function at 0x1403e0000
Capabilities:
Access peb ldr_data
Resolve function by parsing pe exports

Disassembly:
cld
and rsp, 0xfffffffffffffff0
call fcn.1403e00d6
push r9
push r8
push rdx
push rcx
xor rdx, rdx
mov rdx, qword gs:[rdx + 0x60]
push rsi
mov rdx, qword [rdx + 0x18]
mov rdx, qword [rdx + 0x20]
mov rsi, qword [rdx + 0x50]
xor r9, r9
movzx rcx, word [rdx + 0x4a]
xor rax, rax
lodsb al, byte [rsi]
cmp al, 0x61
jl 0x1403e0037
sub al, 0x20
ror r9d, 0xd
add r9d, eax
loop 0x1403e002d
push rdx
push r9
mov rdx, qword [rdx + 0x20]
mov eax, dword [rdx + 0x3c]
add rax, rdx
cmp word [rax + 0x18], 0x20b
jne 0x1403e00cb
mov eax, dword [rax + 0x88]
test rax, rax
je 0x1403e00cb
add rax, rdx
push rax
mov r8d, dword [rax + 0x20]
add r8, rdx
mov ecx, dword [rax + 0x18]
jrcxz 0x1403e00ca
xor r9, r9
dec rcx
mov esi, dword [r8 + rcx*4]
add rsi, rdx
xor rax, rax
lodsb al, byte [rsi]
ror r9d, 0xd
add r9d, eax
cmp al, ah
jne 0x1403e0081
add r9, qword [rsp + 8]
cmp r9d, r10d
jne 0x1403e0072
pop rax
mov r8d, dword [rax + 0x24]
add r8, rdx
mov cx, word [r8 + rcx*2]
mov r8d, dword [rax + 0x1c]
add r8, rdx
mov eax, dword [r8 + rcx*4]
pop r8
pop r8
pop rsi
add rax, rdx
pop rcx
pop rdx
pop r8
pop r9
pop r10
sub rsp, 0x20
push r10
jmp rax
pop rax
pop r9
pop rdx
mov rdx, qword [rdx]
jmp 0x1403e0021
Function at 0x140001010
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
mov rax, qword [str.h_v_]
xor ecx, ecx
mov dword [rax], 1
mov rax, qword [str.d_v_]
mov dword [rax], 1
mov rax, qword [0x14009eb20]
mov dword [rax], 1
mov rax, qword [0x14009ea90]
cmp word [rax], 0x5a4d
jne 0x14000105a
movsxd rdx, dword [rax + 0x3c]
add rax, rdx
cmp dword [rax], 0x4550
je 0x1400010c0
mov rax, qword [0x14009eaf0]
mov dword [0x1400b3020], ecx
mov eax, dword [rax]
test eax, eax
je 0x1400010b0
mov ecx, 2
call sym.__set_app_type
call sym.__p__fmode
mov rdx, qword [0x14009ebf0]
mov edx, dword [rdx]
mov dword [rax], edx
call sym.__p__commode
mov rdx, qword [str.p_v_]
mov edx, dword [rdx]
mov dword [rax], edx
call sym._setargv
mov rax, qword [0x14009e710]
cmp dword [rax], 1
je 0x1400010f8
xor eax, eax
add rsp, 0x28
ret
mov ecx, 1
call sym.__set_app_type
jmp 0x140001077
movzx edx, word [rax + 0x18]
cmp dx, 0x10b
je 0x140001110
cmp dx, 0x20b
jne 0x14000105a
cmp dword [rax + 0x84], 0xe
jbe 0x14000105a
mov edx, dword [rax + 0xf8]
xor ecx, ecx
test edx, edx
setne cl
jmp 0x14000105a
mov rcx, qword [sym._matherr]
call sym.__mingw_setusermatherr
xor eax, eax
add rsp, 0x28
ret
cmp dword [rax + 0x74], 0xe
jbe 0x14000105a
mov r8d, dword [rax + 0xe8]
xor ecx, ecx
test r8d, r8d
setne cl
jmp 0x14000105a
Function at 0x14000d1c0
Capabilities:
Access the windows event log

Disassembly:
push rbx
sub rsp, 0x30
mov rbx, qword [sym.imp.libssp_0.dll___stack_chk_guard]
lea rdx, str._lu._lu:__s:__s_n
mov qword [rsp + 0x50], r8
lea r8, [rsp + 0x50]
mov qword [rsp + 0x58], r9
mov qword [rsp + 0x20], r8
mov rax, qword [rbx]
mov qword [rsp + 0x28], rax
xor eax, eax
call sym.__mingw_vfprintf
mov rdx, qword [rsp + 0x28]
sub rdx, qword [rbx]
jne 0x14000d206
add rsp, 0x30
pop rbx
ret
call sym.__stack_chk_fail
nop
nop dword [rax]

Function at 0x14000d210
Capabilities:
Access the windows event log

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x78
mov rdi, qword [sym.imp.libssp_0.dll___stack_chk_guard]
lea rsi, str.message
mov rax, qword [rdi]
mov qword [rsp + 0x68], rax
xor eax, eax
and edx, 0xfffffffc
mov qword [rsp + 0x58], r8
mov rbp, r9
mov ebx, edx
cmp edx, 0x20
je 0x14000d271
jg 0x14000d2a0
lea rsi, str.critical
cmp edx, 8
je 0x14000d271
lea rsi, str.warning
cmp edx, 0x10
je 0x14000d271
cmp edx, 4
lea rsi, [0x140088b45]
lea rax, [0x140088b6f]
cmovne rsi, rax
cmp byte [rbp + 0xb8], 0
jne 0x14000d2cd
nop word [rax + rax]
mov rax, qword [rsp + 0x68]
sub rax, qword [rdi]
jne 0x14000d3aa
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
ret
lea rsi, str.info
cmp edx, 0x40
je 0x14000d271
cmp edx, 0x80
lea rsi, [0x140088b69]
lea rax, [0x140088b6f]
cmovne rsi, rax
cmp byte [rbp + 0xb8], 0
je 0x14000d280
lea rdx, str.syslog
call sym.g_strcmp0
test eax, eax
je 0x14000d2e7
mov eax, ebx
and eax, dword [rbp + 0xac]
je 0x14000d348
cmp ebx, 8
je 0x14000d3a0
mov edx, 2
cmp ebx, 0x10
je 0x14000d306
xor edx, edx
cmp ebx, 4
setne dl
lea edx, [rdx + rdx*2 + 1]
lea rax, [rsp + 0x58]
mov rcx, qword [rbp + 0xf8]
mov r9d, 1
xor r8d, r8d
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x28], 1
mov qword [rsp + 0x20], 0
call qword [sym.imp.ADVAPI32.dll_ReportEventA]
and ebx, dword [rbp + 0xa8]
je 0x14000d280
lea rcx, [rsp + 0x60]
call sym.g_get_current_time
mov rax, qword [rsp + 0x58]
mov r9d, dword [rsp + 0x64]
lea rdx, str._lu._lu:__s:__s_n
mov rcx, qword [rbp + 0xb0]
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x28], rax
mov r8d, dword [rsp + 0x60]
call sym.fprintf.constprop.0
mov rcx, qword [rbp + 0xb0]
call sym.fflush
jmp 0x14000d280
mov edx, 1
jmp 0x14000d306
call sym.__stack_chk_fail
nop
Function at 0x14000df10
Capabilities:
Read file on windows

Disassembly:
push rsi
push rbx
sub rsp, 0x38
mov rsi, qword [sym.imp.libssp_0.dll___stack_chk_guard]
mov rbx, qword [rcx + 0x70]
mov rax, qword [rsi]
mov qword [rsp + 0x28], rax
xor eax, eax
cmp byte [rbx + 0x60], 0
jne 0x14000df50
mov edx, dword [rbx + 0x68]
xor eax, eax
test edx, edx
setne al
mov rdx, qword [rsp + 0x28]
sub rdx, qword [rsi]
jne 0x14000dfef
add rsp, 0x38
pop rbx
pop rsi
ret
xor r9d, r9d
mov rcx, qword [rbx]
lea rdx, [rbx + 0x40]
lea r8, [rsp + 0x24]
call qword [sym.imp.KERNEL32.dll_GetOverlappedResult]
test eax, eax
je 0x14000dfa0
mov r9d, dword [rsp + 0x24]
lea r8, str.thread:_overlapped_result__count_read:__d
mov edx, pe_nt_image_headers64
xor ecx, ecx
call sym.g_log
mov eax, dword [rsp + 0x24]
add qword [rbx + 0x38], rax
mov eax, 1
mov byte [rbx + 0x60], 0
or dword [rbx + 0x68], eax
setne al
movzx eax, al
jmp 0x14000df3b
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
test eax, eax
je 0x14000dfe8
cmp eax, 0x26
je 0x14000dfe8
cmp eax, 0x5aa
je 0x14000dfe8
cmp eax, 0x3e3
je 0x14000dfe8
xor eax, eax
cmp r9d, 0x3e4
je 0x14000df92
lea r8, str.error_retrieving_overlapped_result:__d
mov edx, 8
xor ecx, ecx
call sym.g_log
mov eax, 8
jmp 0x14000df8e
mov eax, 0x10
jmp 0x14000df8e
call sym.__stack_chk_fail
nop
nop word cs:[rax + rax]

Function at 0x14000e000
Capabilities:
Read file on windows

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x40
mov rdi, qword [sym.imp.libssp_0.dll___stack_chk_guard]
mov rbx, qword [rcx + 0x70]
mov rax, qword [rdi]
mov qword [rsp + 0x38], rax
xor eax, eax
cmp byte [rbx + 0x60], 0
mov rsi, rdx
jne 0x14000e061
mov rdx, qword [rbx + 0x30]
mov r8, qword [rbx + 0x38]
mov rax, qword [rbx + 0x28]
lea rcx, [rdx + r8]
cmp rcx, rax
setae cl
test rdx, rdx
setne r9b
and cl, r9b
jne 0x14000e0f8
mov r9d, edx
sub eax, r9d
sub eax, r8d
je 0x14000e061
test cl, cl
jne 0x14000e061
mov ecx, dword [rbx + 0x78]
test ecx, ecx
je 0x14000e098
xor eax, eax
mov dword [rsi], 0x1f4
cmp qword [rbx + 0x38], 0
je 0x14000e073
or eax, 1
or dword [rbx + 0x68], eax
setne al
movzx eax, al
mov rdx, qword [rsp + 0x38]
sub rdx, qword [rdi]
jne 0x14000e122
add rsp, 0x40
pop rbx
pop rsi
pop rdi
ret
add rdx, r8
lea r8, [rbx + 0x40]
add rdx, qword [rbx + 0x20]
mov rcx, qword [rbx]
lea r9, [rsp + 0x34]
mov qword [rsp + 0x20], r8
mov r8d, eax
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x14000e0d0
mov eax, dword [rsp + 0x34]
mov byte [rbx + 0x60], 0
add qword [rbx + 0x38], rax
jmp 0x14000e061
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov eax, 8
cmp edx, 0x3e5
jne 0x14000e063
mov byte [rbx + 0x60], 1
jmp 0x14000e061
mov rcx, qword [rbx + 0x20]
add rdx, rcx
call sym.memmove
mov rax, qword [rbx + 0x28]
mov r8, qword [rbx + 0x38]
xor r9d, r9d
mov qword [rbx + 0x30], 0
movzx ecx, byte [rbx + 0x60]
xor edx, edx
jmp 0x14000e04e
call sym.__stack_chk_fail
nop
nop dword [rax + rax]
Function at 0x14000e3f0
Capabilities:
Write file on windows

Disassembly:
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x70
mov r12, qword [sym.imp.libssp_0.dll___stack_chk_guard]
pxor xmm0, xmm0
mov rax, qword [r12]
mov qword [rsp + 0x68], rax
xor eax, eax
mov rbx, rcx
mov rsi, rdx
xor ecx, ecx
xor edx, edx
mov rdi, r8
mov rbp, r9
xor r8d, r8d
xor r9d, r9d
movaps xmmword [rsp + 0x40], xmm0
lea r14, [rsp + 0x3c]
lea r13, [rsp + 0x40]
movaps xmmword [rsp + 0x50], xmm0
call qword [sym.imp.KERNEL32.dll_CreateEventA]
mov rcx, qword [rbx]
mov r9, r14
mov qword [rsp + 0x20], r13
mov qword [rsp + 0x58], rax
mov r8d, edi
mov rdx, rsi
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x14000e4a0
mov eax, dword [rsp + 0x3c]
mov ebx, 1
mov qword [rbp], rax
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x14000e481
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, qword [rsp + 0x68]
sub rax, qword [r12]
jne 0x14000e4f0
mov eax, ebx
add rsp, 0x70
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
mov rsi, qword [sym.imp.KERNEL32.dll_GetLastError]
call rsi
cmp eax, 0x3e5
je 0x14000e4b8
xor ebx, ebx
jmp 0x14000e471
mov rcx, qword [rbx]
mov r9d, 1
mov r8, r14
mov rdx, r13
call qword [sym.imp.KERNEL32.dll_GetOverlappedResult]
test eax, eax
jne 0x14000e464
call rsi
mov ebx, 3
test eax, eax
je 0x14000e471
call rsi
lea rcx, str.ga_channel_write_win32_err___d
xor ebx, ebx
mov edx, eax
call dbg.slog
jmp 0x14000e471
call sym.__stack_chk_fail
nop
nop word cs:[rax + rax]
Function at 0x14000e790
Capabilities:
Get storage device properties

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x68
mov rdi, qword [sym.imp.libssp_0.dll___stack_chk_guard]
mov qword [rsp + 0x30], 0
mov rsi, rcx
mov rbx, rdx
mov rax, qword [rdi]
mov qword [rsp + 0x58], rax
xor eax, eax
mov qword [rsp + 0x38], 0
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
lea r8, [rsp + 0x30]
mov edx, 0x28
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x14000e870
xor ecx, ecx
lea rbp, [rsp + 0x40]
lea r8, [rsp + 0x44]
mov rdx, rsi
call qword [sym.imp.ADVAPI32.dll_LookupPrivilegeValueA]
test eax, eax
je 0x14000e8b0
xor r9d, r9d
xor edx, edx
mov dword [rsp + 0x40], 1
mov r8, rbp
mov dword [rsp + 0x4c], 2
mov rcx, qword [rsp + 0x30]
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
call qword [sym.imp.ADVAPI32.dll_AdjustTokenPrivileges]
test eax, eax
je 0x14000e8f0
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x14000e84c
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rdx, qword [rsp + 0x38]
mov rcx, rbx
call sym.error_propagate
mov rax, qword [rsp + 0x58]
sub rax, qword [rdi]
jne 0x14000e92b
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
ret
lea rax, str.failed_to_open_privilege_token
lea rcx, [rsp + 0x38]
mov r8d, 0x12e
mov qword [rsp + 0x28], rax
lea rax, str.Guest_agent_command_failed__error_was__s
lea r9, global___func__.83
mov qword [rsp + 0x20], rax
lea rdx, str..._qga_commands_win32.c
call dbg.error_setg_internal
jmp 0x14000e83c
lea rax, str.no_luid_for_requested_privilege
lea rcx, [rsp + 0x38]
mov r8d, 0x11f
mov qword [rsp + 0x28], rax
lea rax, str.Guest_agent_command_failed__error_was__s
lea r9, global___func__.83
mov qword [rsp + 0x20], rax
lea rdx, str..._qga_commands_win32.c
call dbg.error_setg_internal
jmp 0x14000e83c
lea rax, str.unable_to_acquire_requested_privilege
lea rcx, [rsp + 0x38]
mov r8d, 0x128
mov qword [rsp + 0x28], rax
lea rax, str.Guest_agent_command_failed__error_was__s
lea r9, global___func__.83
mov qword [rsp + 0x20], rax
lea rdx, str..._qga_commands_win32.c
call dbg.error_setg_internal
jmp 0x14000e83c
call sym.__stack_chk_fail
nop
nop word cs:[rax + rax]
nop dword [rax]