joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140143a0c
Capabilities:
Contain obfuscated stackstrings

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
sub rsp, 0x78
mov rax, qword [0x1401980c8]
xor rax, rsp
mov qword [rsp + 0x68], rax
mov dword [rsp + 0x30], 0
call fcn.140001354
mov qword [rsp + 0x38], rax
cmp qword [rsp + 0x38], 0
je 0x140143bdd
mov eax, 1
imul rax, rax, 7
mov byte [rsp + rax + 0x50], WSAGetLastError
mov eax, 1
imul rax, rax, 0x11
mov byte [rsp + rax + 0x50], reloc.WS2_32.dll_WSAGetLastError
mov eax, 1
imul rax, rax, 0xb
mov byte [rsp + rax + 0x50], reloc.WS2_32.dll_WSAGetLastError
mov eax, 1
imul rax, rax, 4
mov byte [rsp + rax + 0x50], reloc.WS2_32.dll_WSAGetLastError
mov eax, 1
imul rax, rax, 1
mov byte [rsp + rax + 0x50], reloc.OLEAUT32.dll_VarCyFromR8
mov eax, 1
imul rax, rax, 5
mov byte [rsp + rax + 0x50], WSAGetLastError
mov eax, 1
imul rax, rax, 0
mov byte [rsp + rax + 0x50], 0x47
mov eax, 1
imul rax, rax, 0x13
mov qword [rsp + 0x40], rax
cmp qword [rsp + 0x40], 0x14
jae 0x140143aca
jmp 0x140143acf
call fcn.14008eff0
mov rax, qword [rsp + 0x40]
mov byte [rsp + rax + 0x50], 0
mov eax, 1
imul rax, rax, 0xd
mov byte [rsp + rax + 0x50], WSAGetLastError
mov eax, 1
imul rax, rax, 6
mov byte [rsp + rax + 0x50], reloc.OLEAUT32.dll_VarCyFromR8
mov eax, 1
imul rax, rax, 9
mov byte [rsp + rax + 0x50], WSAGetLastError
mov eax, 1
imul rax, rax, 0xf
mov byte [rsp + rax + 0x50], reloc.WS2_32.dll_WSACleanup
mov eax, 1
imul rax, rax, 3
mov byte [rsp + rax + 0x50], VarR8FromBool
mov eax, 1
imul rax, rax, 2
mov byte [rsp + rax + 0x50], reloc.WS2_32.dll_WSACleanup
mov eax, 1
imul rax, rax, 0x12
mov byte [rsp + rax + 0x50], WSAGetLastError
mov eax, 1
imul rax, rax, 8
mov byte [rsp + rax + 0x50], 0x49
mov eax, 1
imul rax, rax, 0xa
mov byte [rsp + rax + 0x50], 0x66
mov eax, 1
imul rax, rax, 0x10
mov byte [rsp + rax + 0x50], 0x69
mov eax, 1
imul rax, rax, 0xe
mov byte [rsp + rax + 0x50], VarCyFromR8
mov eax, 1
imul rax, rax, 0xc
mov byte [rsp + rax + 0x50], WSACleanup
lea rdx, [rsp + 0x50]
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x48], rax
cmp qword [rsp + 0x48], 0
je 0x140143bd2
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x20], rax
mov r9d, dword [rsp + 0x98]
mov r8, qword [rsp + 0x90]
mov edx, dword [rsp + 0x88]
mov rcx, qword [rsp + 0x80]
call qword [rsp + 0x48]
mov dword [rsp + 0x30], eax
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, dword [rsp + 0x30]
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.14008f320
add rsp, 0x78
ret
Function at 0x1406bf058
Capabilities:
Decompress data using aplib

Disassembly:
call fcn.1406bf1df
push r10
mov r10, rsp
push r10
mov rsi, qword [r10 + 0x10]
mov rdi, qword [r10 + 0x20]
cld
mov dl, 0x80
mov al, byte [rsi]
inc rsi
mov byte [rdi], al
inc rdi
mov ebx, 2
add dl, dl
jne 0x1406bf089
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x1406bf06f
add dl, dl
jne 0x1406bf096
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x1406bf0f6
xor eax, eax
add dl, dl
jne 0x1406bf0a5
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x1406bf1ad
add dl, dl
jne 0x1406bf0b6
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x1406bf0c3
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x1406bf0d0
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x1406bf0dd
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
je 0x1406bf0ea
push rdi
mov eax, eax
sub rdi, rax
mov al, byte [rdi]
pop rdi
mov byte [rdi], al
inc rdi
mov ebx, 2
jmp 0x1406bf07e
mov eax, 1
add dl, dl
jne 0x1406bf106
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x1406bf113
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x1406bf0fb
sub eax, ebx
mov ebx, 1
jne 0x1406bf14c
mov ecx, 1
add dl, dl
jne 0x1406bf12e
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x1406bf13b
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x1406bf123
push rsi
mov rsi, rdi
sub rsi, rbp
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x1406bf07e
dec eax
shl eax, 8
mov al, byte [rsi]
inc rsi
mov ebp, eax
mov ecx, 1
add dl, dl
jne 0x1406bf168
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x1406bf175
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x1406bf15d
cmp eax, 0x7d00
jae 0x1406bf19b
cmp eax, 0x500
jb 0x1406bf196
inc ecx
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x1406bf07e
cmp eax, 0x7f
ja 0x1406bf19e
add ecx, 2
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x1406bf07e
mov al, byte [rsi]
inc rsi
xor ecx, ecx
shr al, 1
je 0x1406bf1d2
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 0x1406bf07e
pop r10
sub rdi, qword [r10 + 0x20]
mov eax, edi
pop r10
ret 0x20
Function at 0x1400015b0
Capabilities:
Attach user process memory

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x50
mov rsi, r8
mov rbp, rdx
mov rbx, rcx
call qword [sym.imp.ntoskrnl.exe_PsGetProcessPeb]
mov rdi, rax
test rax, rax
je 0x140001627
lea rdx, [rsp + 0x20]
mov rcx, rbx
call qword [sym.imp.ntoskrnl.exe_KeStackAttachProcess]
mov rdi, qword [rdi + 0x18]
test rdi, rdi
je 0x140001617
add rdi, 0x10
mov rbx, qword [rdi]
jmp 0x140001612
lea rcx, [rbx + 0x58]
mov r8b, 1
mov rdx, rbp
call qword [sym.imp.ntoskrnl.exe_RtlCompareUnicodeString]
test eax, eax
je 0x14000163c
mov rbx, qword [rbx]
cmp rbx, rdi
jne 0x1400015fb
xor edi, edi
lea rcx, [rsp + 0x20]
call qword [sym.imp.ntoskrnl.exe_KeUnstackDetachProcess]
mov rax, rdi
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
add rsp, 0x50
pop rdi
ret
mov eax, dword [rbx + 0x40]
mov rdi, qword [rbx + 0x30]
mov qword [rsi], rax
jmp 0x140001619

Function at 0x140001648
Capabilities:
Get system information on windows

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
push rdi
sub rsp, 0x20
xor ebp, ebp
lea r9, [rax + 0x10]
mov rsi, rcx
mov dword [rax + 0x10], ebp
xor r8d, r8d
xor edx, edx
lea ebx, [rbp + 0xb]
mov ecx, ebx
call sub.ntoskrnl.exe_ZwQuerySystemInformation
mov eax, dword [rsp + 0x38]
test eax, eax
je 0x14000170e
mov edx, eax
xor ecx, ecx
mov r8d, 0x54697465
call qword [sym.imp.ntoskrnl.exe_ExAllocatePoolWithTag]
mov r8d, dword [rsp + 0x38]
lea r9, [rsp + 0x38]
mov rdx, rax
mov ecx, ebx
mov rdi, rax
call sub.ntoskrnl.exe_ZwQuerySystemInformation
test eax, eax
js 0x14000170e
mov r8d, dword [rdi]
mov ebx, ebp
mov ecx, ebp
test r8d, r8d
je 0x1400016f7
mov eax, ecx
mov r10, rsi
imul r11, rax, 0x128
lea rax, [rdi + 0x30]
add rax, r11
sub r10, rax
movzx edx, byte [rax]
movzx r9d, byte [rax + r10]
sub edx, r9d
jne 0x1400016e5
inc rax
test r9d, r9d
jne 0x1400016d0
test edx, edx
je 0x1400016f2
inc ecx
cmp ecx, r8d
jb 0x1400016ba
jmp 0x1400016f7
mov rbx, qword [r11 + rdi + 0x18]
xor edx, edx
mov rcx, rdi
call qword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
test rbx, rbx
cmove rbx, rbp
mov rax, rbx
jmp 0x140001710
xor eax, eax
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
Function at 0x140001754
Capabilities:
Enumerate processes via ntquerysysteminformation
Get system information on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov rsi, rcx
mov edx, 0x100000
xor ecx, ecx
mov r8d, 0x656e6f4e
call qword [sym.imp.ntoskrnl.exe_ExAllocatePoolWithTag]
mov rdi, rax
test rax, rax
jne 0x140001796
lea r8, [0x140002d80]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.ntoskrnl.exe_DbgPrintEx]
xor eax, eax
jmp 0x1400017ee
xor r9d, r9d
mov r8d, 0x100000
mov rdx, rdi
mov rbx, rdi
lea ecx, [r9 + 5]
call sub.ntoskrnl.exe_ZwQuerySystemInformation
test eax, eax
jns 0x1400017c8
mov r9d, eax
lea r8, [0x140002db0]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.ntoskrnl.exe_DbgPrintEx]
jmp 0x140001792
lea rcx, [rdi + 0x38]
jmp 0x1400017db
mov eax, dword [rbx]
test eax, eax
je 0x1400017fe
add rbx, rax
lea rcx, [rbx + 0x38]
mov r8b, 1
mov rdx, rsi
call qword [sym.imp.ntoskrnl.exe_RtlEqualUnicodeString]
test al, al
je 0x1400017ce
mov eax, dword [rbx + 0x50]
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov edx, 0x656e6f4e
mov rcx, rdi
call qword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
jmp 0x140001792

Function at 0x140001c88
Capabilities:
Find process by pid

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rsi
push rdi
sub rsp, 0x50
mov rbx, r9
mov rdi, r8
mov rsi, rdx
test rdx, rdx
je 0x140001d05
test r8, r8
je 0x140001d05
test rbx, rbx
je 0x140001d05
and qword [rax + 0x10], 0
lea rdx, [rax - 0x18]
call qword [sym.imp.ntoskrnl.exe_PsLookupProcessByProcessId]
call qword [sym.imp.ntoskrnl.exe_IoGetCurrentProcess]
mov rcx, qword [rsp + 0x40]
mov r9, rdi
mov r8, rax
mov rdx, rsi
lea rax, [rsp + 0x68]
mov qword [rsp + 0x30], rax
mov byte [rsp + 0x28], 0
mov qword [rsp + 0x20], rbx
call qword [sym.imp.ntoskrnl.exe_MmCopyVirtualMemory]
test eax, eax
jns 0x140001d17
mov r9d, eax
lea r8, [0x140002b00]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.ntoskrnl.exe_DbgPrintEx]
xor al, al
mov rbx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x70]
add rsp, 0x50
pop rdi
ret
mov al, 1
jmp 0x140001d07
Function at 0x140001d1c
Capabilities:
Attach user process memory
Find process by pid

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], r8
push rbp
push rsi
push rdi
sub rsp, 0x60
xor ebx, ebx
mov esi, r9d
mov rbp, rdx
test rcx, rcx
je 0x140001db4
test r8, r8
je 0x140001db4
test r9d, r9d
je 0x140001db4
mov edi, dword [rsp + 0xa0]
test edi, edi
je 0x140001db4
lea rdx, [rax + 8]
mov qword [rax + 8], rbx
call qword [sym.imp.ntoskrnl.exe_PsLookupProcessByProcessId]
test eax, eax
js 0x140001db0
mov rcx, qword [rsp + 0x80]
lea rdx, [rsp + 0x30]
call qword [sym.imp.ntoskrnl.exe_KeStackAttachProcess]
lea r9, [rsp + 0x90]
mov dword [rsp + 0x28], edi
xor r8d, r8d
mov dword [rsp + 0x20], esi
mov rdx, rbp
or rcx, 0xffffffffffffffff
call qword [sym.imp.ntoskrnl.exe_ZwAllocateVirtualMemory]
lea rcx, [rsp + 0x30]
mov ebx, eax
call qword [sym.imp.ntoskrnl.exe_KeUnstackDetachProcess]
mov rcx, qword [rsp + 0x80]
call qword [sym.imp.ntoskrnl.exe_ObfDereferenceObject]
mov eax, ebx
jmp 0x140001db9
mov eax, 0xc000000d
mov rbx, qword [rsp + 0x88]
add rsp, 0x60
pop rdi
pop rsi
pop rbp
ret

Function at 0x140001dcc
Capabilities:
Attach user process memory
Find process by pid

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rsi
mov qword [rax + 0x10], rdx
push rdi
sub rsp, 0x50
xor ebx, ebx
mov rsi, r9
mov edi, r8d
test rcx, rcx
je 0x140001e4a
test rdx, rdx
je 0x140001e4a
test r8d, r8d
je 0x140001e4a
lea rdx, [rax + 8]
mov qword [rax + 8], rbx
call qword [sym.imp.ntoskrnl.exe_PsLookupProcessByProcessId]
test eax, eax
js 0x140001e46
mov rcx, qword [rsp + 0x60]
lea rdx, [rsp + 0x20]
call qword [sym.imp.ntoskrnl.exe_KeStackAttachProcess]
mov r9d, edi
lea rdx, [rsp + 0x68]
mov r8, rsi
or rcx, 0xffffffffffffffff
call qword [sym.imp.ntoskrnl.exe_ZwFreeVirtualMemory]
lea rcx, [rsp + 0x20]
mov ebx, eax
call qword [sym.imp.ntoskrnl.exe_KeUnstackDetachProcess]
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.ntoskrnl.exe_ObfDereferenceObject]
mov eax, ebx
jmp 0x140001e4f
mov eax, 0xc000000d
mov rbx, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
add rsp, 0x50
pop rdi
ret
Function at 0x140001e60
Capabilities:
Attach user process memory
Find process by pid

Disassembly:
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
push rbp
push rbx
push rdi
mov rbp, rsp
sub rsp, 0x70
mov edi, r9d
test rcx, rcx
je 0x140001ef5
test rdx, rdx
je 0x140001ef5
test r8d, r8d
je 0x140001ef5
test r9d, r9d
je 0x140001ef5
xor ebx, ebx
lea rdx, [rbp - 0x40]
and qword [rbp - 0x40], rbx
call qword [sym.imp.ntoskrnl.exe_PsLookupProcessByProcessId]
test eax, eax
js 0x140001ef1
mov rcx, qword [rbp - 0x40]
lea rdx, [rbp - 0x38]
and dword [rbp + 0x20], ebx
call qword [sym.imp.ntoskrnl.exe_KeStackAttachProcess]
lea rax, [rbp + 0x20]
mov r9d, edi
lea r8, [rbp + 0x30]
mov qword [rsp + 0x20], rax
lea rdx, [rbp + 0x28]
or rcx, 0xffffffffffffffff
call qword [sym.imp.ntoskrnl.exe_ZwProtectVirtualMemory]
lea rcx, [rbp - 0x38]
mov ebx, eax
call qword [sym.imp.ntoskrnl.exe_KeUnstackDetachProcess]
test ebx, ebx
js 0x140001ee7
mov rdx, qword [rbp + 0x40]
mov ecx, dword [rbp + 0x20]
mov dword [rdx], ecx
mov rcx, qword [rbp - 0x40]
call qword [sym.imp.ntoskrnl.exe_ObfDereferenceObject]
mov eax, ebx
jmp 0x140001efa
mov eax, 0xc000000d
add rsp, 0x70
pop rdi
pop rbx
pop rbp
ret

Function at 0x140001f04
Capabilities:
Attach user process memory
Find process by pid

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rsi
push rdi
sub rsp, 0x90
mov rdi, r9
mov rsi, r8
mov rbx, rdx
test rdx, rdx
je 0x140001f93
test r8, r8
je 0x140001f93
test r9, r9
je 0x140001f93
lea rdx, [rax + 0x10]
call qword [sym.imp.ntoskrnl.exe_PsLookupProcessByProcessId]
mov rcx, qword [rsp + 0xa8]
lea rdx, [rsp + 0x60]
call qword [sym.imp.ntoskrnl.exe_KeStackAttachProcess]
and qword [rsp + 0x28], 0
lea r9, [rsp + 0x30]
xor r8d, r8d
mov qword [rsp + 0x20], 0x30
mov rdx, rbx
or rcx, 0xffffffffffffffff
call qword [sym.imp.ntoskrnl.exe_ZwQueryVirtualMemory]
test eax, eax
jns 0x140001faa
mov r9d, eax
lea r8, [0x140002b30]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.ntoskrnl.exe_DbgPrintEx]
lea rcx, [rsp + 0x60]
call qword [sym.imp.ntoskrnl.exe_KeUnstackDetachProcess]
xor al, al
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x20]
mov rsp, r11
pop rdi
ret
mov rdx, qword [rsp + 0x48]
lea rax, [rbx + rdi]
add rdx, qword [rsp + 0x30]
cmp rdx, rax
jb 0x140001f88
test dword [rsp + 0x50], 0x1000
je 0x140001f88
mov eax, dword [rsp + 0x54]
test eax, 0x101
jne 0x140001f88
test al, 0x40
jne 0x140001fe2
test al, al
js 0x140001fe2
test al, 4
jne 0x140001fe2
test al, 8
je 0x140001ff0
mov r8, rdi
mov rdx, rsi
mov rcx, rbx
call fcn.1400021c0
lea rcx, [rsp + 0x60]
call qword [sym.imp.ntoskrnl.exe_KeUnstackDetachProcess]
mov al, 1
jmp 0x140001f95
Function at 0x225a41500
Capabilities:
Access peb ldr_data

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x78
movzx edi, word [section..rdata]
mov rax, qword gs:[0x30]
mov rax, qword [rax + 0x60]
mov rax, qword [rax + 0x18]
mov rsi, r8
mov r8, r9
movq xmm1, rcx
mov rcx, rdx
mov rax, qword [rax + 0x20]
mov rbp, qword [rax]
mov rbx, qword [rbp - 0x10]
lea r9, [rbp - 0x10]
cmp rbp, rbx
je 0x225a4158d
nop word [rax + rax]
mov rax, qword [r9 + 0x60]
lea r10, [rax + 2]
movzx eax, word [rax]
test ax, ax
je 0x225a41582
mov edx, 0xe0e
nop dword [rax]
mov r11d, edx
add r10, 2
shl r11d, 6
add edx, r11d
add edx, eax
movzx eax, word [r10 - 2]
test ax, ax
jne 0x225a41560
cmp edx, 0x18cf5f14
je 0x225a415fd
mov r9, rbx
mov rbx, qword [r9]
cmp rbp, rbx
jne 0x225a41548
xor eax, eax
movq xmm0, rax
mov rdx, rsi
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0x60], 0
mov r9, qword [rsp + 0xc0]
punpcklqdq xmm0, xmm1
movaps xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0xc8]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
call fcn.225a416a0
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov edx, dword [r9 + 0x40]
mov rax, qword [r9 + 0x30]
cmp edx, 2
je 0x225a4158d
sub edx, 3
lea rdx, [rax + rdx + 1]
nop word [rax + rax]
cmp word [rax], di
je 0x225a4158f
add rax, 1
cmp rax, rdx
jne 0x225a41618
jmp 0x225a4158d
Function at 0x225a41ea0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
mov rax, qword [str.kernel32LoadLibrGetProcALocalAll_not_found_]
lea rdi, [rsp + 0x20]
mov qword [rsp + 0x20], rax
mov rcx, rdi
mov dword [rsp + 0x28], 0x6c6c642e
mov byte [rsp + 0x2c], 0
call fcn.225a419a0
mov byte [rsp + 0x2c], 0
mov rbx, rax
mov rax, qword [0x225b01028]
mov dword [rsp + 0x28], 0x41797261
mov qword [rsp + 0x20], rax
movsxd rax, dword [rbx + 0x3c]
mov r12d, dword [rbx + rax + 0x88]
test r12d, r12d
je 0x225a42090
lea r13, [rbx + r12]
mov esi, dword [r13 + 0x20]
mov ebp, dword [r13 + 0x18]
add rsi, rbx
test ebp, ebp
je 0x225a420aa
mov r15, rsi
xor r14d, r14d
jmp 0x225a41f41
add r14, 1
add r15, 4
cmp rbp, r14
je 0x225a420c0
mov ecx, dword [r15]
mov rdx, rdi
add rcx, rbx
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x225a41f30
mov edx, dword [r13 + 0x24]
lea rcx, [rbx + r14*2]
mov eax, dword [r13 + 0x1c]
movzx edx, word [rcx + rdx]
lea rdx, [rbx + rdx*4]
mov eax, dword [rdx + rax]
mov byte [rsp + 0x2e], 0
add rax, rbx
mov qword [0x225b26030], rax
mov rax, qword [0x225b01030]
mov edx, 0x7373
mov dword [rsp + 0x28], 0x65726464
xor r14d, r14d
mov word [rsp + 0x2c], dx
mov qword [rsp + 0x20], rax
jmp 0x225a41fb1
add r14, 1
add rsi, 4
cmp rbp, r14
je 0x225a420b8
mov ecx, dword [rsi]
mov rdx, rdi
add rcx, rbx
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x225a41fa0
mov edx, dword [r13 + 0x24]
lea rcx, [rbx + r14*2]
mov eax, dword [r13 + 0x1c]
movzx edx, word [rcx + rdx]
lea rdx, [rbx + rdx*4]
mov eax, dword [rdx + rax]
add rax, rbx
mov qword [0x225b26038], rax
mov rax, qword [0x225b01038]
add r12, rbx
xor ebp, ebp
mov byte [rsp + 0x2a], 0
mov qword [rsp + 0x20], rax
mov eax, 0x636f
mov word [rsp + 0x28], ax
mov esi, dword [r12 + 0x20]
mov r13d, dword [r12 + 0x18]
add rsi, rbx
test r13d, r13d
jne 0x225a4202d
jmp 0x225a420a6
add rbp, 1
add rsi, 4
cmp r13, rbp
je 0x225a420a6
mov ecx, dword [rsi]
mov rdx, rdi
add rcx, rbx
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x225a42020
mov edx, dword [r12 + 0x24]
lea rcx, [rbx + rbp*2]
mov eax, dword [r12 + 0x1c]
movzx edx, word [rcx + rdx]
lea rdx, [rbx + rdx*4]
mov eax, dword [rdx + rax]
add rax, rbx
mov ecx, 0x4098
mov qword [0x225b26028], rax
call fcn.225a41e10
test rax, rax
mov qword [0x225b26020], rax
setne al
movzx eax, al
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov qword [0x225b26030], 0
mov qword [0x225b26038], 0
xor eax, eax
jmp 0x225a4205a
mov qword [0x225b26030], 0
nop dword [rax]
xor eax, eax
jmp 0x225a41fdc
mov qword [0x225b26030], 0
mov byte [rsp + 0x2e], 0
jmp 0x225a41f79
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
jmp 0x225a41ea0
Function at 0x225a420e0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
mov rax, qword [str.kernel32LoadLibrGetProcALocalAll_not_found_]
lea rdi, [rsp + 0x20]
mov qword [rsp + 0x20], rax
mov rcx, rdi
mov dword [rsp + 0x28], 0x6c6c642e
mov byte [rsp + 0x2c], 0
call fcn.225a419a0
mov byte [rsp + 0x2c], 0
mov rbx, rax
mov rax, qword [0x225b01028]
mov dword [rsp + 0x28], 0x41797261
mov qword [rsp + 0x20], rax
movsxd rax, dword [rbx + 0x3c]
mov r12d, dword [rbx + rax + 0x88]
test r12d, r12d
je 0x225a42090
lea r13, [rbx + r12]
mov esi, dword [r13 + 0x20]
mov ebp, dword [r13 + 0x18]
add rsi, rbx
test ebp, ebp
je 0x225a420aa
mov r15, rsi
xor r14d, r14d
jmp 0x225a41f41
add r14, 1
add r15, 4
cmp rbp, r14
je 0x225a420c0
mov ecx, dword [r15]
mov rdx, rdi
add rcx, rbx
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x225a41f30
mov edx, dword [r13 + 0x24]
lea rcx, [rbx + r14*2]
mov eax, dword [r13 + 0x1c]
movzx edx, word [rcx + rdx]
lea rdx, [rbx + rdx*4]
mov eax, dword [rdx + rax]
mov byte [rsp + 0x2e], 0
add rax, rbx
mov qword [0x225b26030], rax
mov rax, qword [0x225b01030]
mov edx, 0x7373
mov dword [rsp + 0x28], 0x65726464
xor r14d, r14d
mov word [rsp + 0x2c], dx
mov qword [rsp + 0x20], rax
jmp 0x225a41fb1
add r14, 1
add rsi, 4
cmp rbp, r14
je 0x225a420b8
mov ecx, dword [rsi]
mov rdx, rdi
add rcx, rbx
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x225a41fa0
mov edx, dword [r13 + 0x24]
lea rcx, [rbx + r14*2]
mov eax, dword [r13 + 0x1c]
movzx edx, word [rcx + rdx]
lea rdx, [rbx + rdx*4]
mov eax, dword [rdx + rax]
add rax, rbx
mov qword [0x225b26038], rax
mov rax, qword [0x225b01038]
add r12, rbx
xor ebp, ebp
mov byte [rsp + 0x2a], 0
mov qword [rsp + 0x20], rax
mov eax, 0x636f
mov word [rsp + 0x28], ax
mov esi, dword [r12 + 0x20]
mov r13d, dword [r12 + 0x18]
add rsi, rbx
test r13d, r13d
jne 0x225a4202d
jmp 0x225a420a6
add rbp, 1
add rsi, 4
cmp r13, rbp
je 0x225a420a6
mov ecx, dword [rsi]
mov rdx, rdi
add rcx, rbx
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x225a42020
mov edx, dword [r12 + 0x24]
lea rcx, [rbx + rbp*2]
mov eax, dword [r12 + 0x1c]
movzx edx, word [rcx + rdx]
lea rdx, [rbx + rdx*4]
mov eax, dword [rdx + rax]
add rax, rbx
mov ecx, 0x4098
mov qword [0x225b26028], rax
call fcn.225a41e10
test rax, rax
mov qword [0x225b26020], rax
setne al
movzx eax, al
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov qword [0x225b26030], 0
mov qword [0x225b26038], 0
xor eax, eax
jmp 0x225a4205a
mov qword [0x225b26030], 0
nop dword [rax]
xor eax, eax
jmp 0x225a41fdc
mov qword [0x225b26030], 0
mov byte [rsp + 0x2e], 0
jmp 0x225a41f79
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
jmp 0x225a41ea0
Function at 0x225a451a0
Capabilities:
Encrypt data using aes
Reference aes constants

Disassembly:
push rdi
push rsi
push rbx
mov rax, rcx
lea rcx, [rcx + 0xf]
sub rcx, rdx
cmp rcx, 0x1e
jbe 0x225a45284
movdqu xmm1, xmmword [rdx]
movups xmmword [rax], xmm1
movdqu xmm0, xmmword [rdx + 0x10]
movups xmmword [rax + 0x10], xmm0
movzx edi, byte [rax + 0x1f]
mov r10d, 8
movzx r9d, byte [rax + 0x1e]
lea r11, [0x225b01300]
movzx r8d, byte [rax + 0x1d]
lea rbx, [0x225b011e0]
movzx edx, byte [rax + 0x1c]
jmp 0x225a45249
movzx r8d, r8b
movzx edx, dl
movzx ecx, byte [r11 + r8]
movzx r8d, r9b
movzx r9d, dil
movzx edi, byte [r11 + rdx]
mov edx, r10d
shr edx, 3
movzx r8d, byte [r11 + r8]
xor cl, byte [rbx + rdx]
movzx r9d, byte [r11 + r9]
mov edx, ecx
xor dl, byte [rax]
add r10d, 1
add rax, 4
xor r8b, byte [rax - 3]
xor r9b, byte [rax - 2]
xor dil, byte [rax - 1]
mov byte [rax + 0x1c], dl
mov byte [rax + 0x1d], r8b
mov byte [rax + 0x1e], r9b
mov byte [rax + 0x1f], dil
cmp r10d, 0x3c
je 0x225a45280
mov ecx, r10d
and ecx, 7
je 0x225a451f0
cmp ecx, 4
jne 0x225a4521e
movzx edx, dl
movzx r8d, r8b
movzx esi, r9b
movzx ecx, dil
movzx edx, byte [r11 + rdx]
movzx r8d, byte [r11 + r8]
movzx r9d, byte [r11 + rsi]
movzx edi, byte [r11 + rcx]
jmp 0x225a4521e
pop rbx
pop rsi
pop rdi
ret
movzx ecx, byte [rdx]
mov byte [rax], cl
movzx ecx, byte [rdx + 1]
mov byte [rax + 1], cl
movzx ecx, byte [rdx + 2]
mov byte [rax + 2], cl
movzx ecx, byte [rdx + 3]
mov byte [rax + 3], cl
movzx ecx, byte [rdx + 4]
mov byte [rax + 4], cl
movzx ecx, byte [rdx + 5]
mov byte [rax + 5], cl
movzx ecx, byte [rdx + 6]
mov byte [rax + 6], cl
movzx ecx, byte [rdx + 7]
mov byte [rax + 7], cl
movzx ecx, byte [rdx + 8]
mov byte [rax + 8], cl
movzx ecx, byte [rdx + 9]
mov byte [rax + 9], cl
movzx ecx, byte [rdx + 0xa]
mov byte [rax + 0xa], cl
movzx ecx, byte [rdx + 0xb]
mov byte [rax + 0xb], cl
movzx ecx, byte [rdx + 0xc]
mov byte [rax + 0xc], cl
movzx ecx, byte [rdx + 0xd]
mov byte [rax + 0xd], cl
movzx ecx, byte [rdx + 0xe]
mov byte [rax + 0xe], cl
movzx ecx, byte [rdx + 0xf]
mov byte [rax + 0xf], cl
movzx ecx, byte [rdx + 0x10]
mov byte [rax + 0x10], cl
movzx ecx, byte [rdx + 0x11]
mov byte [rax + 0x11], cl
movzx ecx, byte [rdx + 0x12]
mov byte [rax + 0x12], cl
movzx ecx, byte [rdx + 0x13]
mov byte [rax + 0x13], cl
movzx ecx, byte [rdx + 0x14]
mov byte [rax + 0x14], cl
movzx ecx, byte [rdx + 0x15]
mov byte [rax + 0x15], cl
movzx ecx, byte [rdx + 0x16]
mov byte [rax + 0x16], cl
movzx ecx, byte [rdx + 0x17]
mov byte [rax + 0x17], cl
movzx ecx, byte [rdx + 0x18]
mov byte [rax + 0x18], cl
movzx ecx, byte [rdx + 0x19]
mov byte [rax + 0x19], cl
movzx ecx, byte [rdx + 0x1a]
mov byte [rax + 0x1a], cl
movzx ecx, byte [rdx + 0x1b]
mov byte [rax + 0x1b], cl
movzx ecx, byte [rdx + 0x1c]
mov byte [rax + 0x1c], cl
movzx ecx, byte [rdx + 0x1d]
mov byte [rax + 0x1d], cl
movzx ecx, byte [rdx + 0x1e]
mov byte [rax + 0x1e], cl
movzx edx, byte [rdx + 0x1f]
mov byte [rax + 0x1f], dl
jmp 0x225a451c7