joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140079b64
Capabilities:
Parse pe header

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

Function at 0x14007ba81
Capabilities:
Link many functions at runtime

Disassembly:
push rbp
push r14
push rsi
push rdi
push rbx
sub rsp, 0x40
lea rbp, [rsp + 0x40]
mov qword [rbp - 8], 0xfffffffffffffffe
lea rcx, [0x14163c182]
call qword [sym.imp.kernel32.dll_GetModuleHandleA]
test rax, rax
je 0x14007bae4
mov rdi, rax
lea rdx, [0x14163f27d]
mov rcx, rax
call qword [sym.imp.kernel32.dll_GetProcAddress]
test rax, rax
je 0x14007bae4
mov rsi, rax
lea rdx, [0x14163f28b]
mov rcx, rdi
call qword [sym.imp.kernel32.dll_GetProcAddress]
test rax, rax
je 0x14007bae4
mov r14, rax
xor ebx, ebx
jmp 0x14007bb6a
lea rcx, [0x14163c178]
call qword [sym.imp.kernel32.dll_GetModuleHandleA]
test rax, rax
je 0x14007bbd9
mov rsi, rax
lea rdx, [0x14163fd44]
mov rcx, rax
call qword [sym.imp.kernel32.dll_GetProcAddress]
test rax, rax
je 0x14007bbd9
mov rdi, rax
lea rdx, [0x14163fdc0]
mov rcx, rsi
call qword [sym.imp.kernel32.dll_GetProcAddress]
test rax, rax
je 0x14007bbd9
mov rbx, rax
lea rdx, [0x14163fdf0]
mov rcx, rsi
call qword [sym.imp.kernel32.dll_GetProcAddress]
test rax, rax
je 0x14007bbd9
mov rsi, rax
lea rcx, [rbp - 0x10]
mov edx, 0xc0000000
xor r8d, r8d
xor r9d, r9d
call rdi
test eax, eax
jne 0x14007bbd9
mov r14, qword [rbp - 0x10]
mov al, byte [0x14165a0a0]
mov ecx, 0x18
mov edx, 8
call fcn.14000e2d0
test rax, rax
je 0x14007bbf3
mov rdi, rax
mov qword [rax], rbx
mov qword [rax + 8], rsi
mov qword [rax + 0x10], r14
xor eax, eax
lock cmpxchg qword [0x141659f20], rdi
je 0x14007bbcb
mov rsi, rax
mov qword [rbp - 0x10], rdi
cmp qword [rdi], 0
je 0x14007bbb6
mov rcx, qword [rdi + 0x10]
call qword [sym.imp.kernel32.dll_CloseHandle]
mov rcx, qword [0x14165a000]
xor edx, edx
mov r8, rdi
call qword [sym.imp.kernel32.dll_HeapFree]
mov rdi, rsi
mov rax, rdi
add rsp, 0x40
pop rbx
pop rdi
pop rsi
pop r14
pop rbp
ret
lea rcx, [0x14163c1a3]
lea r8, [0x14163c288]
mov edx, 0x5b
call fcn.14007bc86
jmp 0x14007bc0a
mov qword [rbp - 0x18], r14
mov qword [rbp - 0x20], rbx
mov ecx, 8
mov edx, 0x18
call fcn.14007a3f0
ud2
Function at 0x1400012c0
Capabilities:
Get token membership

Disassembly:
sub rsp, 0x88
mov rax, qword [0x14000c010]
xor rax, rsp
mov qword [rsp + 0x78], rax
xor ecx, ecx
mov word [rsp + 0x6c], 0x500
lea rax, [rsp + 0x60]
mov dword [rsp + 0x70], ecx
mov qword [rsp + 0x50], rax
mov r9d, 0x220
mov dword [rsp + 0x48], ecx
mov dl, 2
mov dword [rsp + 0x40], ecx
lea r8d, [rcx + 0x20]
mov dword [rsp + 0x38], ecx
mov dword [rsp + 0x30], ecx
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x20], ecx
mov qword [rsp + 0x60], rcx
mov dword [rsp + 0x68], ecx
lea rcx, [rsp + 0x68]
call qword [sym.imp.ADVAPI32.dll_AllocateAndInitializeSid]
test eax, eax
je 0x14000133f
mov rdx, qword [rsp + 0x60]
lea r8, [rsp + 0x70]
xor ecx, ecx
call qword [sym.imp.ADVAPI32.dll_CheckTokenMembership]
test eax, eax
jne 0x140001345
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x140001355
call qword [sym.imp.ADVAPI32.dll_FreeSid]
cmp dword [rsp + 0x70], 0
setne al
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.1400054d0
add rsp, 0x88
ret

Function at 0x140001380
Capabilities:
Create process on windows

Disassembly:
sub rsp, 0x2b8
mov rax, qword [0x14000c010]
xor rax, rsp
mov qword [rsp + 0x2a0], rax
mov r8d, 0x104
lea rdx, [rsp + 0x90]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
xorps xmm0, xmm0
mov dword [rsp + 0x20], 0x70
xor eax, eax
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x84], rax
mov dword [rsp + 0x8c], eax
lea rax, str.runas
movups xmmword [rsp + 0x34], xmm0
movups xmmword [rsp + 0x24], xmm0
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x90]
movups xmmword [rsp + 0x44], xmm0
mov qword [rsp + 0x38], rax
movups xmmword [rsp + 0x54], xmm0
mov dword [rsp + 0x50], 5
movups xmmword [rsp + 0x64], xmm0
movups xmmword [rsp + 0x74], xmm0
call qword [sym.imp.SHELL32.dll_ShellExecuteExW]
test eax, eax
jne 0x14000143c
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t___std::wcerr]
lea rdx, str.Failed_to_run_as_administrator.
call fcn.1400041f0
lea rdx, [0x1400043d0]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64___cdecl_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::operator___class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64____cdecl___class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64_____ptr64]
mov rcx, qword [rsp + 0x2a0]
xor rcx, rsp
call fcn.1400054d0
add rsp, 0x2b8
ret
Function at 0x140001880
Capabilities:
Get disk information

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x50
mov rbx, rcx
mov qword [rsp + 0x48], rcx
xor ebp, ebp
mov dword [rsp + 0x20], ebp
xorps xmm0, xmm0
movups xmmword [rcx], xmm0
mov qword [rcx], rbp
mov qword [rcx + 8], rbp
mov qword [rcx + 0x10], rbp
mov dword [rsp + 0x20], 1
call qword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov esi, eax
lea edi, [rbp + 0x41]
test sil, 1
je 0x14000196b
xorps xmm0, xmm0
movups xmmword [rsp + 0x28], xmm0
mov qword [rsp + 0x38], 1
mov qword [rsp + 0x40], 7
mov word [rsp + 0x28], di
mov word [rsp + 0x2a], bp
mov rdx, qword [rbx + 8]
cmp rdx, qword [rbx + 0x10]
je 0x140001920
movups xmm0, xmmword [rsp + 0x28]
movups xmmword [rdx], xmm0
movups xmm1, xmmword [rsp + 0x38]
movups xmmword [rdx + 0x10], xmm1
mov edx, 7
mov word [rsp + 0x28], bp
add qword [rbx + 8], 0x20
jmp 0x140001932
lea r8, [rsp + 0x28]
mov rcx, rbx
call fcn.140005000
mov rdx, qword [rsp + 0x40]
cmp rdx, 8
jb 0x14000196b
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140001966
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140001992
call fcn.1400055fc
shr esi, 1
inc di
cmp di, 0x5a
jbe 0x1400018c6
mov rax, rbx
mov rbx, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
add rsp, 0x50
pop rdi
ret
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
Function at 0x140005f34
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x140005f7e
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x140005f7e
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x140005f7e
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x140005f7e
cmp dword [rcx + 0x84], 0xe
jbe 0x140005f7e
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x140005f80
xor al, al
add rsp, 0x28
ret
Function at 0x1400083b0
Capabilities:
Query or enumerate registry value

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
mov rbp, rsp
sub rsp, 0x60
mov rbx, rdx
mov rsi, rcx
lea rdi, [rcx + 0x28]
mov qword [rbp - 0x28], rdi
mov dword [rbp - 0x20], 1
mov rcx, rdi
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_AcquireSRWLockExclusive]
nop dword [rax + rax]
nop
lea rcx, [rsi + 0x30]
mov rdx, rbx
call fcn.140008e3c
cmp qword [rsi + 0x40], 0
jne 0x1400084d2
mov ebx, 0x12c
and qword [rbp - 0x18], 0
and qword [rbp - 0x10], 0
and qword [rbp - 8], 0
and qword [rbp - 0x30], 0
lea rax, [rbp - 0x30]
mov qword [rsp + 0x20], rax
mov r9d, 0x20219
xor r8d, r8d
lea rdx, str.SoftwareMicrosoftDDDiagnosticsHub
mov rcx, 0xffffffff80000002
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegOpenKeyExW]
nop dword [rax + rax]
test eax, eax
jne 0x1400084bc
lea rcx, [rbp - 0x18]
call fcn.14000776c
mov rcx, qword [rbp - 0x30]
mov qword [rbp - 0x18], rcx
test eax, eax
jne 0x1400084bc
and dword [rbp + 0x20], eax
mov dword [rbp + 0x30], 4
lea rax, [rbp + 0x30]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x20]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0x38]
xor r8d, r8d
lea rdx, str.CollectorService.IdleShutdownInSeconds
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegQueryValueExW]
nop dword [rax + rax]
test eax, eax
jne 0x1400084bc
cmp dword [rbp + 0x38], 4
jne 0x1400084bc
mov ebx, dword [rbp + 0x20]
test ebx, ebx
jne 0x1400084bc
lea r8, str.Service_idle_shutdown_has_been_disabled
lea rdx, str.onecorecomdiagnostics_standardcollector_basecollection_standardcollector.service_standardcollectorhost.cpp
mov rcx, qword [0x140017848]
call fcn.14000b534
jmp 0x1400084c8
lea rcx, [rsi + 0x18]
mov edx, ebx
call fcn.140005d70
nop
lea rcx, [rbp - 0x18]
call fcn.14000776c
nop
mov rcx, rdi
mov rbx, qword [rsp + 0x88]
add rsp, 0x60
pop rdi
pop rsi
pop rbp
jmp qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_ReleaseSRWLockExclusive]
xor eax, edx

Function at 0x140008788
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
xor r9d, r9d
movabs rcx, 0xcbf29ce484222325
test r8, r8
je 0x1400087b8
movzx eax, byte [r9 + rdx]
movabs r10, 0x100000001b3
xor rcx, rax
inc r9
imul rcx, r10
cmp r9, r8
jb 0x14000879a
mov rax, rcx
ret
Function at 0x1800042c0
Capabilities:
Send data
Send data on socket

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r14
sub rsp, 0x50
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov rax, qword [0x18003d4c8]
xor rax, rsp
mov qword [rsp + 0x48], rax
movzx r14d, r9w
mov edi, r8d
mov ebp, edx
mov rsi, rcx
lea rcx, [0x18003f890]
call sub.KERNEL32.dll_EnterCriticalSection
xor bl, bl
test rsi, rsi
je 0x180004392
cmp qword [0x18003de40], 0xffffffffffffffff
je 0x180004392
xor eax, eax
mov qword [rsp + 0x3a], rax
mov dword [rsp + 0x42], eax
mov word [rsp + 0x46], ax
mov eax, 2
mov word [rsp + 0x38], ax
movzx ecx, r14w
call qword [sym.imp.WS2_32.dll_htons]
mov word [rsp + 0x3a], ax
mov dword [rsp + 0x3c], edi
mov edi, 3
lea r14d, [rdi - 2]
nop word [rax + rax]
mov dword [rsp + 0x28], socket
lea rax, [rsp + 0x38]
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r8d, ebp
mov rdx, rsi
mov rcx, qword [0x18003de40]
call qword [sym.imp.WS2_32.dll_sendto]
movzx ebx, bl
cmp eax, 0xffffffff
cmovne ebx, r14d
mov ecx, reloc.WS2_32.dll_sendto
call qword [sym.imp.KERNEL32.dll_Sleep]
add edi, 0xffffffff
jne 0x180004350
lea rcx, [0x18003f890]
call sub.KERNEL32.dll_LeaveCriticalSection
nop
movzx eax, bl
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.180012250
add rsp, 0x50
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret

Function at 0x1800043e0
Capabilities:
Get local ipv4 addresses
Get socket information

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x60
mov rax, qword [0x18003d4c8]
xor rax, rsp
mov qword [rsp + 0x50], rax
movzx esi, r8w
mov edi, edx
mov rbx, rcx
mov dword [rsp + 0x20], socket
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x40]
call qword [sym.imp.WS2_32.dll_getsockname]
cmp eax, 0xffffffff
je 0x18000446c
lea rcx, [rsp + 0x28]
call fcn.1800043c0
mov qword [rsp + 0x38], rbx
mov dword [rsp + 0x2c], edi
mov word [rsp + 0x30], si
movzx ecx, word [rsp + 0x42]
call qword [sym.imp.WS2_32.dll_htons]
mov word [rsp + 0x32], ax
lea rcx, str.127.0.0.1
call qword [sym.imp.WS2_32.dll_inet_addr]
mov r8d, eax
movzx r9d, word [0x18003f814]
mov edx, 0x18
lea rcx, [rsp + 0x28]
call fcn.1800042c0
jmp 0x18000446e
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.180012250
add rsp, 0x60
pop rdi
pop rsi
pop rbx
ret
Function at 0x18000b4e0
Capabilities:
Allocate or change rwx memory

Disassembly:
push rbp
push rdi
sub rsp, 0x28
mov ebp, edx
mov rdi, rcx
test rcx, rcx
je 0x18000b643
test edx, edx
je 0x18000b643
call fcn.18000b770
test al, al
je 0x18000b643
movsxd rcx, dword [rdi + 0x3c]
mov eax, 0x20b
mov r11d, dword [rdi + rcx + 0x50]
mov qword [rsp + 0x40], rbx
lea rbx, [rdi + rcx]
mov qword [rsp + 0x48], rsi
movzx esi, word [rbx + 6]
mov qword [rsp + 0x20], r15
lea r15d, [rsi*4 + 0x21]
cmp word [rbx + 0x18], ax
je 0x18000b545
lea r15d, [rsi*4 + 0x1f]
movzx eax, word [rbx + 0x14]
add r15d, esi
xor r8d, r8d
mov qword [rsp + 0x50], r14
mov r9d, r8d
lea r15d, [rcx + r15*8]
test esi, esi
je 0x18000b5aa
lea r10, [rbx + 0x24]
mov r14, rsi
add r10, rax
nop dword [rax]
mov edx, dword [r10 + 4]
mov ecx, edx
cmp dword [r10 - 4], edx
cmova ecx, dword [r10 - 4]
add ecx, dword [r10]
lea r10, [r10 + 0x28]
cmp r8d, ecx
cmovbe r8d, ecx
mov ecx, dword [r10 - 0x20]
add ecx, edx
cmp r9d, ecx
cmovbe r9d, ecx
sub r14, 1
jne 0x18000b570
cmp ebp, r9d
jb 0x18000b5cc
cmp r11d, r8d
jb 0x18000b5cc
mov r9d, 0x40
mov edx, r11d
mov r8d, 0x3000
mov r14d, r11d
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rbp, rax
test rax, rax
jne 0x18000b5e9
xor eax, eax
mov r14, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x40]
mov r15, qword [rsp + 0x20]
add rsp, 0x28
pop rdi
pop rbp
ret
mov r8, r14
xor edx, edx
mov rcx, rbp
call fcn.180015470
mov r8d, r15d
mov rdx, rdi
mov rcx, rbp
call fcn.1800133e0
movzx eax, word [rbx + 0x14]
test esi, esi
je 0x18000b63e
add rbx, 0x2c
add rbx, rax
nop dword [rax]
nop word [rax + rax]
mov edx, dword [rbx]
mov ecx, dword [rbx - 8]
add rdx, rdi
mov r8d, dword [rbx - 4]
add rcx, rbp
call fcn.1800133e0
lea rbx, [rbx + 0x28]
sub rsi, 1
jne 0x18000b620
mov rax, rbp
jmp 0x18000b5ce
xor eax, eax
add rsp, 0x28
pop rdi
pop rbp
ret

Function at 0x18000b770
Capabilities:
Parse pe header

Disassembly:
test rcx, rcx
jne 0x18000b779
xor al, al
jmp 0x18000b7a0
mov eax, 0x5a4d
cmp word [rcx], ax
je 0x18000b787
xor al, al
jmp 0x18000b7a0
movsxd rax, dword [rcx + 0x3c]
add rax, rcx
cmp dword [rax], 0x4550
je 0x18000b79a
xor al, al
jmp 0x18000b7a0
mov al, 1
jmp 0x18000b7a0
ret

Function at 0x18000b980
Capabilities:
Check if file exists
Get file attributes

Disassembly:
sub rsp, 0x28
cmp qword [rcx + 0x18], 8
jb 0x18000b98e
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x18000b9a4
test al, 0x10
jne 0x18000b9a4
mov al, 1
add rsp, 0x28
ret
xor al, al
add rsp, 0x28
ret
Function at 0x18000b9b0
Capabilities:
Get file size
Read file via mapping

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x40
xor ebp, ebp
mov qword [r8], 0xffffffffffffffff
mov qword [r9], rbp
mov rdi, r9
cmp qword [rcx + 0x18], 8
mov rbx, r8
mov rsi, rdx
jb 0x18000b9e3
mov rcx, qword [rcx]
xor r9d, r9d
mov qword [rsp + 0x30], rbp
mov dword [rsp + 0x28], ebp
mov edx, 0x80000000
mov dword [rsp + 0x20], 3
lea r8d, [r9 + 1]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [rbx], rax
cmp rax, 0xffffffffffffffff
je 0x18000ba63
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [rsi], eax
dec eax
cmp eax, 0xfffffffd
ja 0x18000ba63
mov rcx, qword [rbx]
xor r9d, r9d
mov qword [rsp + 0x28], rbp
xor edx, edx
mov dword [rsp + 0x20], ebp
lea r8d, [r9 + 2]
call qword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov qword [rdi], rax
test rax, rax
je 0x18000ba63
xor r9d, r9d
mov qword [rsp + 0x20], rbp
xor r8d, r8d
mov rcx, rax
lea edx, [r9 + 4]
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
test rax, rax
jne 0x18000ba82
mov rcx, qword [rdi]
test rcx, rcx
je 0x18000ba71
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x18000ba80
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x40
pop rdi
ret

Function at 0x18000cf50
Capabilities:
Allocate or change rwx memory

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
movsxd rdi, r8d
lea r9, [rsp + 0x40]
mov rsi, rdx
mov r8d, 0x40
mov rdx, rdi
mov rbx, rcx
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x18000cfb6
mov r8, rdi
mov rdx, rsi
mov rcx, rbx
call fcn.1800133e0
mov r8d, dword [rsp + 0x40]
lea r9, [rsp + 0x40]
mov rdx, rdi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov al, 1
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov rbx, qword [rsp + 0x30]
xor al, al
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x18000e1f0
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
cmp qword [rcx + 0x18], 0x10
mov r9, rcx
mov r10, qword [rcx + 0x10]
jb 0x18000e201
mov r9, qword [rcx]
not edx
test r10, r10
je 0x18000e230
lea r11, [0x18003d030]
nop
movzx ecx, byte [r9]
lea r9, [r9 + 1]
mov eax, edx
xor rcx, rax
shr eax, 8
movzx r8d, cl
mov edx, dword [r11 + r8*4]
xor edx, eax
sub r10, 1
jne 0x18000e210
not edx
mov eax, edx
ret

Function at 0x18000fec0
Capabilities:
Allocate or change rwx memory

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x50
add rdx, 0xffffffffffff0000
mov rdi, rcx
movzx eax, dx
mov rbx, rdx
sub rbx, rax
test rax, rax
cmove rbx, rdx
cmp rbx, rcx
jbe 0x18000ffa2
nop dword [rax]
cmp rbx, qword [0x18003d438]
jb 0x18000ff0e
cmp rbx, qword [0x18003d440]
ja 0x18000ff0e
sub rbx, 0x8000000
jmp 0x18000ff99
xor eax, eax
lea rdx, [rsp + 0x20]
mov rcx, rbx
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], rax
lea r8d, [rax + 0x30]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rax
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
test rax, rax
je 0x18000ffa2
cmp dword [rsp + 0x40], 0x10000
jne 0x18000ff82
cmp qword [rsp + 0x38], 0x10000
jb 0x18000ff82
mov edx, 0x10000
mov r9d, 0x40
mov r8d, 0x3000
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
test rax, rax
jne 0x18000ffa4
sub rbx, 0x10000
jmp 0x18000ff99
mov rbx, qword [rsp + 0x28]
add rbx, 0xffffffffffff0000
movzx eax, bx
test rax, rax
je 0x18000ff99
sub rbx, rax
cmp rbx, rdi
ja 0x18000fef0
xor eax, eax
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop rdi
ret

Function at 0x18000ffb0
Capabilities:
Allocate or change rwx memory

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x50
movzx eax, cx
mov rdi, rdx
mov rbx, rcx
test rax, rax
je 0x18000ffd2
sub rbx, rax
add rbx, 0x10000
cmp rbx, rdi
jae 0x180010099
nop dword [rax + rax]
cmp rbx, qword [0x18003d438]
jb 0x18000fffe
cmp rbx, qword [0x18003d440]
ja 0x18000fffe
add rbx, 0x8000000
jmp 0x180010090
xor eax, eax
lea rdx, [rsp + 0x20]
mov rcx, rbx
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], rax
lea r8d, [rax + 0x30]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rax
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
test rax, rax
je 0x180010099
cmp dword [rsp + 0x40], 0x10000
mov rcx, qword [rsp + 0x38]
jne 0x180010075
cmp rcx, 0x10000
jb 0x180010075
mov edx, 0x10000
mov r9d, 0x40
mov r8d, 0x3000
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
test rax, rax
jne 0x18001009b
add rbx, 0x10000
jmp 0x180010090
mov rbx, qword [rsp + 0x20]
add rbx, rcx
movzx ecx, bx
test rcx, rcx
je 0x180010090
mov eax, 0x10000
sub rax, rcx
add rbx, rax
cmp rbx, rdi
jb 0x18000ffe0
xor eax, eax
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop rdi
ret
Function at 0x1800100b0
Capabilities:
Hook routines via microsoft detours

Disassembly:
mov qword [rsp + 0x18], rbx
push rdi
sub rsp, 0x20
lea rdi, [rcx - 0x7ff80000]
mov rbx, rcx
cmp rcx, 0x7ff80000
ja 0x1800100d2
mov edi, 0x80000
mov qword [rsp + 0x38], rsi
lea rsi, [rcx + 0x7ff80000]
cmp rbx, 0xffffffff80000000
jb 0x1800100ee
mov rsi, 0xfffffffffff80000
movzx eax, byte [rcx]
cmp al, 0xff
jne 0x180010105
cmp byte [rcx + 1], 0x25
jne 0x180010105
movsxd rax, dword [rcx + 2]
add rcx, 6
jmp 0x180010111
cmp al, 0xe9
jne 0x180010149
movsxd rax, dword [rcx + 1]
add rcx, 5
add rcx, rax
cmp rcx, rbx
jae 0x180010134
cmp rcx, 0xffffffff80000000
jae 0x18001012b
lea rsi, [rcx + 0x7ff80000]
jmp 0x180010149
mov rsi, 0xfffffffffff80000
jmp 0x180010149
lea rdi, [rcx - 0x7ff80000]
cmp rcx, 0x7ff80000
ja 0x180010149
mov edi, 0x80000
mov rdx, qword [0x18003e070]
mov rax, qword [0x18003e060]
mov qword [rsp + 0x30], rbp
test rdx, rdx
jne 0x180010170
test rax, rax
je 0x180010187
mov rdx, rax
mov qword [0x18003e070], rax
mov rcx, qword [rdx + 0x10]
test rcx, rcx
je 0x180010187
cmp rcx, rdi
jb 0x180010187
cmp rcx, rsi
jbe 0x1800102ca
mov qword [0x18003e070], rax
mov rdx, rax
test rax, rax
je 0x1800101c2
test rax, rax
je 0x1800101b2
mov rax, qword [rdx + 0x10]
test rax, rax
je 0x1800101b2
cmp rax, rdi
jb 0x1800101b2
cmp rax, rsi
jbe 0x1800102ca
mov rdx, qword [rdx + 8]
mov qword [0x18003e070], rdx
test rdx, rdx
jne 0x18001019b
movzx eax, bx
sub rbx, rax
cmp rbx, 0x40000000
jbe 0x1800101ec
lea rdx, [rbx - 0x40000000]
mov rcx, rdi
call fcn.18000fec0
mov rdx, rax
test rax, rax
jne 0x180010278
movabs rbp, 0xffffffff40000000
cmp rbx, rbp
jae 0x180010212
lea rcx, [rbx + 0x40000000]
mov rdx, rsi
call fcn.18000ffb0
mov rdx, rax
test rax, rax
jne 0x180010278
cmp rbx, 0x40000000
jbe 0x180010232
lea rcx, [rbx - 0x40000000]
mov rdx, rbx
call fcn.18000ffb0
mov rdx, rax
test rax, rax
jne 0x180010278
cmp rbx, rbp
jae 0x18001024e
lea rdx, [rbx + 0x40000000]
mov rcx, rbx
call fcn.18000fec0
mov rdx, rax
test rax, rax
jne 0x180010278
mov rdx, rbx
mov rcx, rdi
call fcn.18000fec0
mov rdx, rax
test rax, rax
jne 0x180010278
mov rdx, rsi
mov rcx, rbx
call fcn.18000ffb0
mov rdx, rax
test rax, rax
je 0x1800102f6
mov dword [rdx], 0x52727464
lea rcx, [rdx + 0xffa8]
xor r8d, r8d
mov qword [0x18003e070], rdx
mov qword [rdx + 0x10], r8
mov r9d, 0x2a7
mov rax, qword [0x18003e060]
mov qword [rdx + 8], rax
lea rax, [rdx + 0xff60]
mov qword [0x18003e060], rdx
mov qword [rcx], r8
lea rcx, [rcx - 0x60]
mov r8, rax
sub rax, 0x60
sub r9, 1
jne 0x1800102b2
mov qword [rdx + 0x10], r8
mov rbx, qword [rdx + 0x10]
cmp rbx, rdi
jb 0x1800102f6
cmp rbx, rsi
ja 0x1800102f6
mov rcx, qword [rbx + 0x48]
mov qword [rdx + 0x10], rcx
mov edx, 0xcc
mov rcx, rbx
lea r8d, [rdx - 0x6c]
call fcn.180015470
mov rax, rbx
jmp 0x1800102f8
xor eax, eax
mov rsi, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
Function at 0x180010370
Capabilities:
Hook routines via microsoft detours

Disassembly:
push rbx
sub rsp, 0x20
mov rcx, qword [0x18003e060]
lea rbx, [0x18003e060]
test rcx, rcx
je 0x180010401
mov qword [rsp + 0x30], rdi
xor edi, edi
cmp dword [rcx], 0x52727464
jne 0x1800103f0
lea r9, [rcx + 0x10000]
mov r8d, edi
lea rdx, [rcx + 0xa8]
nop dword [rax]
mov rax, qword [rdx]
test rax, rax
je 0x1800103c2
cmp rax, rcx
jb 0x1800103f0
cmp rax, r9
jae 0x1800103f0
inc r8d
add rdx, 0x60
cmp r8d, 0x2a9
jb 0x1800103b0
mov rax, qword [rcx + 8]
xor edx, edx
mov r8d, 0x8000
mov qword [rbx], rax
call qword [sym.imp.KERNEL32.dll_VirtualFree]
mov qword [0x18003e070], rdi
jmp 0x1800103f4
lea rbx, [rcx + 8]
mov rcx, qword [rbx]
test rcx, rcx
jne 0x180010390
mov rdi, qword [rsp + 0x30]
add rsp, 0x20
pop rbx
ret

Function at 0x180010610
Capabilities:
Parse pe header

Disassembly:
push rbx
sub rsp, 0x50
mov rbx, rdx
mov r8d, 0x30
lea rdx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
nop
mov eax, 0x5a4d
mov rcx, qword [rsp + 0x28]
cmp word [rcx], ax
je 0x18001063e
xor al, al
jmp 0x18001067c
movsxd rdx, dword [rcx + 0x3c]
cmp dword [rdx + rcx], 0x4550
je 0x18001064f
xor al, al
jmp 0x18001067c
mov r8d, dword [rdx + rcx + 0xe8]
lea rax, [r8 + rcx]
cmp rbx, rax
jb 0x180010676
mov eax, dword [rdx + rcx + 0xec]
add rax, r8
add rax, rcx
cmp rbx, rax
jae 0x180010676
mov al, 1
jmp 0x18001067c
xor al, al
jmp 0x18001067c
add rsp, 0x50
pop rbx
ret