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

Disassembly:
push rbx
push rdi
push r15
sub rsp, 0x70
xor ebx, ebx
mov dword [rsp + 0x40], ebx
call qword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov rcx, rax
lea rdx, [rsp + 0x40]
call qword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov qword [rsp + 0x50], rax
mov rdi, rax
test rax, rax
jne 0x14012766d
lea rax, [rbx - 1]
add rsp, 0x70
pop r15
pop rdi
pop rbx
ret
mov eax, dword [rsp + 0x40]
mov r15, 0xffffffffffffffff
inc eax
mov qword [rsp + 0x98], rsi
movsxd rcx, eax
mov eax, 8
mul rcx
mov qword [rsp + 0x60], r14
cmovo rax, r15
mov rcx, rax
call fcn.14012fc80
mov r14, rax
mov qword [rsp + 0x48], rax
mov eax, dword [rsp + 0x40]
test eax, eax
je 0x14012776c
mov qword [rsp + 0x90], rbp
mov qword [rsp + 0xa0], r12
mov r12, r14
mov qword [rsp + 0x68], r13
mov r13, rdi
sub r13, r14
mov r14d, ebx
nop dword [rax]
nop word [rax + rax]
mov rbp, qword [r12 + r13]
mov r9d, r15d
mov qword [rsp + 0x38], rbx
mov r8, rbp
mov qword [rsp + 0x30], rbx
xor edx, edx
mov dword [rsp + 0x28], ebx
xor ecx, ecx
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
movsxd rdi, eax
mov rcx, rdi
call fcn.14012fc80
mov qword [rsp + 0x38], rbx
mov r9d, r15d
mov qword [rsp + 0x30], rbx
mov r8, rbp
mov dword [rsp + 0x28], edi
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], rax
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov qword [r12], rsi
lea r12, [r12 + 8]
mov eax, dword [rsp + 0x40]
inc r14d
cmp r14d, eax
jne 0x1401276e0
mov r14, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x50]
mov r13, qword [rsp + 0x68]
mov r12, qword [rsp + 0xa0]
mov rbp, qword [rsp + 0x90]
cdqe
mov rcx, rdi
mov qword [r14 + rax*8], rbx
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov ecx, dword [rsp + 0x40]
mov rdx, r14
call fcn.140001950
mov esi, eax
cmp dword [rsp + 0x40], ebx
je 0x1401277ab
mov rdi, r14
mov rcx, qword [rdi]
test rcx, rcx
je 0x1401277ab
call fcn.14012f24c
inc ebx
add rdi, 8
cmp ebx, dword [rsp + 0x40]
jne 0x140127792
mov rcx, r14
call fcn.14012f24c
mov r14, qword [rsp + 0x60]
mov eax, esi
mov rsi, qword [rsp + 0x98]
add rsp, 0x70
pop r15
pop rdi
pop rbx
ret

Function at 0x140127a70
Capabilities:
Hash data using fnv

Disassembly:
movzx r8d, byte [rdx]
movabs r9, 0x100000001b3
movzx eax, byte [rdx + 1]
xor r8, rcx
movzx ecx, byte [rdx + 2]
imul r8, r9
xor rax, r8
imul rax, r9
xor rax, rcx
movzx ecx, byte [rdx + 3]
imul rax, r9
xor rax, rcx
imul rax, r9
ret
mov rdx, rcx
movabs rcx, 0xcbf29ce484222325
jmp 0x140127a30
Function at 0x140009038
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov rbx, r8
mov r9, rcx
xor ecx, ecx
movabs r8, 0xcbf29ce484222325
mov rsi, rdx
movzx eax, byte [rbx + rcx + 0x10]
movabs rdx, 0x100000001b3
xor r8, rax
inc rcx
imul r8, rdx
cmp rcx, 4
jb 0x14000905c
mov rdx, qword [r9 + 0x30]
mov rcx, qword [r9 + 0x18]
and rdx, r8
add rdx, rdx
cmp qword [rcx + rdx*8 + 8], rbx
jne 0x1400090b3
cmp qword [rcx + rdx*8], rbx
jne 0x1400090a8
mov rax, qword [r9 + 8]
mov qword [rcx + rdx*8], rax
mov rcx, qword [r9 + 0x18]
mov rax, qword [r9 + 8]
jmp 0x1400090ac
mov rax, qword [rbx + 8]
mov qword [rcx + rdx*8 + 8], rax
jmp 0x1400090c0
cmp qword [rcx + rdx*8], rbx
jne 0x1400090c0
mov rax, qword [rbx]
mov qword [rcx + rdx*8], rax
mov rax, qword [rbx + 8]
mov rdi, qword [rbx]
mov qword [rax], rdi
mov rcx, qword [rbx]
mov rax, qword [rbx + 8]
mov qword [rcx + 8], rax
dec qword [r9 + 0x10]
mov rdx, qword [rbx + 0x30]
cmp rdx, 8
jb 0x1400090f5
mov rcx, qword [rbx + 0x18]
inc rdx
mov r8d, 2
call fcn.1400020a4
mov edx, 1
mov rcx, rbx
lea r8d, [rdx + 0x37]
call fcn.1400020a4
mov rbx, qword [rsp + 0x30]
mov rax, rsi
mov qword [rsi], rdi
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret

Function at 0x14000b51c
Capabilities:
Terminate process

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
call qword [sym.imp.api_ms_win_core_debug_l1_1_1.dll_IsDebuggerPresent]
mov ecx, 1
mov dword [0x1400148a0], eax
call fcn.14000b2a4
xor ecx, ecx
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_1.dll_SetUnhandledExceptionFilter]
mov rcx, rbx
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_1.dll_UnhandledExceptionFilter]
cmp dword [0x1400148a0], 0
jne case.default.0x14000b572
mov ecx, 1
call fcn.14000b2a4
call qword [sym.imp.api_ms_win_core_processthreads_l1_1_2.dll_GetCurrentProcess]
mov rcx, rax
mov edx, 0xc0000409
add rsp, 0x20
pop rbx
jmp qword [sym.imp.api_ms_win_core_processthreads_l1_1_2.dll_TerminateProcess]
stosb byte [rdi], al
movsd dword [rdi], dword [rsi]
out dx, eax
pop rdx
and eax, 0xbc8b7ff5
invalid
jp 0x1400209bf
adc dh, bl
and byte [rsi], al
xor al, 0x34
stosd dword [rdi], eax
invalid
Function at 0x1400036e0
Capabilities:
Write file on windows

Disassembly:
push rbx
sub rsp, 0x60
mov rax, qword [0x14000c040]
xor rax, rsp
mov qword [rsp + 0x58], rax
cmp qword [rcx + 0x68], 0
mov rbx, rcx
je 0x1400037b3
cmp byte [rcx + 0x71], 0
je 0x1400037b3
mov rax, qword [rcx]
mov edx, 0xffffffff
mov qword [rsp + 0x78], rdi
call qword [rax + 0x18]
cmp eax, 0xffffffff
je 0x1400037af
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 0x140003774
sub eax, 1
je 0x140003778
cmp eax, 2
jne 0x1400037af
mov byte [rbx + 0x71], 0
mov al, 1
mov rdi, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140006890
add rsp, 0x60
pop rbx
ret
mov byte [rbx + 0x71], 0
mov rdi, qword [rsp + 0x30]
lea rax, [rsp + 0x38]
sub rdi, rax
je 0x1400037a6
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 0x1400037af
cmp byte [rbx + 0x71], 0
sete al
jmp 0x14000375c
xor al, al
jmp 0x14000375c
mov al, 1
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140006890
add rsp, 0x60
pop rbx
ret
Function at 0x140005720
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x80
mov rax, qword [0x14000c040]
xor rax, rsp
mov qword [rsp + 0x78], rax
mov esi, edx
mov rdi, rcx
cmp edx, 0xffffffff
jne 0x14000574d
xor eax, eax
jmp 0x1400058b6
mov qword [rsp + 0xa0], rbx
call qword [sym.imp.MSVCP140.dll_protected:_char____ptr64___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::pptr_void_const___ptr64]
test rax, rax
je 0x14000578d
mov rcx, rdi
call qword [sym.imp.MSVCP140.dll_protected:_char____ptr64___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::epptr_void_const___ptr64]
mov rcx, rdi
mov rbx, rax
call qword [sym.imp.MSVCP140.dll_protected:_char____ptr64___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::pptr_void_const___ptr64]
cmp rax, rbx
jae 0x14000578d
mov rcx, rdi
call qword [sym.imp.MSVCP140.dll_protected:_char____ptr64___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::_Pninc_void____ptr64]
mov byte [rax], sil
mov eax, esi
jmp 0x1400058ae
cmp qword [rdi + 0x80], 0
je 0x1400058a9
mov rcx, rdi
call qword [sym.imp.MSVCP140.dll_protected:_char____ptr64___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::eback_void_const___ptr64]
lea rcx, [rdi + 0x70]
cmp rax, rcx
jne 0x1400057c7
mov rdx, qword [rdi + 0x88]
mov rcx, rdi
mov r9, qword [rdi + 0x90]
mov r8, rdx
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::setg_char____ptr64__char____ptr64__char____ptr64____ptr64]
mov rcx, qword [rdi + 0x68]
test rcx, rcx
jne 0x1400057f2
mov rdx, qword [rdi + 0x80]
movsx ecx, sil
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fputc]
mov ecx, 0xffffffff
cmp eax, ecx
cmovne ecx, esi
mov eax, ecx
jmp 0x1400058ae
lea rax, [rsp + 0x48]
mov byte [rsp + 0x40], sil
mov qword [rsp + 0x38], rax
lea rdx, [rdi + 0x74]
lea rax, [rsp + 0x78]
mov qword [rsp + 0x30], rax
lea r9, [rsp + 0x41]
lea rax, [rsp + 0x58]
mov qword [rsp + 0x28], rax
lea r8, [rsp + 0x40]
lea rax, [rsp + 0x50]
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 0x140005861
sub eax, 1
je 0x140005861
cmp eax, 2
jne 0x1400058a9
movsx ecx, byte [rsp + 0x40]
mov rdx, qword [rdi + 0x80]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fputc]
mov ecx, 0xffffffff
cmp eax, ecx
cmovne ecx, esi
mov eax, ecx
jmp 0x1400058ae
mov rbx, qword [rsp + 0x48]
lea rax, [rsp + 0x58]
sub rbx, rax
je 0x14000588f
mov r9, qword [rdi + 0x80]
lea rcx, [rsp + 0x58]
mov r8, rbx
mov edx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
cmp rbx, rax
jne 0x1400058a9
lea rax, [rsp + 0x40]
mov byte [rdi + 0x71], 1
cmp qword [rsp + 0x50], rax
mov ecx, 0xffffffff
cmovne ecx, esi
mov eax, ecx
jmp 0x1400058ae
mov eax, 0xffffffff
mov rbx, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.140006890
mov rsi, qword [rsp + 0xa8]
add rsp, 0x80
pop rdi
ret
Function at 0x140006000
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push r14
sub rsp, 0x20
mov rsi, r8
mov r14, rdx
mov rbp, rcx
test r8, r8
jg 0x140006031
xor eax, eax
mov rbp, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret
cmp qword [rcx + 0x68], 0
je 0x14000604f
mov rbp, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
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 qword [rsp + 0x30], rbx
mov rbx, rsi
mov qword [rsp + 0x38], rdi
call qword [sym.imp.MSVCP140.dll_protected:_long_long___int64____cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::_Gnavail_void_const___ptr64]
test rax, rax
je 0x140006099
cmp rax, rsi
mov rdi, rsi
mov rcx, rbp
cmovb rdi, rax
call qword [sym.imp.MSVCP140.dll_protected:_char____ptr64___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::gptr_void_const___ptr64]
mov r8, rdi
mov rcx, r14
mov rdx, rax
call sub.VCRUNTIME140.dll_memcpy
mov edx, edi
mov rcx, rbp
add r14, rdi
sub rbx, rdi
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::gbump_int____ptr64]
cmp qword [rbp + 0x80], 0
mov rdi, rbx
je 0x140006111
mov rcx, rbp
call fcn.140003c30
cmp rbx, 0xfff
jbe 0x1400060f1
nop word [rax + rax]
mov r9, qword [rbp + 0x80]
mov edx, 1
mov r8d, 0xfff
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
sub rbx, rax
add r14, rax
mov rdi, rbx
cmp rax, 0xfff
jne 0x140006132
cmp rbx, rax
ja 0x1400060c0
test rdi, rdi
je 0x140006111
mov r9, qword [rbp + 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 rdi, rax
sub rsi, rdi
mov rbx, qword [rsp + 0x30]
mov rax, rsi
mov rsi, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x40]
add rsp, 0x20
pop r14
ret
sub rsi, rbx
jmp 0x140006114
Function at 0x140006140
Capabilities:
Write file on windows

Disassembly:
push rbx
push rdi
push r14
sub rsp, 0x20
cmp qword [rcx + 0x68], 0
mov rbx, r8
mov r14, rdx
mov rdi, rcx
je 0x140006168
add rsp, 0x20
pop r14
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 qword [rsp + 0x40], rbp
mov qword [rsp + 0x48], rsi
mov rsi, rbx
call qword [sym.imp.MSVCP140.dll_protected:_long_long___int64____cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::_Pnavail_void_const___ptr64]
mov rbp, rax
test rbx, rbx
jle 0x1400061dc
test rax, rax
jle 0x1400061bc
cmp rbx, rax
mov rcx, rdi
cmovl rbp, rbx
call qword [sym.imp.MSVCP140.dll_protected:_char____ptr64___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::pptr_void_const___ptr64]
mov r8, rbp
mov rdx, r14
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
mov edx, ebp
mov rcx, rdi
add r14, rbp
sub rbx, rbp
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::pbump_int____ptr64]
test rbx, rbx
jle 0x1400061dc
mov r9, qword [rdi + 0x80]
test r9, r9
je 0x1400061dc
mov r8, rbx
mov edx, 1
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
sub rbx, rax
mov rbp, qword [rsp + 0x40]
sub rsi, rbx
mov rax, rsi
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
pop rdi
pop rbx
ret

Function at 0x140006b68
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x140006bb2
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x140006bb2
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x140006bb2
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x140006bb2
cmp dword [rcx + 0x84], 0xe
jbe 0x140006bb2
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x140006bb4
xor al, al
add rsp, 0x28
ret
Function at 0x2070058
Capabilities:
Decompress data using aplib

Disassembly:
call fcn.020701df
push r10
mov r10, rsp
push r10
mov rsi, qword [r10 + 0x10]
mov rdi, qword [r10 + 0x20]
cld
mov dl, pe_nt_image_headers64
mov al, byte [rsi]
inc rsi
mov byte [rdi], al
inc rdi
mov ebx, 2
add dl, dl
jne 0x2070089
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x207006f
add dl, dl
jne 0x2070096
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x20700f6
xor eax, eax
add dl, dl
jne 0x20700a5
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x20701ad
add dl, dl
jne 0x20700b6
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x20700c3
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x20700d0
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x20700dd
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
je 0x20700ea
push rdi
mov eax, eax
sub rdi, rax
mov al, byte [rdi]
pop rdi
mov byte [rdi], al
inc rdi
mov ebx, 2
jmp 0x207007e
mov eax, 1
add dl, dl
jne 0x2070106
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x2070113
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x20700fb
sub eax, ebx
mov ebx, 1
jne 0x207014c
mov ecx, 1
add dl, dl
jne 0x207012e
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x207013b
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x2070123
push rsi
mov rsi, rdi
sub rsi, rbp
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x207007e
dec eax
shl eax, 8
mov al, byte [rsi]
inc rsi
mov ebp, eax
mov ecx, 1
add dl, dl
jne 0x2070168
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x2070175
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x207015d
cmp eax, 0x7d00
jae 0x207019b
cmp eax, 0x500
jb 0x2070196
inc ecx
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x207007e
cmp eax, 0x7f
ja 0x207019e
add ecx, 2
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x207007e
mov al, byte [rsi]
inc rsi
xor ecx, ecx
shr al, 1
je 0x20701d2
adc ecx, 2
mov ebp, eax
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
mov ebx, 1
jmp 0x207007e
pop r10
sub rdi, qword [r10 + 0x20]
mov eax, edi
pop r10
ret 0x20
Function at 0x14000333c
Capabilities:
Create thread

Disassembly:
sub rsp, 0x48
lea r8, [0x140004680]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.ntoskrnl.exe_DbgPrintEx]
call fcn.140002cb0
test al, al
jne 0x140003375
lea r8, [0x1400046a0]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.ntoskrnl.exe_DbgPrintEx]
mov eax, 0xc0000001
jmp 0x14000343a
call fcn.140002b58
test eax, eax
jns 0x14000339e
lea r8, [0x1400046d0]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.ntoskrnl.exe_DbgPrintEx]
mov rcx, qword [0x140006480]
call qword [sym.imp.ntoskrnl.exe_ZwClose]
jmp 0x14000336b
call fcn.140002d70
test al, al
jne 0x1400033bf
lea r8, [0x1400046f0]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.ntoskrnl.exe_DbgPrintEx]
call fcn.140002a64
jmp 0x14000338f
call fcn.140001a44
call fcn.140004048
and qword [rsp + 0x30], 0
lea rax, [0x140003a00]
and qword [rsp + 0x60], 0
lea rcx, [rsp + 0x60]
mov qword [rsp + 0x28], rax
xor r9d, r9d
and qword [rsp + 0x20], 0
xor r8d, r8d
mov edx, 0x10000000
call qword [sym.imp.ntoskrnl.exe_PsCreateSystemThread]
test eax, eax
jns 0x140003417
mov r9d, eax
lea r8, [0x140004710]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.ntoskrnl.exe_DbgPrintEx]
jmp 0x1400033b8
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x140003427
call qword [sym.imp.ntoskrnl.exe_ZwClose]
lea r8, [0x140004730]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.ntoskrnl.exe_DbgPrintEx]
xor eax, eax
add rsp, 0x48
ret
Function at 0x1400035b0
Capabilities:
Get system information on windows

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov dword [rax + 0x20], r9d
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
and dword [rax - 0x38], 0
lea r9, [rax - 0x38]
mov r13, rdx
mov r15, r8
xor edx, edx
mov r12, rcx
xor r8d, r8d
lea edi, [rdx + 0xb]
mov ecx, edi
call qword [sym.imp.ntoskrnl.exe_ZwQuerySystemInformation]
mov eax, dword [rsp + 0x20]
test eax, eax
je 0x140003635
test r12, r12
je 0x140003635
mov edx, eax
xor ecx, ecx
mov r8d, 0x53757a79
call qword [sym.imp.ntoskrnl.exe_ExAllocatePoolWithTag]
mov r8d, dword [rsp + 0x20]
lea r9, [rsp + 0x20]
mov rdx, rax
mov ecx, edi
mov rbx, rax
call qword [sym.imp.ntoskrnl.exe_ZwQuerySystemInformation]
test eax, eax
jns 0x140003654
xor edx, edx
mov rcx, rbx
call qword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
xor eax, eax
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
xor edi, edi
xor ebp, ebp
xor esi, esi
cmp dword [rbx], esi
jbe 0x1400036c1
mov r14d, esi
imul rax, r14, 0x128
movzx ecx, word [rax + rbx + 0x2e]
add rcx, rax
lea rax, [rbx + 0x30]
add rax, rcx
cmp dword [rsp + 0x78], edi
je 0x14000368c
mov rdx, r12
mov rcx, rax
call sub.ntoskrnl.exe__stricmp
test eax, eax
jmp 0x1400036a7
mov r8, r12
sub r8, rax
movzx ecx, byte [rax]
movzx edx, byte [rax + r8]
sub ecx, edx
jne 0x1400036a5
inc rax
test edx, edx
jne 0x140003692
test ecx, ecx
je 0x1400036b1
inc esi
cmp esi, dword [rbx]
jae 0x1400036c1
jmp 0x14000365e
imul rax, r14, 0x128
mov ebp, dword [rax + rbx + 0x20]
mov rdi, qword [rax + rbx + 0x18]
xor edx, edx
mov rcx, rbx
call qword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
test rdi, rdi
je 0x140003635
test r13, r13
je 0x1400036de
mov qword [r13], rdi
test r15, r15
je 0x1400036e6
mov dword [r15], ebp
mov eax, 1
jmp 0x140003637
Function at 0x140003730
Capabilities:
Set registry value

Disassembly:
push rbp
push rbx
push rdi
lea rbp, [rsp - 0x47]
sub rsp, 0x90
movzx edi, cx
lea rdx, [0x1400049a0]
lea rcx, [rbp - 1]
call qword [sym.imp.ntoskrnl.exe_RtlInitUnicodeString]
xor ebx, ebx
mov dword [rbp + 0xf], 0x30
lea rax, [rbp - 1]
mov qword [rbp + 0x17], rbx
mov qword [rbp + 0x1f], rax
lea r8, [rbp + 0xf]
lea rax, [rbp + 0x6f]
mov dword [rbp + 0x27], 0x40
mov qword [rsp + 0x30], rax
lea rcx, [rbp + 0x7f]
xorps xmm0, xmm0
mov dword [rsp + 0x28], ebx
xor r9d, r9d
mov qword [rsp + 0x20], rbx
mov edx, 0xf003f
movdqu xmmword [rbp + 0x2f], xmm0
call qword [sym.imp.ntoskrnl.exe_ZwCreateKey]
test eax, eax
je 0x1400037ab
xor eax, eax
jmp 0x140003873
lea rdx, [0x1400049f0]
lea rcx, [rbp - 1]
call qword [sym.imp.ntoskrnl.exe_RtlInitUnicodeString]
mov rax, qword [rbp + 0x7f]
lea r8, [rbp + 0xf]
mov qword [rbp + 0x17], rax
lea rcx, [rbp - 9]
lea rax, [rbp - 1]
mov dword [rbp + 0xf], 0x30
mov qword [rbp + 0x1f], rax
xorps xmm0, xmm0
lea rax, [rbp + 0x6f]
mov dword [rbp + 0x27], 0x40
mov qword [rsp + 0x30], rax
xor r9d, r9d
mov dword [rsp + 0x28], ebx
mov edx, 0xf003f
mov qword [rsp + 0x20], rbx
movdqu xmmword [rbp + 0x2f], xmm0
call qword [sym.imp.ntoskrnl.exe_ZwCreateKey]
test eax, eax
je 0x14000381a
mov rcx, qword [rbp + 0x7f]
call qword [sym.imp.ntoskrnl.exe_ZwClose]
jmp 0x1400037a4
lea rdx, [0x140004a10]
lea rcx, [rbp - 1]
call qword [sym.imp.ntoskrnl.exe_RtlInitUnicodeString]
mov rcx, qword [rbp - 9]
lea rdx, [rbp - 1]
movzx eax, di
mov r9d, 4
mov dword [rbp + 0x77], eax
xor r8d, r8d
lea rax, [rbp + 0x77]
mov dword [rsp + 0x28], r9d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ntoskrnl.exe_ZwSetValueKey]
test eax, eax
jne 0x14000385d
lea ebx, [rax + 1]
mov rcx, qword [rbp - 9]
call qword [sym.imp.ntoskrnl.exe_ZwClose]
mov rcx, qword [rbp + 0x7f]
call qword [sym.imp.ntoskrnl.exe_ZwClose]
mov eax, ebx
add rsp, 0x90
pop rdi
pop rbx
pop rbp
ret
Function at 0x140003b50
Capabilities:
Parse pe header
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
mov qword [rsp + 0x10], rdx
push rsi
push rdi
push r12
push r13
push r14
push r15
xor r8d, r8d
mov r9, rcx
test rcx, rcx
je 0x140003d5d
mov eax, 0x5a4d
cmp word [rcx], ax
jne 0x140003d5d
movsxd r10, dword [rcx + 0x3c]
add r10, rcx
cmp dword [r10], 0x4550
jne 0x140003d5d
mov esi, dword [r10 + 0x88]
test esi, esi
je 0x140003d5d
lea rdi, [rsi + rcx]
mov edx, r8d
mov ebx, dword [rdi + 0xc]
lea r11d, [r8 + 1]
add rbx, rcx
mov eax, r8d
mov ecx, r8d
mov ebp, 4
cmp byte [rcx + rbx], r8b
je 0x140003bd9
add eax, r11d
add rcx, r11
cmp rcx, 0x40
jl 0x140003bc0
jmp 0x140003bfd
cmp eax, ebp
jle 0x140003bfd
movsxd rcx, eax
cmp byte [rcx + rbx - 4], 0x2e
jne 0x140003bfd
mov al, byte [rcx + rbx - 3]
sub al, 0x44
test al, 0xdf
jne 0x140003bfd
mov al, byte [rcx + rbx - 2]
sub al, 0x4c
test al, 0xdf
cmove rdx, r9
movzx r13d, word [r10 + 0x14]
add r13, r10
test rdx, rdx
jne 0x140003c57
movzx r15d, word [r10 + 6]
mov r14d, r8d
test r15, r15
je 0x140003c57
mov rbp, r8
lea rbx, [r13 + 0x28]
mov ecx, dword [rbx - 4]
cmp ecx, esi
ja 0x140003c2b
add ecx, dword [rbx]
cmp esi, ecx
jb 0x140003c3c
add r14d, r11d
add rbp, r11
add rbx, 0x28
cmp rbp, r15
jge 0x140003c57
jmp 0x140003c1e
movsxd rax, r14d
lea rcx, [rax + rax*4]
mov edx, dword [r13 + rcx*8 + 0x2c]
mov eax, dword [r13 + rcx*8 + 0x24]
sub rdx, rax
add rdx, r9
lea rdi, [rsi + rdx]
test rdi, rdi
je 0x140003d5d
test rdx, rdx
je 0x140003d5d
mov r15d, dword [rdi + 0x1c]
mov ecx, dword [rdi + 0x20]
add r15, rdx
mov r12d, dword [rdi + 0x24]
add rcx, rdx
mov eax, dword [rdi + 0x18]
add r12, rdx
mov qword [rsp + 0x38], rcx
test eax, eax
je 0x140003d5d
mov esi, r8d
lea r14d, [rax - 1]
mov rax, qword [rsp + 0x40]
lea edi, [r14 + rsi]
shr edi, 1
mov ebx, dword [rcx + rdi*4]
add rbx, rdx
sub rbx, rax
mov cl, byte [rax]
cmp cl, byte [rax + rbx]
jne 0x140003cbb
add rax, r11
test cl, cl
jne 0x140003ca8
mov eax, r8d
jmp 0x140003cc0
sbb eax, eax
or eax, r11d
test eax, eax
je 0x140003ce2
jle 0x140003ccb
lea esi, [rdi + 1]
jmp 0x140003cd1
jns 0x140003cd1
lea r14d, [rdi - 1]
mov rcx, qword [rsp + 0x38]
cmp esi, r14d
jbe 0x140003c94
mov eax, 0xffff
jmp 0x140003d60
movzx eax, word [r12 + rdi*2]
mov edi, dword [r15 + rax*4]
cmp rdx, r9
je 0x140003d38
movzx esi, word [r10 + 6]
test rsi, rsi
je 0x140003cdb
mov rbx, r8
lea rdx, [r13 + 0x28]
mov ecx, dword [rdx - 4]
cmp ecx, edi
ja 0x140003d0e
add ecx, dword [rdx]
cmp edi, ecx
jb 0x140003d1f
add r8d, r11d
add rbx, r11
add rdx, 0x28
cmp rbx, rsi
jge 0x140003cdb
jmp 0x140003d01
movsxd rax, r8d
lea rcx, [rax + rax*4]
mov edx, dword [r13 + rcx*8 + 0x2c]
mov eax, dword [r13 + rcx*8 + 0x24]
sub rdx, rax
add rdx, r9
je 0x140003cdb
mov eax, 0x20b
cmp word [r10 + 0x18], ax
mov eax, 4
cmove r11, rax
lea rax, [rdx + r11]
movzx edx, word [rdi + rax]
mov eax, 0xfff
and ax, dx
jmp 0x140003d60
or eax, 0xffffffff
mov rbx, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x50]
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret