joyce8/EMBER2024-capa huggingface dataset:
Function at 0x444a60
Capabilities:
Encode data using base64

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x444bc7
push rbp
mov rbp, rsp
sub rsp, 0x18
mov ecx, dword [rax + 0x190]
mov edx, dword [rax + 0x194]
mov rsi, qword [rax + 0x998]
mov edi, dword [rax + 0x194]
cmp edi, edx
jne 0x444a72
cmp edx, ecx
jne 0x444bb5
nop word [rax + rax]
test rsi, rsi
jne 0x444bb5
mov qword [rsp + 0x28], rax
test rbx, rbx
jne 0x444ad4
nop
call fcn.00465da0
xorps xmm15, xmm15
mov r14, qword [0x0060f748]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rbx, qword [rsp]
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x10], rbx
call fcn.00444980
mov rcx, qword [rsp + 0x28]
mov edx, dword [rcx]
mov ebx, edx
sar edx, 0x1f
shr edx, 0x1b
add edx, ebx
mov esi, edx
and edx, 0xffffffe0
sub ebx, edx
test ebx, ebx
jl 0x444bb0
mov rdx, qword [0x005bc458]
sar esi, 5
mov rax, rcx
mov ecx, ebx
mov edi, 1
shl edi, cl
movsxd rsi, esi
cmp ecx, 0x20
sbb r8d, r8d
and edi, r8d
cmp rdx, rsi
jbe 0x444ba5
mov rcx, qword [0x005bc450]
lea rcx, [rcx + rsi*4]
lock or dword [rcx], edi
mov rcx, qword [0x005bd190]
mov qword [rax + 8], rcx
mov rcx, rax
nop
mov qword [0x005bd190], rax
nop
mov edx, 1
lea rsi, [0x005bd198]
lock xadd dword [rsi], edx
mov rdx, qword [rcx + 0x1228]
shr rdx, 0x3d
test dl, dl
jne 0x444b93
mov rax, qword [rsp + 0x10]
movabs rdx, 0x1fffffffffffffff
and rdx, rax
bts rdx, 0x3f
nop
nop
xchg qword [rcx + 0x1228], rdx
add rsp, 0x18
pop rbp
ret
lea rax, [0x004fce6d]
mov ebx, 0x28
nop
call fcn.00435f60
mov rax, rsi
mov rcx, rdx
call fcn.00464500
call fcn.004344e0
lea rax, [0x004fc07f]
mov ebx, 0x23
call fcn.00435f60
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call fcn.00462280
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
jmp fcn.00444a60
Function at 0x459300
Capabilities:
Access peb ldr_data

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x4593af
push rbp
mov rbp, rsp
sub rsp, 0x58
mov qword [rsp + 0x70], rbx
lea rdx, [rsp + 0x68]
mov qword [rsp + 8], 0
movups xmmword [rsp + 0x10], xmm15
movups xmmword [rsp + 0x18], xmm15
movups xmmword [rsp + 0x28], xmm15
movups xmmword [rsp + 0x38], xmm15
movups xmmword [rsp + 0x48], xmm15
lea rsi, [0x00459400]
mov qword [rsp + 0x10], rsi
mov rsi, qword [rsp + 0x60]
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdx
mov rdx, r14
mov qword [rsp + 0x28], rdx
lea rdx, [rsp + 8]
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x40], rbx
lea rax, [rsp + 0x10]
mov qword [rsp], rax
call fcn.00462140
xorps xmm15, xmm15
mov r14, qword [0x0060f748]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rax, qword [rsp + 8]
add rsp, 0x58
pop rbp
ret
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
call fcn.00462280
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
nop dword [rax]
jmp fcn.00459300
Function at 0x464060
Capabilities:
Encrypt data using aes via x86 extensions

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x4036e3
push rbp
mov rbp, rsp
sub rsp, 0x18
mov rdx, qword [rax]
mov rcx, qword [rax + 8]
mov rax, rdx
call fcn.00409120
add rsp, 0x18
pop rbp
ret
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call fcn.00462280
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
jmp 0x4036c0
cmp byte [0x0060f50b], 0
je 0x464075
mov rcx, qword [rax + 8]
mov rax, qword [rax]
jmp 0x4612c0
jmp 0x4036c0

Function at 0x464080
Capabilities:
Encrypt data using aes via x86 extensions

Disassembly:
nop
mov eax, dword [rax]
movabs rcx, 0xe7037ed1a0b428db
xor rcx, rax
xor rax, rbx
xor rax, qword [0x0060f880]
movabs rdx, 0xa0761d6478bd642f
xor rdx, rax
mov rax, rcx
mul rdx
xor rax, rdx
mov rcx, rax
movabs rax, 0x1d8e4e27c47d124b
mul rcx
xor rax, rdx
nop
nop
ret
cmp byte [0x0060f50b], 0
je 0x4640b5
movq xmm0, rbx
pinsrd xmm0, dword [rax], 2
aesenc xmm0, xmmword [0x0060fb40]
aesenc xmm0, xmmword [0x0060fb50]
aesenc xmm0, xmmword [0x0060fb60]
movq rax, xmm0
ret
jmp 0x409340

Function at 0x4640c0
Capabilities:
Encrypt data using aes via x86 extensions

Disassembly:
nop
mov rax, qword [rax]
movabs rcx, 0xe7037ed1a0b428db
xor rcx, rax
xor rax, rbx
xor rax, qword [0x0060f880]
movabs rdx, 0xa0761d6478bd642f
xor rdx, rax
mov rax, rcx
mul rdx
xor rax, rdx
mov rcx, rax
movabs rax, 0x1d8e4e27c47d1247
mul rcx
xor rax, rdx
nop
nop
ret
cmp byte [0x0060f50b], 0
je 0x4640f6
movq xmm0, rbx
pinsrq xmm0, qword [rax], 1
aesenc xmm0, xmmword [0x0060fb40]
aesenc xmm0, xmmword [0x0060fb50]
aesenc xmm0, xmmword [0x0060fb60]
movq rax, xmm0
ret
jmp 0x4093a0

Function at 0x465e00
Capabilities:
Allocate thread local storage

Disassembly:
push rbp
mov rbp, rsp
mov rax, rsp
and rsp, 0xfffffffffffffff0
sub rsp, 0x30
mov qword [rsp + 0x20], rax
mov rax, qword [sym.imp.kernel32.dll_TlsAlloc]
call rax
mov rsp, qword [rsp + 0x20]
mov rcx, rax
cmp rcx, 0x40
jb 0x465e34
mov rcx, 0x28
jmp 0x465e3f
shl rcx, 3
add rcx, 0x1480
mov qword [0x0060f748], rcx
pop rbp
ret
Function at 0x4700c0
Capabilities:
Hash data using fnv

Disassembly:
test byte [rax], al
mov rcx, rbx
and ebx, 0x7f
shl rbx, 5
lea rdx, [rax + rbx]
xor eax, eax
jmp 0x4700d7
inc rax
cmp rax, 4
jge 0x4700ef
lea rbx, [rdx + rax*8]
mov rbx, qword [rbx]
cmp rbx, rcx
jne 0x4700d4
mov eax, 1
ret
xor eax, eax
movabs rbx, 0xcbf29ce484222325
jmp 0x470100
inc rax
cmp rax, 4
jge 0x47010e
mov rsi, qword [rdx + rax*8]
xor edi, edi
jmp 0x470137
and ebx, 3
lea rdx, [rdx + rbx*8]
xchg qword [rdx], rcx
xor eax, eax
ret
movzx r8d, sil
xor rbx, r8
inc rdi
shr rsi, 8
movabs r8, 0x100000001b3
imul rbx, r8
cmp rdi, 8
jl 0x47011b
jmp 0x4700fd

Function at 0x477980
Capabilities:
Access peb ldr_data

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x477a4a
push rbp
mov rbp, rsp
sub rsp, 0x48
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x58], rax
mov qword [rsp], rax
mov qword [rsp + 8], rbx
mov byte [rsp + 0x10], 0
call fcn.004035a0
xorps xmm15, xmm15
mov r14, qword [0x0060f748]
mov r14, qword gs:[r14]
mov r14, qword [r14]
cmp qword [rsp + 0x18], 0xffffffffffffffff
jne 0x477a2f
mov rcx, qword [rsp + 0x60]
lea rdx, [rcx + 1]
mov qword [rsp + 0x40], rdx
lea rax, [0x004d3ca0]
xor ebx, ebx
mov rcx, rdx
call fcn.0044a400
mov rbx, qword [rsp + 0x60]
mov rcx, rax
xor edi, edi
mov rsi, qword [rsp + 0x40]
mov rax, qword [rsp + 0x58]
nop dword [rax]
call fcn.00479280
inc rbx
cmp rcx, rbx
jae 0x477a1e
mov edi, 1
lea rsi, [0x004d3ca0]
call fcn.0044a4e0
mov word [rax + rbx*2 - 2], 0
xor edi, edi
xor esi, esi
add rsp, 0x48
pop rbp
ret
xor eax, eax
xor ebx, ebx
mov rcx, rbx
lea rdi, [0x0051dbb8]
lea rsi, [0x0051d5c0]
add rsp, 0x48
pop rbp
ret
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call fcn.00462280
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
jmp fcn.00477980
Function at 0x49f480
Capabilities:
Access peb ldr_data

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x49f5ce
push rbp
mov rbp, rsp
sub rsp, 0x68
movups xmmword [rsp + 0x40], xmm15
mov qword [rsp + 0x30], 0
mov rax, qword [0x005b4970]
call fcn.00470340
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x38], rax
movups xmmword [rsp + 0x50], xmm15
mov qword [rsp + 0x60], 0
lea rcx, [0x0049f5e0]
mov qword [rsp + 0x50], rcx
lea rcx, [rsp + 0x30]
mov qword [rsp + 0x58], rcx
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x60], rcx
mov qword [rsp], rax
mov qword [rsp + 8], rbx
mov byte [rsp + 0x10], 0x2b
call fcn.004035a0
xorps xmm15, xmm15
mov r14, qword [0x0060f748]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rcx, qword [rsp + 0x18]
cmp rcx, 0xffffffffffffffff
je 0x49f592
mov rdx, qword [rsp + 0x28]
nop dword [rax + rax]
cmp rdx, rcx
jb 0x49f5c8
mov qword [rsp + 0x20], rcx
mov rsi, qword [rsp + 0x50]
mov rax, qword [rsp + 0x38]
mov rbx, rcx
lea rdx, [rsp + 0x50]
call rsi
mov rax, qword [rsp + 0x20]
lea rcx, [rax + 1]
mov rbx, qword [rsp + 0x28]
cmp rbx, rcx
jb 0x49f5bd
mov rsi, qword [rsp + 0x50]
sub rbx, rax
dec rbx
mov rdi, rbx
neg rdi
sar rdi, 0x3f
and rcx, rdi
mov rdi, qword [rsp + 0x38]
lea rax, [rdi + rcx]
lea rdx, [rsp + 0x50]
call rsi
mov rcx, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x40]
add rsp, 0x68
pop rbp
ret
mov rcx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x28]
lea rdx, [rsp + 0x50]
call rcx
mov rcx, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x40]
add rsp, 0x68
pop rbp
ret
mov rax, rcx
mov rcx, rbx
call fcn.004645c0
call fcn.00464540
nop
call fcn.00462280
jmp fcn.0049f480
Function at 0x4b93a0
Capabilities:
Access peb ldr_data

Disassembly:
lea r12, [rsp - 0x30]
cmp r12, qword [r14 + 0x10]
jbe 0x4b95e9
push rbp
mov rbp, rsp
sub rsp, 0xa8
nop word [rax + rax]
test rax, rax
je 0x4b95d4
mov qword [rsp + 0xb8], rax
mov rbx, qword [rax + 8]
test rbx, rbx
jne 0x4b93e2
xor ebx, ebx
xor ecx, ecx
nop
jmp 0x4b93fc
mov rdx, qword [rax]
mov rcx, qword [rax + 0x10]
mov rax, rdx
call fcn.004ac1a0
mov rcx, rax
mov rax, qword [rsp + 0xb8]
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x48], rbx
cmp qword [rax + 0x28], 0
je 0x4b9511
mov rcx, qword [rax + 0x18]
mov rax, rcx
nop dword [rax + rax]
call fcn.0046dd80
mov qword [rsp + 0x98], rax
mov qword [rsp + 0x58], rbx
mov rcx, qword [rsp + 0xb8]
mov r8, qword [rcx + 0x20]
mov r9, qword [rcx + 0x28]
mov rcx, qword [rsp + 0x48]
lea rdi, [0x0051c808]
mov esi, 1
lea rax, [rsp + 0x68]
mov rbx, qword [rsp + 0x88]
call fcn.0044e280
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0x60], rbx
mov qword [rsp], rax
mov qword [rsp + 8], rbx
mov byte [rsp + 0x10], 0x3a
call fcn.004035a0
xorps xmm15, xmm15
mov r14, qword [0x0060f748]
mov r14, qword gs:[r14]
mov r14, qword [r14]
cmp qword [rsp + 0x18], 0
jl 0x4b94db
xor eax, eax
lea rbx, [0x004f4a5a]
mov ecx, 1
mov rdi, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0x60]
lea r8, [0x004f4a72]
mov r9d, 2
mov r10, qword [rsp + 0x98]
mov r11, qword [rsp + 0x58]
call fcn.0044e340
jmp 0x4b9508
xor eax, eax
mov rbx, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x60]
lea rdi, [0x0051c7f8]
mov esi, 1
mov r8, qword [rsp + 0x98]
mov r9, qword [rsp + 0x58]
call fcn.0044e280
add rsp, 0xa8
pop rbp
ret
mov rax, qword [rax + 0x18]
call fcn.0046dd80
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x50], rbx
mov rcx, qword [rsp + 0x88]
mov qword [rsp], rcx
mov rdx, qword [rsp + 0x48]
mov qword [rsp + 8], rdx
mov byte [rsp + 0x10], 0x3a
call fcn.004035a0
xorps xmm15, xmm15
mov r14, qword [0x0060f748]
mov r14, qword gs:[r14]
mov r14, qword [r14]
cmp qword [rsp + 0x18], 0
nop
jl 0x4b959e
xor eax, eax
lea rbx, [0x004f4a5a]
mov ecx, 1
mov rdi, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x48]
lea r8, [0x004f4a72]
mov r9d, 2
mov r10, qword [rsp + 0x90]
mov r11, qword [rsp + 0x50]
call fcn.0044e340
jmp 0x4b95cb
xor eax, eax
mov rbx, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x48]
lea rdi, [0x0051c7f8]
mov esi, 1
mov r8, qword [rsp + 0x90]
mov r9, qword [rsp + 0x50]
call fcn.0044e280
add rsp, 0xa8
pop rbp
ret
lea rax, [0x004f4d42]
mov ebx, 5
add rsp, 0xa8
pop rbp
ret
mov qword [rsp + 8], rax
call fcn.00462280
mov rax, qword [rsp + 8]
jmp fcn.004b93a0
Function at 0x12c94
Capabilities:
Set registry value

Disassembly:
mov r11, rsp
mov qword [r11 + 0x10], rbx
mov qword [r11 + 0x18], rsi
push rdi
sub rsp, 0x80
and dword [r11 + 8], 0
mov dword [rsp + 0x48], 0x30
and qword [r11 - 0x38], 0
mov dword [rsp + 0x60], 0x240
and qword [r11 - 0x20], 0
and qword [r11 - 0x18], 0
lea rax, [r11 + 8]
mov qword [r11 - 0x30], rcx
mov edi, r8d
mov qword [r11 - 0x58], rax
and dword [rsp + 0x28], 0
and qword [r11 - 0x68], 0
mov rbx, r9
mov rsi, rdx
lea rcx, [r11 - 0x48]
lea r8, [r11 - 0x40]
xor r9d, r9d
mov edx, 0x20006
call qword [sym.imp.ntoskrnl.exe_ZwCreateKey]
test eax, eax
js 0x12d42
mov eax, dword [rsp + 0xb0]
mov rcx, qword [rsp + 0x40]
mov r9d, edi
mov dword [rsp + 0x28], eax
xor r8d, r8d
mov rdx, rsi
mov qword [rsp + 0x20], rbx
call qword [sym.imp.ntoskrnl.exe_ZwSetValueKey]
mov rcx, qword [rsp + 0x40]
mov ebx, eax
call qword [sym.imp.ntoskrnl.exe_ZwFlushKey]
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ntoskrnl.exe_ZwClose]
mov eax, ebx
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rsp, r11
pop rdi
ret

Function at 0x12d60
Capabilities:
Query or enumerate registry value

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x70
and qword [rax - 0x58], 0
and qword [rax - 0x40], 0
and qword [rax - 0x38], 0
mov rbp, r8
mov qword [rax - 0x50], rcx
mov r14, rdx
lea r8, [rax - 0x60]
lea rcx, [rax - 0x68]
mov edx, 0x20019
mov r13, r9
mov dword [rax - 0x60], 0x30
mov dword [rax - 0x48], 0x240
call qword [sym.imp.ntoskrnl.exe_ZwOpenKey]
test eax, eax
js 0x12e8c
mov rsi, qword [rsp + 0xc0]
xor ecx, ecx
mov r8d, 0x72647268
mov ebx, dword [rsi]
add ebx, 0x10
mov edx, ebx
mov r12d, ebx
and rdx, 0xfffffffffffffff0
add rdx, 0x10
call qword [sym.imp.ntoskrnl.exe_ExAllocatePoolWithTag]
mov rdi, rax
test rax, rax
jne 0x12df6
mov ebx, 0xc000009a
jmp 0x12e7f
mov r8, r12
xor edx, edx
mov rcx, rax
call fcn.0003bc80
mov rcx, qword [rsp + 0x30]
lea r11, [rsp + 0xa0]
mov qword [rsp + 0x28], r11
mov r9, rdi
mov r8d, 2
mov rdx, r14
mov dword [rsp + 0x20], ebx
call qword [sym.imp.ntoskrnl.exe_ZwQueryValueKey]
mov ebx, eax
cmp eax, 0xc0000023
je 0x12e65
cmp eax, 0x80000005
je 0x12e65
test eax, eax
js 0x12e71
test rbp, rbp
je 0x12e4a
mov ecx, dword [rdi + 4]
mov dword [rbp], ecx
mov eax, dword [rdi + 8]
lea rdx, [rdi + 0xc]
mov rcx, r13
cmp dword [rsi], eax
cmovb eax, dword [rsi]
mov r8d, eax
mov dword [rsi], eax
call fcn.0003a6f0
jmp 0x12e71
mov eax, dword [rsp + 0xa0]
add eax, 0xfffffff4
mov dword [rsi], eax
mov edx, 0x72647268
mov rcx, rdi
call qword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.ntoskrnl.exe_ZwClose]
mov eax, ebx
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsp, r11
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret
Function at 0x13ce8
Capabilities:
Hash data with crc32

Disassembly:
mov rax, rsp
push rbx
push rbp
push rsi
push rdi
push r12
sub rsp, 0x60
mov ebp, 0x80000
mov dword [rax + 0x10], 3
mov dword [rax + 8], ebp
call fcn.00012eac
lea edx, [rbp + 0x10]
xor ecx, ecx
mov r8d, 0x72647268
call qword [sym.imp.ntoskrnl.exe_ExAllocatePoolWithTag]
xor ebx, ebx
mov rdi, rax
cmp rax, rbx
je 0x13f17
mov r8, rbp
xor edx, edx
mov rcx, rax
call fcn.0003bc80
lea rdx, [0x00049480]
lea rcx, [rsp + 0x30]
call qword [sym.imp.ntoskrnl.exe_RtlInitUnicodeString]
lea rdx, [0x00049500]
lea rcx, [rsp + 0x50]
call qword [sym.imp.ntoskrnl.exe_RtlInitUnicodeString]
lea rdx, [0x00049580]
lea rcx, [rsp + 0x40]
call qword [sym.imp.ntoskrnl.exe_RtlInitUnicodeString]
mov r11d, dword [0x0004c2f0]
cmp r11d, ebx
je 0x13d81
cmp r11d, 0x20
jb 0x13e69
movabs rsi, 0xfffff78000000014
lea rdx, [rsp + 0xa8]
lea rcx, [rsp + 0xa0]
mov rax, qword [rsi]
mov qword [rsp + 0xa0], rax
mov rax, qword [rsi]
mov qword [rsp + 0xa0], rax
call qword [sym.imp.ntoskrnl.exe_ExSystemTimeToLocalTime]
mov eax, 0xaaaaaaab
mul edi
shr edx, 2
add edx, dword [rsp + 0xa8]
mov ecx, edx
call qword [sym.imp.ntoskrnl.exe_srand]
call qword [sym.imp.ntoskrnl.exe_rand]
cdq
and edx, 0x1f
add eax, edx
and eax, 0x1f
sub eax, edx
mov dword [0x0004c2f0], eax
jne 0x13e45
mov rax, qword [rsi]
lea rdx, [rsp + 0xa8]
lea rcx, [rsp + 0xa0]
mov qword [rsp + 0xa0], rax
call qword [sym.imp.ntoskrnl.exe_ExSystemTimeToLocalTime]
mov ecx, dword [rsp + 0xa8]
call qword [sym.imp.ntoskrnl.exe_srand]
call qword [sym.imp.ntoskrnl.exe_rand]
mov r11d, eax
mov eax, 0x84210843
imul r11d
add edx, r11d
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
imul edx, edx, 0x1f
sub r11d, edx
inc r11d
mov dword [0x0004c2f0], r11d
lea r9, [0x0004c2f0]
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x30]
mov r8d, 4
mov dword [rsp + 0x20], 4
call fcn.00012c94
lea rax, [rsp + 0x90]
lea r8, [rsp + 0x98]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x30]
mov r9, rdi
mov qword [rsp + 0x20], rax
call fcn.00012d60
mov esi, dword [rsp + 0x90]
mov r12d, eax
cmp esi, ebp
jbe 0x13eda
mov edx, 0x72647268
mov rcx, rdi
call qword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
mov rdx, rsi
xor ecx, ecx
and rdx, 0xfffffffffffffff0
mov r8d, 0x72647268
add rdx, 0x10
call qword [sym.imp.ntoskrnl.exe_ExAllocatePoolWithTag]
mov rdi, rax
cmp rax, rbx
je 0x13f4a
mov r8, rsi
xor edx, edx
mov rcx, rax
call fcn.0003bc80
cmp r12d, ebx
jl 0x13f09
mov r8d, dword [0x0004c2f0]
mov edx, esi
mov rcx, rdi
mov byte [0x0004754e], 1
call fcn.000185e4
movzx ecx, byte [0x0004754e]
cmp eax, ebx
cmove ecx, ebx
mov byte [0x0004754e], cl
mov edx, 0x72647268
mov rcx, rdi
call qword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
lea rcx, [0x0004f4a0]
mov eax, ebx
mov edx, 8
test al, 1
je 0x13f32
shr eax, 1
xor eax, 0xedb88320
jmp 0x13f34
shr eax, 1
sub rdx, 1
jne 0x13f25
inc ebx
mov dword [rcx], eax
add rcx, 4
cmp ebx, 0x100
jb 0x13f1e
add rsp, 0x60
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
Function at 0x141cc
Capabilities:
Check os version

Disassembly:
push rbx
sub rsp, 0x20
movabs rbx, 0xfffff78000000320
movabs rax, 0xfffff78000000014
lea rdx, [rsp + 0x40]
mov rbx, qword [rbx]
mov rax, qword [rax]
lea rcx, [rsp + 0x48]
mov qword [rsp + 0x48], rax
call qword [sym.imp.ntoskrnl.exe_ExSystemTimeToLocalTime]
lea rcx, [rsp + 0x38]
call fcn.00013f5c
lea rcx, [rsp + 0x30]
call sub.ntoskrnl.exe_RtlRandomEx
xor edx, edx
lea rcx, [0x0004fd00]
lea r11d, [rax + 3]
mov eax, ebx
mov ebx, 0x114
div r11d
movzx eax, byte [rsp + 0x39]
mov r8, rbx
add edx, eax
movzx eax, byte [rsp + 0x3d]
add edx, eax
movzx eax, byte [rsp + 0x3c]
add edx, eax
movzx eax, byte [rsp + 0x3b]
add edx, eax
movzx eax, byte [rsp + 0x3a]
add eax, dword [rsp + 0x40]
add eax, edx
xor edx, edx
mov dword [rsp + 0x40], eax
call fcn.0003bc80
lea rcx, [0x0004fd00]
mov dword [0x0004fd00], ebx
call qword [sym.imp.ntoskrnl.exe_RtlGetVersion]
test eax, eax
jne 0x14293
cmp dword [0x0004fd04], 6
jb 0x14293
mov ecx, dword [rsp + 0x40]
call qword [sym.imp.ntoskrnl.exe_srand]
call qword [sym.imp.ntoskrnl.exe_rand]
jmp 0x142c1
mov eax, dword [rsp + 0x40]
mov ecx, 0x3039
test eax, eax
jne 0x142ae
mov eax, dword [0x0004c308]
imul eax, eax, 0x41c64e6d
add eax, ecx
imul eax, eax, 0x3e39b193
sub ecx, eax
shr ecx, 0x10
and ecx, 0x7fff
mov eax, ecx
add rsp, 0x20
pop rbx
ret
Function at 0x14c5c
Capabilities:
Complete processing asynchronous io request

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov eax, dword [0x0004c320]
mov rbx, rdx
cmp eax, 6
jne 0x14c84
cmp dword [0x0004c324], 3
ja 0x14c8a
cmp eax, eax
jbe 0x14d0c
mov rdx, qword [rdx + 0xb8]
test rcx, rcx
je 0x14ce8
cmp rcx, qword [0x0004c340]
jne 0x14ce8
cmp byte [rdx], 0xe
mov r8, qword [rcx + 0x40]
jne 0x14ccb
mov eax, dword [rdx + 0x18]
sub eax, 0x12017
je 0x14cc1
cmp eax, 8
jne 0x14ccb
mov rdx, rbx
call fcn.000158f0
jmp 0x14d05
mov rdx, rbx
call fcn.00015d38
jmp 0x14d05
inc byte [rbx + 0x43]
lea rax, [rdx + 0x48]
mov rdx, rbx
mov qword [rbx + 0xb8], rax
mov rcx, qword [r8 + 0x13]
call qword [sym.imp.ntoskrnl.exe_IofCallDriver]
jmp 0x14d05
movzx eax, byte [rdx]
lea rdx, [0x0004c360]
mov r8, qword [rdx + rax*8]
test r8, r8
je 0x14e78
mov rdx, rbx
call r8
mov edi, eax
jmp 0x14e90
mov rdi, qword [rdx + 0xb8]
test rcx, rcx
je 0x14e5d
cmp rcx, qword [0x0004c340]
jne 0x14e5d
cmp byte [0x0004c2fc], 0
mov rsi, qword [rcx + 0x40]
je 0x14d53
inc byte [rdx + 0x43]
lea rax, [rdi + 0x48]
mov qword [rdx + 0xb8], rax
mov rcx, qword [rsi + 0x13]
call qword [sym.imp.ntoskrnl.exe_IofCallDriver]
jmp 0x14e92
cmp byte [rdi], 0
je 0x14e53
cmp byte [rdi], 0xf
je 0x14da9
cmp byte [rdi], 0x12
jne 0x14d99
mov rcx, qword [rdi + 0x30]
call qword [sym.imp.ntoskrnl.exe_MmIsAddressValid]
test al, al
je 0x14d99
mov rcx, qword [rdi + 0x30]
test rcx, rcx
je 0x14d99
mov rax, qword [rcx + 0x20]
sub rax, 1
je 0x14d94
cmp rax, 1
jne 0x14d99
call fcn.000146c0
jmp 0x14d99
call fcn.000144fc
inc byte [rbx + 0x43]
add qword [rbx + 0xb8], 0x48
mov rdx, rbx
jmp 0x14d44
movzx edx, byte [rdi + 1]
sub edx, 1
je 0x14e46
sub edx, 1
je 0x14df7
sub edx, 1
je 0x14dea
sub edx, 4
je 0x14dda
cmp edx, 4
jne 0x14d99
mov r8, rdi
mov rdx, rbx
call fcn.00015288
jmp 0x14e92
mov r8, rdi
mov rdx, rbx
call fcn.00015344
jmp 0x14e92
mov r8, rdi
mov rdx, rbx
call fcn.00014ea8
jmp 0x14d99
lea rcx, [0x0004f9b0]
call qword [sym.imp.ntoskrnl.exe_KeAcquireSpinLockRaiseToDpc]
mov r8, qword [rdi + 0x30]
mov rdx, qword [0x0004c330]
test r8, r8
je 0x14e32
test rdx, rdx
je 0x14e32
cmp qword [rdx + 8], r8
je 0x14e28
mov rdx, qword [rdx + 0x38]
test rdx, rdx
jne 0x14e19
test rdx, rdx
je 0x14e32
and qword [rdx + 0x18], 0
lea rcx, [0x0004f9b0]
mov dl, al
call qword [sym.imp.ntoskrnl.exe_KeReleaseSpinLock]
jmp 0x14d99
mov r8, rdi
mov rdx, rbx
call fcn.0001517c
jmp 0x14e92
mov r8, rdi
call fcn.000150ac
jmp 0x14e92
movzx eax, byte [rdi]
lea rdx, [0x0004c360]
mov r8, qword [rdx + rax*8]
test r8, r8
je 0x14e78
mov rdx, rbx
call r8
jmp 0x14e92
and qword [rbx + 0x38], 0
mov edi, 0xc0000010
xor edx, edx
mov rcx, rbx
mov dword [rbx + 0x30], edi
call qword [sym.imp.ntoskrnl.exe_IofCompleteRequest]
mov eax, edi
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x15d38
Capabilities:
Complete processing asynchronous io request

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x10], rdx
push rdi
push r12
push r13
sub rsp, 0x30
mov rbx, rdx
mov rax, qword [rcx + 0x40]
mov qword [rsp + 0x50], rax
mov r13, qword [rdx + 0xb8]
mov rsi, qword [r13 + 0x30]
test rsi, rsi
jne 0x15d70
xor edi, edi
jmp 0x15da6
lea rcx, [0x0004f9a8]
call qword [sym.imp.ntoskrnl.exe_KeAcquireSpinLockRaiseToDpc]
mov rdi, qword [0x0004c338]
test rdi, rdi
je 0x15d97
cmp qword [rdi], rsi
je 0x15d97
mov rdi, qword [rdi + 0x18]
test rdi, rdi
jne 0x15d89
mov dl, al
lea rcx, [0x0004f9a8]
call qword [sym.imp.ntoskrnl.exe_KeReleaseSpinLock]
mov r12d, dword [r13 + 0x10]
test rdi, rdi
je 0x15ed1
xor ecx, ecx
call qword [sym.imp.ntoskrnl.exe_IoIs32bitProcess]
test al, al
je 0x15e39
mov rsi, qword [r13 + 0x20]
mov rdx, r12
mov r8d, 4
mov rcx, rsi
call qword [sym.imp.ntoskrnl.exe_ProbeForRead]
nop
movsxd rsi, dword [rsi]
movsxd rdx, dword [rsi]
movsxd rcx, dword [rsi + 4]
mov r8d, 1
call qword [sym.imp.ntoskrnl.exe_ProbeForWrite]
nop
mov eax, dword [rsi]
cmp eax, dword [rdi + 0x10]
jb 0x15e17
mov r8, rax
movsxd rcx, dword [rsi + 4]
xor edx, edx
call fcn.0003bc80
mov r8d, dword [rdi + 0x10]
movsxd rcx, dword [rsi + 4]
mov rdx, qword [rdi + 8]
call fcn.0003a6f0
xor esi, esi
jmp 0x15e8f
mov dword [rbx + 0x30], 0xc0000023
and qword [rbx + 0x38], 0
mov esi, 0xc0000023
jmp 0x15eb6
mov rsi, qword [r13 + 0x20]
mov rdx, r12
mov r8d, 4
mov rcx, rsi
call qword [sym.imp.ntoskrnl.exe_ProbeForRead]
nop
mov rsi, qword [rsi]
mov r8d, 1
mov rdx, qword [rsi]
mov rcx, qword [rsi + 8]
call qword [sym.imp.ntoskrnl.exe_ProbeForWrite]
nop
mov eax, dword [rsi]
cmp eax, dword [rdi + 0x10]
jb 0x15ea5
mov r8, rax
xor edx, edx
mov rcx, qword [rsi + 8]
call fcn.0003bc80
mov r8d, dword [rdi + 0x10]
mov rdx, qword [rdi + 8]
mov rcx, qword [rsi + 8]
call fcn.0003a6f0
xor esi, esi
and dword [rbx + 0x30], 0
mov eax, dword [rdi + 0x10]
mov qword [rbx + 0x38], rax
mov rcx, qword [r13 + 0x30]
call fcn.00014860
jmp 0x15eb6
mov dword [rbx + 0x30], 0xc0000023
and qword [rbx + 0x38], 0
mov esi, 0xc0000023
mov dl, 2
mov rcx, rbx
call qword [sym.imp.ntoskrnl.exe_IofCompleteRequest]
mov eax, esi
jmp 0x15eee
inc byte [rbx + 0x43]
add qword [rbx + 0xb8], 0x48
mov rdx, rbx
mov rcx, qword [rsp + 0x50]
mov rcx, qword [rcx + 0x13]
call qword [sym.imp.ntoskrnl.exe_IofCallDriver]
mov rbx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
add rsp, 0x30
pop r13
pop r12
pop rdi
ret

Function at 0x160d4
Capabilities:
Encode data using xor

Disassembly:
or r8d, 0xffffffff
mov r9, rcx
test edx, edx
je 0x1610c
mov r10d, edx
movzx edx, byte [r9]
mov eax, r8d
mov ecx, r8d
xor rdx, rax
shr ecx, 8
inc r9
movzx eax, dl
lea rdx, [0x0004f4a0]
mov r8d, dword [rdx + rax*4]
xor r8d, ecx
sub r10, 1
jne 0x160e2
not r8d
mov eax, r8d
ret