joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14000bc80
Capabilities:
Accept command line arguments

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x30
mov rax, qword [0x14003a008]
xor rax, rsp
mov qword [rsp + 0x28], rax
mov rbx, rcx
mov edi, r9d
mov ecx, 0x800
call qword [sym.imp.KERNEL32.dll_SetDefaultDllDirectories]
call qword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov rcx, rax
lea rdx, [rsp + 0x20]
call qword [sym.imp.SHELL32.dll_CommandLineToArgvW]
cmp dword [rsp + 0x20], 1
jne 0x14000bcd2
mov r9d, edi
mov rcx, rbx
call fcn.14000b6d0
jmp 0x14000bcd7
call fcn.140005700
mov rcx, qword [rsp + 0x28]
xor rcx, rsp
call fcn.140024b60
mov rbx, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
ret

Function at 0x14000e660
Capabilities:
Acquire debug privileges

Disassembly:
push rsi
push rdi
push r14
sub rsp, 0x50
mov rax, qword [0x14003a008]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov r14, rcx
xor edx, edx
lea rcx, str.advapi32
mov r8d, 0x800
xor dil, dil
call qword [sym.imp.KERNEL32.dll_LoadLibraryExA]
mov rsi, rax
test rax, rax
je 0x14000e7cd
mov qword [rsp + 0x78], rbx
lea rdx, str.LookupPrivilegeValueA
mov rcx, rax
mov qword [rsp + 0x80], rbp
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x14002af68]
mov rcx, rsi
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbp, rax
test rbx, rbx
je 0x14000e7b7
test rax, rax
je 0x14000e7b7
mov rcx, rbx
call qword [fcn.140006c10]
lea r8, [rsp + 0x30]
xor ecx, ecx
lea rdx, str.SeDebugPrivilege
call rbx
test eax, eax
je 0x14000e792
mov rax, qword [rsp + 0x30]
mov rcx, rbp
mov qword [rsp + 0x3c], rax
mov dword [rsp + 0x38], 1
mov dword [rsp + 0x44], 2
call qword [fcn.140006c10]
xor eax, eax
lea r8, [rsp + 0x38]
mov qword [rsp + 0x28], rax
xor edx, edx
mov rcx, r14
mov qword [rsp + 0x20], rax
lea r9d, [rax + 0x10]
call rbp
test eax, eax
je 0x14000e776
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x514
je 0x14000e75a
mov dil, 1
jmp 0x14000e7b7
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov rcx, rax
lea rdx, str.error:_token_does_not_have_the_specified_privilege._n
call fcn.14000e480
jmp 0x14000e7b7
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, 2
mov ebx, eax
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
lea rdx, str.error:_failed_to_adjust_token_privileges___u_._n
jmp 0x14000e7ac
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, 2
mov ebx, eax
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
lea rdx, str.error:_failed_to_lookup_privilege_value___u_._n
mov r8d, ebx
mov rcx, rax
call fcn.14000e480
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rbp, qword [rsp + 0x80]
mov rbx, qword [rsp + 0x78]
movzx eax, dil
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.140024b60
add rsp, 0x50
pop r14
pop rdi
pop rsi
ret
Function at 0x14000e8f0
Capabilities:
Get file version info

Disassembly:
mov qword [rsp + 0x20], rbp
push rdi
sub rsp, 0x150
mov rax, qword [0x14003a008]
xor rax, rsp
mov qword [rsp + 0x140], rax
mov rdi, rcx
test rcx, rcx
jne 0x14000e92d
mov r8d, 0x104
lea rdx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea rdi, [rsp + 0x30]
lea rdx, [rsp + 0x2c]
mov rcx, rdi
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeA]
mov ebp, eax
test eax, eax
jne 0x14000e948
xor eax, eax
jmp 0x14000e9d3
mov qword [rsp + 0x168], rbx
mov rcx, rbp
mov qword [rsp + 0x170], rsi
xor ebx, ebx
call fcn.140025334
mov r9, rax
mov r8d, ebp
xor edx, edx
mov rcx, rdi
mov rsi, rax
call qword [sym.imp.VERSION.dll_GetFileVersionInfoA]
test eax, eax
je 0x14000e9b3
lea r9, [rsp + 0x28]
mov qword [rsp + 0x20], rbx
lea r8, [rsp + 0x20]
mov dword [rsp + 0x28], ebx
lea rdx, [0x140028f3c]
mov rcx, rsi
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x14000e9b3
mov rcx, qword [rsp + 0x20]
mov ebx, dword [rcx + 8]
mov ecx, dword [rcx + 0xc]
shl rbx, 0x20
or rbx, rcx
test rsi, rsi
je 0x14000e9c0
mov rcx, rsi
call fcn.140024d08
mov rsi, qword [rsp + 0x170]
mov rax, rbx
mov rbx, qword [rsp + 0x168]
mov rcx, qword [rsp + 0x140]
xor rcx, rsp
call fcn.140024b60
mov rbp, qword [rsp + 0x178]
add rsp, 0x150
pop rdi
ret

Function at 0x14000ee00
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x40
mov rax, qword [0x14003a008]
xor rax, rsp
mov qword [rsp + 0x30], rax
mov rdi, rcx
lea r9, [rsp + 0x28]
xor ebx, ebx
lea rcx, [0x140028c20]
xor r8d, r8d
mov dword [rsp + 0x20], ebx
xor edx, edx
call qword [sym.imp.SHELL32.dll_SHGetKnownFolderPath]
test eax, eax
je 0x14000ee6e
lea r9d, [rbx + 0x10]
xor r8d, r8d
lea rdx, str.SHGetKnownFolderPath_FOLDERID_ProgramData__failed.
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
mov qword [rdi + 0x18], 7
lea rdx, [0x140028e8c]
mov qword [rdi + 0x10], rbx
xor r8d, r8d
mov word [rdi], bx
jmp 0x14000ee9d
mov rdx, qword [rsp + 0x28]
mov qword [rdi + 0x18], 7
mov qword [rdi + 0x10], rbx
mov word [rdi], bx
cmp word [rdx], bx
je 0x14000ee9a
or rbx, 0xffffffffffffffff
nop dword [rax + rax]
inc rbx
cmp word [rdx + rbx*2], 0
jne 0x14000ee90
mov r8, rbx
mov rcx, rdi
call fcn.14000c8c0
mov rax, rdi
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.140024b60
mov rbx, qword [rsp + 0x58]
add rsp, 0x40
pop rdi
ret
Function at 0x14000ef80
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x60
mov rax, qword [0x14003a008]
xor rax, rsp
mov qword [rsp + 0x50], rax
mov rbx, rcx
lea r9, [rsp + 0x28]
xor edi, edi
lea rcx, [0x140028c10]
xor r8d, r8d
mov dword [rsp + 0x20], edi
xor edx, edx
call qword [sym.imp.SHELL32.dll_SHGetKnownFolderPath]
test eax, eax
je 0x14000eff9
lea r9d, [rdi + 0x10]
xor r8d, r8d
lea rdx, str.SHGetKnownFolderPath_FOLDERID_Documents__failed.
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
mov qword [rbx + 0x18], 7
lea rdx, [0x140028e8c]
mov qword [rbx + 0x10], rdi
xor r8d, r8d
mov rcx, rbx
mov word [rbx], di
call fcn.14000c8c0
jmp 0x14000f0c7
mov rdx, qword [rsp + 0x28]
mov qword [rsp + 0x48], 7
mov qword [rsp + 0x40], rdi
mov word [rsp + 0x30], di
cmp word [rdx], di
jne 0x14000f01b
mov r8, rdi
jmp 0x14000f02a
or r8, 0xffffffffffffffff
nop
inc r8
cmp word [rdx + r8*2], di
jne 0x14000f020
lea rcx, [rsp + 0x30]
call fcn.14000c8c0
mov qword [rbx + 0x18], 7
lea rdx, [rsp + 0x30]
mov qword [rbx + 0x10], rdi
mov rcx, rbx
mov word [rbx], di
call fcn.14000cb40
mov rax, qword [rsp + 0x48]
cmp rax, 8
jb 0x14000f0c7
mov rcx, qword [rsp + 0x30]
inc rax
movabs rdx, 0x7fffffffffffffff
cmp rax, rdx
jbe 0x14000f079
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
add rax, rax
cmp rax, 0x1000
jb 0x14000f0c2
test byte [rsp + 0x30], 0x1f
je 0x14000f092
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rax, qword [rcx - 8]
cmp rax, rcx
jb 0x14000f0a2
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
sub rcx, rax
cmp rcx, 8
jae 0x14000f0b2
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
cmp rcx, 0x27
jbe 0x14000f0bf
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, rax
call fcn.140025020
mov rax, rbx
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.140024b60
mov rbx, qword [rsp + 0x78]
add rsp, 0x60
pop rdi
ret
Function at 0x14000f1b0
Capabilities:
Create directory

Disassembly:
mov r11, rsp
push rdi
sub rsp, 0x60
mov qword [r11 - 0x40], 0xfffffffffffffffe
mov qword [r11 + 0x10], rbx
mov qword [r11 + 0x18], rsi
mov rax, qword [0x14003a008]
xor rax, rsp
mov qword [rsp + 0x50], rax
mov rbx, rcx
xor esi, esi
mov dword [rsp + 0x20], esi
lea rcx, [r11 - 0x38]
call fcn.14000f0f0
nop
lea rdi, [rsp + 0x30]
cmp qword [rsp + 0x48], 8
cmovae rdi, qword [rsp + 0x30]
mov rcx, rdi
call fcn.14000ed70
test al, al
jne 0x14000f231
xor r8d, r8d
mov rdx, rdi
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
test eax, eax
je 0x14000f231
mov rcx, rbx
call fcn.14000ef80
nop
lea rcx, [rsp + 0x30]
call fcn.140005a30
jmp 0x14000f2d2
mov qword [rbx + 0x18], 7
mov qword [rbx + 0x10], rsi
cmp qword [rbx + 0x18], 8
jb 0x14000f249
mov rax, qword [rbx]
jmp 0x14000f24c
mov rax, rbx
mov word [rax], si
lea rdx, [rsp + 0x30]
mov rcx, rbx
call fcn.14000cb40
nop
mov rax, qword [rsp + 0x48]
cmp rax, 8
jb 0x14000f2d2
inc rax
mov rcx, qword [rsp + 0x30]
movabs rdx, 0x7fffffffffffffff
cmp rax, rdx
jbe 0x14000f286
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
add rax, rax
cmp rax, 0x1000
jb 0x14000f2cd
test cl, 0x1f
je 0x14000f29d
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rax, qword [rcx - 8]
cmp rax, rcx
jb 0x14000f2ad
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
sub rcx, rax
cmp rcx, 8
jae 0x14000f2bd
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
cmp rcx, 0x27
jbe 0x14000f2ca
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, rax
call fcn.140025020
mov rax, rbx
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.140024b60
mov rbx, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x80]
add rsp, 0x60
pop rdi
ret

Function at 0x14000f300
Capabilities:
Read .ini file

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x440
mov rax, qword [0x14003a008]
xor rax, rsp
mov qword [rsp + 0x430], rax
movzx eax, r8b
lea rdi, str.True
test al, al
lea r8, str.False
mov rbx, rdx
lea rcx, [rsp + 0x230]
cmovne r8, rdi
lea rdx, [0x140029d34]
call fcn.1400105b0
lea rax, [0x14002af08]
mov rdx, rbx
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x30]
lea r8, [rsp + 0x230]
mov dword [rsp + 0x20], 0xff
lea rcx, str.Setting
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
xor eax, eax
lea r8, [rsp + 0x30]
mov edx, eax
nop dword [rax + rax]
movzx ecx, word [r8 + rdx*2]
inc rdx
cmp cx, word [rdi + rdx*2 - 2]
jne 0x14000f3a9
cmp rdx, 5
jne 0x14000f390
mov al, 1
jmp 0x14000f3db
lea rdx, [rsp + 0x30]
lea r8, [0x14002b1f0]
nop word [rax + rax]
movzx ecx, word [rdx + rax*2]
inc rax
cmp cx, word [r8 + rax*2 - 2]
jne 0x14000f3d9
cmp rax, 5
jne 0x14000f3c0
mov al, 1
jmp 0x14000f3db
xor al, al
mov rcx, qword [rsp + 0x430]
xor rcx, rsp
call fcn.140024b60
mov rbx, qword [rsp + 0x450]
add rsp, 0x440
pop rdi
ret
Function at 0x140012200
Capabilities:
Compare security identifiers

Disassembly:
push rdi
sub rsp, 0x150
mov rax, qword [0x14003a008]
xor rax, rsp
mov qword [rsp + 0x140], rax
xor dil, dil
mov qword [rsp + 0x30], 0
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
lea r8, [rsp + 0x30]
mov edx, 8
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
jne 0x140012248
xor al, al
jmp 0x1400122c2
mov rcx, qword [rsp + 0x30]
lea rax, [rsp + 0x38]
mov r9d, 0x100
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x40]
mov dword [rsp + 0x38], 0x100
mov edx, 1
call qword [sym.imp.ADVAPI32.dll_GetTokenInformation]
test eax, eax
je 0x140012244
mov qword [rsp + 0x160], rbx
call fcn.140012170
mov rbx, rax
test rax, rax
je 0x1400122ab
mov rdx, qword [rsp + 0x40]
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_EqualSid]
test eax, eax
mov rcx, rbx
setne dil
call qword [sym.imp.ADVAPI32.dll_FreeSid]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rbx, qword [rsp + 0x160]
movzx eax, dil
mov rcx, qword [rsp + 0x140]
xor rcx, rsp
call fcn.140024b60
add rsp, 0x150
pop rdi
ret
Function at 0x1400126c0
Capabilities:
Create process on windows
Impersonate user

Disassembly:
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0x80
mov qword [rsp + 0x50], 0xfffffffffffffffe
mov qword [rsp + 0xb0], rbx
mov rax, qword [0x14003a008]
xor rax, rsp
mov qword [rsp + 0x70], rax
mov rbp, r9
mov rsi, r8
mov rdi, rdx
mov r14, qword [rsp + 0xd0]
call fcn.140012600
test al, al
jne 0x140012710
xor al, al
jmp 0x140012831
call qword [sym.imp.USER32.dll_GetShellWindow]
test rax, rax
je 0x140012709
xor r15d, r15d
mov dword [rsp + 0x58], r15d
lea rdx, [rsp + 0x58]
mov rcx, rax
call qword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov r8d, dword [rsp + 0x58]
test r8d, r8d
je 0x140012709
xor edx, edx
mov ecx, 0x400
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov rbx, rax
test rax, rax
jne 0x140012758
xor dil, dil
jmp 0x14001281e
mov qword [rsp + 0x68], r15
lea r8, [rsp + 0x68]
mov edx, 2
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
jne 0x14001277c
xor dil, dil
jmp 0x14001280d
mov qword [rsp + 0x60], r15
lea rax, [rsp + 0x60]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 1
mov r9d, 2
xor r8d, r8d
mov edx, 0x18b
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.ADVAPI32.dll_DuplicateTokenEx]
test eax, eax
je 0x1400127f9
cmp qword [rsi + 0x18], 8
jb 0x1400127ba
mov rsi, qword [rsi]
cmp qword [rdi + 0x18], 8
jb 0x1400127c4
mov rdi, qword [rdi]
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x38], rbp
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], r15d
mov r9, rdi
xor r8d, r8d
xor edx, edx
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.ADVAPI32.dll_CreateProcessWithTokenW]
test eax, eax
je 0x1400127f9
mov dil, 1
jmp 0x1400127fc
xor dil, dil
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x14001280d
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x14001281e
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
test rbx, rbx
je 0x14001282d
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
movzx eax, dil
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.140024b60
mov rbx, qword [rsp + 0xb0]
add rsp, 0x80
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
Function at 0x140012860
Capabilities:
Create process on windows

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0x88
mov qword [rsp + 0x60], 0xfffffffffffffffe
mov rax, qword [0x14003a008]
xor rax, rsp
mov qword [rsp + 0x78], rax
mov r14, r9
mov rsi, r8
mov rdi, rdx
mov rbp, qword [rsp + 0xe0]
xor r15d, r15d
mov qword [rsp + 0x70], r15
lea rdx, [rsp + 0x70]
call qword [sym.imp.WTSAPI32.dll_WTSQueryUserToken]
test eax, eax
je 0x140012957
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x14001295c
mov qword [rsp + 0x68], r15
xor r8d, r8d
mov rdx, rcx
lea rcx, [rsp + 0x68]
call qword [sym.imp.USERENV.dll_CreateEnvironmentBlock]
test eax, eax
je 0x140012957
xor bl, bl
cmp qword [rsi + 0x18], 8
jb 0x1400128e8
mov rsi, qword [rsi]
cmp qword [rdi + 0x18], 8
jb 0x1400128f2
mov rdi, qword [rdi]
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x40], rsi
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x30], 0x400
mov dword [rsp + 0x28], r15d
mov qword [rsp + 0x20], r15
xor r9d, r9d
mov r8, rdi
xor edx, edx
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.ADVAPI32.dll_CreateProcessAsUserW]
test eax, eax
je 0x140012940
mov rcx, qword [rbp + 8]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov bl, 1
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x140012950
call qword [sym.imp.USERENV.dll_DestroyEnvironmentBlock]
mov rcx, qword [rsp + 0x70]
jmp 0x14001295e
mov rcx, qword [rsp + 0x70]
xor bl, bl
test rcx, rcx
je 0x14001296a
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
movzx eax, bl
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.140024b60
add rsp, 0x88
pop r15
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret
Function at 0x140013760
Capabilities:
Get common file path
Get startup folder

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x250
mov rax, qword [0x14003a008]
xor rax, rsp
mov qword [rsp + 0x240], rax
xor ebx, ebx
lea rdx, [rsp + 0x30]
mov rdi, rcx
mov dword [rsp + 0x20], ebx
xor ecx, ecx
lea r9d, [rbx + 1]
lea r8d, [rbx + 0x23]
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
mov qword [rdi + 0x18], 7
mov qword [rdi + 0x10], rbx
mov word [rdi], bx
cmp word [rsp + 0x30], bx
je 0x1400137ca
lea rax, [rsp + 0x30]
or rbx, 0xffffffffffffffff
nop dword [rax]
inc rbx
cmp word [rax + rbx*2], 0
jne 0x1400137c0
mov r8, rbx
lea rdx, [rsp + 0x30]
mov rcx, rdi
call fcn.14000c8c0
mov rax, rdi
mov rcx, qword [rsp + 0x240]
xor rcx, rsp
call fcn.140024b60
mov rbx, qword [rsp + 0x268]
add rsp, 0x250
pop rdi
ret
Function at 0x140016d80
Capabilities:
Write file on windows

Disassembly:
mov rax, rsp
push rbp
mov rbp, rsp
sub rsp, 0x70
mov qword [rbp - 0x40], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x14003a008]
xor rax, rsp
mov qword [rbp - 0x10], rax
mov rdi, rcx
cmp qword [rcx + 0x68], 0
je 0x140016f3e
cmp byte [rcx + 0x71], 0
je 0x140016f3e
mov rax, qword [rcx]
mov rbx, qword [rax + 0x18]
mov rcx, rbx
call qword [fcn.140006c10]
or edx, 0xffffffff
mov rcx, rdi
call rbx
cmp eax, 0xffffffff
jne 0x140016de9
xor al, al
jmp 0x140016f40
mov qword [rbp - 0x18], 0xf
mov qword [rbp - 0x20], 0
mov byte [rbp - 0x30], 0
xor r8d, r8d
lea edx, [r8 + 8]
lea rcx, [rbp - 0x30]
call fcn.140016c70
nop
mov rcx, qword [rbp - 0x30]
mov r9, qword [rbp - 0x18]
nop word [rax + rax]
lea rdx, [rbp - 0x30]
cmp r9, 0x10
cmovae rdx, rcx
lea r8, [rbp - 0x30]
cmovae r8, rcx
mov r9, qword [rbp - 0x20]
add r9, rdx
lea rax, [rbp - 0x38]
mov qword [rsp + 0x20], rax
lea rdx, [rdi + 0x74]
mov rcx, qword [rdi + 0x68]
call qword [sym.imp.MSVCP140.dll_public:_int___cdecl_std::codecvt_char__char__struct__Mbstatet_::unshift_struct__Mbstatet____ptr64__char____ptr64__char____ptr64__char____ptr64____ptr64_const___ptr64]
test eax, eax
je 0x140016e5d
sub eax, 1
jne 0x140016ed2
jmp 0x140016e61
mov byte [rdi + 0x71], 0
lea rax, [rbp - 0x30]
mov rcx, qword [rbp - 0x30]
mov r9, qword [rbp - 0x18]
cmp r9, 0x10
cmovae rax, rcx
mov rbx, qword [rbp - 0x38]
sub rbx, rax
je 0x140016eaf
lea rax, [rbp - 0x30]
cmp r9, 0x10
cmovae rax, rcx
mov r9, qword [rdi + 0x80]
mov r8, rbx
mov edx, 1
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
mov r9, qword [rbp - 0x18]
mov rcx, qword [rbp - 0x30]
cmp rbx, rax
jne 0x140016edf
cmp byte [rdi + 0x71], 0
je 0x140016ee3
test rbx, rbx
jne 0x140016e20
xor r8d, r8d
lea edx, [rbx + 8]
lea rcx, [rbp - 0x30]
call fcn.14000ffd0
jmp 0x140016e0e
sub eax, 2
mov r9, qword [rbp - 0x18]
mov rcx, qword [rbp - 0x30]
je 0x140016ee3
xor bl, bl
jmp 0x140016ee5
mov bl, 1
cmp r9, 0x10
jb 0x140016f39
lea rax, [r9 + 1]
cmp rax, 0x1000
jb 0x140016f34
test byte [rbp - 0x30], 0x1f
je 0x140016f04
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rax, qword [rcx - 8]
cmp rax, rcx
jb 0x140016f14
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
sub rcx, rax
cmp rcx, 8
jae 0x140016f24
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
cmp rcx, 0x27
jbe 0x140016f31
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, rax
call fcn.140025020
movzx eax, bl
jmp 0x140016f40
mov al, 1
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.140024b60
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret
Function at 0x140023b00
Capabilities:
Hash data via bcrypt

Disassembly:
mov qword [rsp + 0x10], rdx
push rdi
sub rsp, 0x50
mov qword [rsp + 0x28], 0xfffffffffffffffe
mov qword [rsp + 0x60], rbx
mov rbx, rdx
mov rdi, rcx
mov dword [rsp + 0x20], 0
mov rdx, qword [r8]
mov r8, qword [r8 + 8]
sub r8, rdx
xor r9d, r9d
mov rcx, qword [rcx + 8]
call qword [sym.imp.bcrypt.dll_BCryptHashData]
test eax, eax
jns 0x140023b6e
xor eax, eax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rax
lea rcx, [rsp + 0x30]
call fcn.1400239f0
lea rdx, [0x140035ed8]
lea rcx, [rsp + 0x30]
call sub.VCRUNTIME140.dll__CxxThrowException
int3
xor eax, eax
mov qword [rbx], rax
mov qword [rbx + 8], rax
mov qword [rbx + 0x10], rax
mov rdx, qword [rdi]
mov rcx, rbx
call fcn.140023bf0
mov dword [rsp + 0x20], 1
xor r9d, r9d
mov r8d, dword [rdi]
mov rdx, qword [rbx]
mov rcx, qword [rdi + 8]
call qword [sym.imp.bcrypt.dll_BCryptFinishHash]
test eax, eax
jns 0x140023bd2
xor eax, eax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rax
lea rcx, [rsp + 0x30]
call fcn.1400239f0
lea rdx, [0x140035ed8]
lea rcx, [rsp + 0x30]
call sub.VCRUNTIME140.dll__CxxThrowException
int3
mov rax, rbx
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop rdi
ret
Function at 0x140001000
Capabilities:
Contain obfuscated stackstrings
Create process on windows

Disassembly:
push rbp
lea rbp, [rsp - 0x40]
sub rsp, 0x140
mov rax, qword [0x140003008]
xor rax, rsp
mov qword [rbp + 0x30], rax
xorps xmm0, xmm0
mov dword [rbp - 0x20], 0x5c002e
xor ecx, ecx
mov dword [rbp - 0x1c], 0x520024
xor eax, eax
mov word [rbp + 0x24], cx
mov qword [rbp - 0x30], rax
xor r9d, r9d
mov qword [rsp + 0x60], rax
xor r8d, r8d
lea rax, [rsp + 0x50]
mov dword [rbp - 0x18], 0x630065
mov qword [rsp + 0x48], rax
xor edx, edx
lea rax, [rsp + 0x70]
mov dword [rbp - 0x14], 0x630079
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x28], 0x8000000
mov dword [rsp + 0x20], ecx
lea rcx, [rbp - 0x20]
movups xmmword [rsp + 0x70], xmm0
mov dword [rbp - 0x10], 0x65006c
movups xmmword [rbp - 0x80], xmm0
mov dword [rbp - 0xc], 0x42002e
movups xmmword [rbp - 0x70], xmm0
mov dword [rbp - 8], 0x6e0069
movups xmmword [rbp - 0x60], xmm0
mov dword [rbp - 4], 0x41005c
movups xmmword [rbp - 0x50], xmm0
mov dword [rbp], 0x700070
movups xmmword [rbp - 0x40], xmm0
mov dword [rbp + 4], 0x530056
movups xmmword [rsp + 0x50], xmm0
mov dword [rbp + 8], 0x720074
mov dword [rbp + 0xc], 0x610065
mov dword [rbp + 0x10], 0x69006d
mov dword [rbp + 0x14], 0x67006e
mov dword [rbp + 0x18], 0x580055
mov dword [rbp + 0x1c], 0x65002e
mov dword [rbp + 0x20], 0x650078
call qword [sym.imp.KERNEL32.dll_CreateProcessW]
xor eax, eax
mov rcx, qword [rbp + 0x30]
xor rcx, rsp
call fcn.140001130
add rsp, 0x140
pop rbp
ret

Function at 0x140001a0c
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x140001a56
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x140001a56
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x140001a56
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x140001a56
cmp dword [rcx + 0x84], 0xe
jbe 0x140001a56
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x140001a58
xor al, al
add rsp, 0x28
ret