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

Disassembly:
cld
pop r11
jmp 0x106c99d
inc rsi
mov byte [rdi], dl
inc rdi
mov dl, byte [rsi]
add ebx, ebx
jne 0x106c9ad
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
mov dl, byte [rsi]
jb 0x106c995
lea eax, [rcx + 1]
jmp 0x106c9bb
dec eax
call r11
adc eax, eax
call r11
adc eax, eax
add ebx, ebx
jne 0x106c9ce
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
mov dl, byte [rsi]
jae 0x106c9b4
sub eax, 3
jb 0x106c9ee
shl eax, 8
movzx edx, dl
or eax, edx
inc rsi
xor eax, 0xffffffff
je 0x106ca3d
sar eax, 1
movsxd rbp, eax
jb 0x106ca24
jmp 0x106c9fc
add ebx, ebx
jne 0x106c9fa
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
jb 0x106ca24
inc ecx
add ebx, ebx
jne 0x106ca0a
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
jb 0x106ca24
call r11
adc ecx, ecx
add ebx, ebx
jne 0x106ca1d
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
jae 0x106ca0c
add ecx, 2
jmp 0x106ca29
call r11
adc ecx, ecx
cmp rbp, 0xfffffffffffffb00
adc ecx, 2
call fcn.0106c952
jmp 0x106c99d
pop rsi
mov rdi, rsi
push rsi
mov rdi, rsi
mov rsi, 0x533e00
mov dl, 0x67
push rbx
push rdi
lea rcx, [rdi + rsi - 3]
pop rsi
push rsi
pop rbx
jmp 0x106ca89
cmp rsi, rcx
jae 0x106ca91
push rsi
pop rsi
lodsb al, byte [rsi]
cmp al, 0x80
jb 0x106ca70
cmp al, 0x8f
ja 0x106ca70
cmp byte [rsi - 2], 0xf
je 0x106ca76
sub al, 0xe8
cmp al, 1
ja 0x106ca5a
cmp rsi, rcx
jae 0x106ca91
push rsi
lodsd eax, dword [rsi]
sub al, dl
jne 0x106ca60
pop rdi
bswap eax
sub eax, edi
add eax, ebx
stosd dword [rdi], eax
cmp rsi, rcx
jae 0x106ca91
lodsb al, byte [rsi]
jmp 0x106ca70
pop rbx
pop rsi
sub rsp, 0x28
lea rdi, [rsi + 0xc5e000]
mov eax, dword [rdi]
or eax, eax
je 0x106caee
mov ebx, dword [rdi + 4]
lea rcx, [rax + rsi + 0xc6c000]
add rbx, rsi
add rdi, 8
call qword [sym.imp.KERNEL32.DLL_LoadLibraryA]
xchg rbp, rax
mov al, byte [rdi]
inc rdi
or al, al
je 0x106ca9e
mov rcx, rdi
mov rdx, rdi
dec eax
repne scasb al, byte [rdi]
mov rcx, rbp
call qword [sym.imp.KERNEL32.DLL_GetProcAddress]
or rax, rax
je 0x106cae8
mov qword [rbx], rax
add rbx, 8
jmp 0x106cabe
jmp qword [sym.imp.KERNEL32.DLL_ExitProcess]
add rsp, 0x28
add rdi, 4
lea rbx, [rsi - 4]
xor eax, eax
mov al, byte [rdi]
inc rdi
or eax, eax
je 0x106cb32
cmp al, 0xef
ja 0x106cb1a
add rbx, rax
mov rax, qword [rbx]
bswap rax
add rax, rsi
mov qword [rbx], rax
jmp 0x106cafa
and al, 0xf
shl eax, 0x10
mov ax, word [rdi]
add rdi, 2
or eax, eax
jne 0x106cb09
mov eax, dword [rdi]
add rdi, 4
jmp 0x106cb09
mov rbp, qword [sym.imp.KERNEL32.DLL_VirtualProtect]
lea rdi, [rsi - 0x1000]
mov ebx, 0x1000
push rax
mov r9, rsp
mov r8d, 4
mov rdx, rbx
mov rcx, rdi
sub rsp, 0x20
call rbp
lea rax, [rdi + 0x1af]
and byte [rax], 0x7f
and byte [rax + 0x28], 0x7f
lea r9, [rsp + 0x20]
mov r8, qword [r9]
mov rdx, rbx
mov rcx, rdi
call rbp
add rsp, 0x28
pop rbp
pop rdi
pop rsi
pop rbx
lea rax, [rsp - 0x80]
push 0
cmp rsp, rax
jne 0x106cb86
sub rsp, 0xffffffffffffff80
jmp 0x468380
Function at 0x14000104c
Capabilities:
Query or enumerate registry value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x40]
sub rsp, 0x140
and qword [rsp + 0x58], 0
lea rax, [rbp + 0x80]
and qword [rsp + 0x50], 0
mov r12, rdx
and qword [rsp + 0x48], 0
mov rbx, rcx
and qword [rsp + 0x40], 0
xor r9d, r9d
mov qword [rsp + 0x38], rax
xor r8d, r8d
and qword [rsp + 0x30], 0
xor edx, edx
and qword [rsp + 0x28], 0
mov rcx, r12
and qword [rsp + 0x20], 0
call qword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
test eax, eax
jne 0x1400011b5
xor r14d, r14d
cmp dword [rbp + 0x80], r14d
jbe 0x1400011b5
lea rax, [rbp + 0x88]
mov dword [rsp + 0x60], 0x64
mov qword [rsp + 0x38], rax
lea r9, [rsp + 0x60]
lea rax, [rsp + 0x68]
mov dword [rbp + 0x88], 4
mov qword [rsp + 0x30], rax
lea r8, [rsp + 0x70]
lea rax, [rsp + 0x64]
mov edx, r14d
mov qword [rsp + 0x28], rax
mov rcx, r12
and qword [rsp + 0x20], 0
call qword [sym.imp.ADVAPI32.dll_RegEnumValueW]
test eax, eax
jne 0x1400011a5
cmp dword [rsp + 0x64], 4
jne 0x1400011a5
mov r15d, dword [rsp + 0x68]
xor ecx, ecx
cmp dword [rbx], ecx
jbe 0x140001147
mov rdx, qword [rbx + 8]
cmp dword [rdx + rcx*4], r15d
je 0x1400011a5
inc ecx
cmp ecx, dword [rbx]
jb 0x14000113b
mov eax, dword [rbx + 4]
cmp dword [rbx], eax
jne 0x140001199
add eax, 0x10
mov edi, eax
shl rdi, 2
mov dword [rbx + 4], eax
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rdi
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ecx, dword [rbx]
mov rdi, rax
mov rsi, qword [rbx + 8]
shl rcx, 2
rep movsb byte [rdi], byte [rsi]
mov rdi, qword [rbx + 8]
mov qword [rbx + 8], rax
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rdi
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov ecx, dword [rbx]
mov rax, qword [rbx + 8]
mov dword [rax + rcx*4], r15d
inc dword [rbx]
inc r14d
cmp r14d, dword [rbp + 0x80]
jb 0x1400010cf
lea r11, [rsp + 0x140]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
Function at 0x140001274
Capabilities:
Query or enumerate registry value

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov dword [rax + 0x18], r8d
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0x140
and qword [rsp + 0x58], 0
lea rax, [rax + 0x18]
and qword [rsp + 0x50], 0
mov r15, rdx
and qword [rsp + 0x48], 0
mov rbx, rcx
and qword [rsp + 0x40], 0
xor r9d, r9d
mov qword [rsp + 0x38], rax
xor r8d, r8d
and qword [rsp + 0x30], 0
xor edx, edx
and qword [rsp + 0x28], 0
mov rcx, r15
and qword [rsp + 0x20], 0
call qword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
test eax, eax
jne 0x140001472
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
xor edx, edx
mov r8d, 0x20a
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
xor r14d, r14d
mov rbp, rax
cmp dword [rsp + 0x180], r14d
jbe 0x14000145e
lea rax, [rsp + 0x188]
mov dword [rsp + 0x60], 0x64
mov qword [rsp + 0x38], rax
lea r9, [rsp + 0x60]
lea rax, [rsp + 0x64]
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0x28], rax
lea r8, [rsp + 0x70]
and qword [rsp + 0x20], 0
mov edx, r14d
mov rcx, r15
mov dword [rsp + 0x188], 0x104
call qword [sym.imp.ADVAPI32.dll_RegEnumValueW]
test eax, eax
jne 0x14000144d
cmp dword [rsp + 0x64], 1
jne 0x14000144d
test rbp, rbp
je 0x14000144d
xor edi, edi
cmp dword [rbx], edi
jbe 0x1400013ab
cmp dword [rbx + 8], 0
mov rdx, rbp
mov rax, qword [rbx + 0x10]
mov rcx, qword [rax + rdi*8]
je 0x140001390
call qword [sym.imp.SHLWAPI.dll_StrCmpIW]
jmp 0x140001396
call qword [sym.imp.SHLWAPI.dll_StrCmpW]
xor ecx, ecx
test eax, eax
sete cl
test ecx, ecx
jne 0x14000144d
inc edi
cmp edi, dword [rbx]
jb 0x140001377
test rbp, rbp
je 0x14000144d
mov eax, dword [rbx + 4]
cmp dword [rbx], eax
jne 0x140001406
add eax, 0x10
mov edi, eax
shl rdi, 3
mov dword [rbx + 4], eax
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rdi
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ecx, dword [rbx]
mov rdi, rax
mov rsi, qword [rbx + 0x10]
shl rcx, 3
rep movsb byte [rdi], byte [rsi]
mov rdi, qword [rbx + 0x10]
mov qword [rbx + 0x10], rax
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rdi
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
movsxd rdi, eax
add rdi, rdi
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rdi
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov edx, dword [rbx]
mov rcx, qword [rbx + 0x10]
mov qword [rcx + rdx*8], rax
mov edx, dword [rbx]
mov rax, qword [rbx + 0x10]
mov rcx, qword [rax + rdx*8]
lea eax, [rdx + 1]
mov rdx, rbp
mov dword [rbx], eax
call qword [sym.imp.SHLWAPI.dll_StrCpyW]
inc r14d
cmp r14d, dword [rsp + 0x180]
jb 0x14000130a
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rbp
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbx, qword [rsp + 0x170]
add rsp, 0x140
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
Function at 0x1400017a8
Capabilities:
Delete registry key
Query or enumerate registry key

Disassembly:
push rbp
lea rbp, [rsp - 0x710]
sub rsp, 0x810
lea rax, [rbp + 0x728]
mov r9d, 0xf013f
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.SOFTWARE_1773config
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x140001841
jmp 0x1400017f3
lea rdx, [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
and qword [rsp + 0x38], 0
lea r9, [rbp + 0x720]
and qword [rsp + 0x30], 0
lea r8, [rsp + 0x40]
and qword [rsp + 0x28], 0
xor edx, edx
mov rcx, qword [rbp + 0x728]
and qword [rsp + 0x20], 0
mov dword [rbp + 0x720], 0x3e8
call qword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
mov rcx, qword [rbp + 0x728]
test eax, eax
je 0x1400017e8
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor r9d, r9d
lea rdx, str.SOFTWARE_1773config
mov r8d, 0xf013f
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyExW]
add rsp, 0x810
pop rbp
ret
Function at 0x140001cf0
Capabilities:
Enumerate process modules

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x148]
sub rsp, 0x248
mov ebx, 1
xor r14d, r14d
mov dword [rbp + 0x1a8], ebx
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov edi, 0x9c40
xor edx, edx
mov rcx, rax
mov r8d, edi
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
and dword [rsp + 0x30], r14d
mov r15, rax
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
xor edx, edx
mov r8d, 0x13880
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
and dword [rbp + 0x1a0], r14d
lea r8, [rsp + 0x30]
mov edx, edi
mov rcx, r15
mov r12, rax
call qword [sym.imp.KERNEL32.dll_K32EnumProcesses]
test eax, eax
je 0x140001e4f
mov eax, dword [rsp + 0x30]
xor edi, edi
shr eax, 2
mov dword [rsp + 0x30], eax
test eax, eax
je 0x140001e4f
mov r8d, dword [r15 + rdi*4]
xor edx, edx
mov ecx, 0x410
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov rsi, rax
test rax, rax
je 0x140001e43
lea r9, [rbp + 0x1a0]
mov dword [rsp + 0x20], 3
mov r8d, 0x13880
mov rdx, r12
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_K32EnumProcessModulesEx]
test eax, eax
je 0x140001e3a
mov eax, dword [rbp + 0x1a0]
xor ebx, ebx
shr eax, 3
mov dword [rbp + 0x1a0], eax
test eax, eax
je 0x140001e34
mov rdx, qword [r12 + rbx*8]
lea r8, [rsp + 0x40]
and qword [rsp + 0x20], 0
mov r9d, 0x200
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
test eax, eax
je 0x140001e2a
movzx edx, word [rbp - 0x80]
mov ecx, 0x7268
movzx eax, dx
sub ax, cx
cmp ax, 0xf
ja 0x140001e2a
mov ecx, 0x8801
bt ecx, eax
jb 0x140001e97
inc ebx
cmp ebx, dword [rbp + 0x1a0]
jb 0x140001de9
mov ebx, dword [rbp + 0x1a8]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
inc edi
cmp edi, dword [rsp + 0x30]
jb 0x140001d92
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, r15
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, r12
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rax, qword [rbp + 0x198]
mov dword [rax], r14d
mov eax, ebx
add rsp, 0x248
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rax, qword [rbp + 0x198]
cmp r14d, dword [rax]
jae 0x140001edc
mov eax, dword [r15 + rdi*4]
mov r9d, 0x7277
mov r8, qword [rbp + 0x190]
mov ecx, r14d
add rcx, rcx
mov dword [r8 + rcx*8], eax
xor eax, eax
cmp dx, r9w
mov word [r8 + rcx*8 + 4], dx
cmove rax, qword [rbp - 0x7e]
inc r14d
mov qword [r8 + rcx*8 + 8], rax
jmp 0x140001e34
xor ebx, ebx
mov dword [rbp + 0x1a8], ebx
jmp 0x140001e3a
Function at 0x14000200c
Capabilities:
Terminate process

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r14
sub rsp, 0x20
mov r14d, ecx
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
xor edx, edx
mov r8d, 0x3e80
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
lea rdx, [rsp + 0x48]
mov dword [rsp + 0x48], 0x3e8
mov rcx, rax
mov rbp, rax
call fcn.140001cf0
test eax, eax
je 0x1400020a5
mov ecx, dword [rsp + 0x48]
test ecx, ecx
je 0x1400020a5
mov rbx, rbp
mov edi, ecx
mov eax, 0x7273
cmp word [rbx + 4], ax
jne 0x14000209b
cmp dword [rbx], r14d
je 0x14000209b
mov r8d, dword [rbx]
xor edx, edx
lea ecx, [rdx + 1]
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov rsi, rax
test rax, rax
je 0x14000209b
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
add rbx, 0x10
sub rdi, 1
jne 0x140002061
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rbp
xor edx, edx
mov rcx, rax
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x50]
add rsp, 0x20
pop r14
pop rdi
pop rsi
jmp qword [sym.imp.KERNEL32.dll_HeapFree]

Function at 0x1400020fc
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov dword [rsp + 0x18], r8d
push rsi
push rdi
push r14
sub rsp, 0x30
xor ebx, ebx
mov r14, rdx
mov edi, ebx
mov rbp, rcx
mov rsi, rdx
mov eax, edi
lea r9, [rsp + 0x60]
mov r8d, 2
mov qword [rsp + 0x20], rbx
mov rcx, rbp
lea rdx, [r14 + rax*2]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x140002164
cmp dword [rsp + 0x60], 2
jne 0x140002164
cmp word [rsi], bx
je 0x14000215f
inc edi
add rsi, 2
cmp edi, 0x105
jb 0x140002120
jmp 0x140002164
mov ebx, 1
mov rbp, qword [rsp + 0x58]
mov eax, ebx
mov rbx, qword [rsp + 0x50]
add rsp, 0x30
pop r14
pop rdi
pop rsi
ret
Function at 0x140002300
Capabilities:
Create pipe

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
lea rbp, [rsp - 0x47]
sub rsp, 0xb0
xor esi, esi
mov word [rbp + 0x73], 0x100
lea rax, [rbp + 0x77]
mov dword [rbp + 0x6f], esi
mov qword [rsp + 0x50], rax
mov rbx, rcx
mov dword [rsp + 0x48], esi
lea rcx, [rbp + 0x6f]
mov dword [rsp + 0x40], esi
xor r9d, r9d
mov dword [rsp + 0x38], esi
xor r8d, r8d
mov dword [rsp + 0x30], esi
mov dl, 1
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], esi
call qword [sym.imp.ADVAPI32.dll_AllocateAndInitializeSid]
test eax, eax
je 0x14000241b
xor eax, eax
lea rdi, [rbp + 0xf]
lea ecx, [rsi + 0x30]
xor r8d, r8d
rep stosb byte [rdi], al
mov rax, qword [rbp + 0x77]
lea ecx, [rsi + 1]
lea r9, [rbp + 0x7f]
mov qword [rbp + 0x37], rax
lea rdx, [rbp + 0xf]
mov dword [rbp + 0xf], 0x1f01ff
mov qword [rbp + 0x13], 2
mov dword [rbp + 0x2b], esi
mov dword [rbp + 0x2f], 5
call qword [sym.imp.ADVAPI32.dll_SetEntriesInAclW]
test eax, eax
jne 0x14000241b
lea edx, [rsi + 0x28]
lea ecx, [rsi + 0x40]
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov rdi, rax
test rax, rax
je 0x14000241b
lea edx, [rsi + 1]
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_InitializeSecurityDescriptor]
test eax, eax
je 0x14000241b
mov r8, qword [rbp + 0x7f]
lea edx, [rsi + 1]
xor r9d, r9d
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_SetSecurityDescriptorDacl]
test eax, eax
je 0x14000241b
lea rax, [rbp - 9]
mov dword [rbp - 9], 0x18
mov qword [rsp + 0x38], rax
lea edx, [rsi + 3]
mov eax, 0x400
mov dword [rsp + 0x30], esi
mov dword [rsp + 0x28], eax
mov r9d, 0xff
xor r8d, r8d
mov dword [rsp + 0x20], eax
mov rcx, rbx
mov qword [rbp - 1], rdi
mov dword [rbp + 7], esi
call qword [sym.imp.KERNEL32.dll_CreateNamedPipeW]
jmp 0x14000241f
or rax, 0xffffffffffffffff
mov rbx, qword [rsp + 0xd0]
add rsp, 0xb0
pop rdi
pop rsi
pop rbp
ret
Function at 0x140002930
Capabilities:
Inspect section memory permissions

Disassembly:
mov edx, 0xe0000000
mov eax, ecx
and eax, edx
cmp eax, edx
jne 0x140002943
mov eax, 0x40
ret
mov edx, 0x60000000
mov eax, ecx
and eax, edx
cmp eax, edx
jne 0x140002956
mov eax, 0x20
ret
mov edx, 0xa0000000
mov eax, ecx
and eax, edx
cmp eax, edx
jne 0x140002969
mov eax, 0x80
ret
mov edx, 0xc0000000
mov eax, ecx
and eax, edx
cmp eax, edx
jne 0x14000297c
mov eax, 4
ret
bt ecx, 0x1d
jae 0x140002988
mov eax, 0x10
ret
bt ecx, 0x1e
jae 0x140002994
mov eax, 2
ret
mov eax, 1
test ecx, ecx
lea edx, [rax + 7]
cmovs eax, edx
ret
Function at 0x140002a0c
Capabilities:
Allocate or change rwx memory

Disassembly:
test rcx, rcx
je 0x140002bf9
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x270
mov rdi, rcx
lea rdx, [0x140004498]
lea rcx, [rsp + 0x60]
xor ebp, ebp
call qword [sym.imp.SHLWAPI.dll_StrCpyW]
mov rdx, rdi
lea rcx, [rsp + 0x60]
call qword [sym.imp.SHLWAPI.dll_StrCatW]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov r12, rax
test rax, rax
je 0x140002bdf
xor eax, eax
lea esi, [rbp + 0x18]
mov ecx, esi
lea rdi, [rsp + 0x40]
rep stosb byte [rdi], al
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov r9d, esi
lea r8, [rsp + 0x40]
mov rcx, rax
mov rdx, r12
call qword [sym.imp.KERNEL32.dll_K32GetModuleInformation]
test eax, eax
je 0x140002bd6
mov qword [rsp + 0x30], rbp
lea r8d, [rbp + 1]
mov dword [rsp + 0x28], ebp
lea rcx, [rsp + 0x60]
xor r9d, r9d
mov dword [rsp + 0x20], 3
mov edx, 0x80000000
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r14, rax
cmp rax, 0xffffffffffffffff
je 0x140002bd6
mov qword [rsp + 0x28], rbp
xor r9d, r9d
xor edx, edx
mov dword [rsp + 0x20], ebp
mov r8d, 0x1000002
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov r15, rax
test rax, rax
je 0x140002bcd
xor r9d, r9d
mov qword [rsp + 0x20], rbp
xor r8d, r8d
lea edx, [rbp + 4]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov r13, rax
test rax, rax
je 0x140002bc4
mov rcx, qword [rsp + 0x40]
movzx esi, bp
movsxd rdi, dword [rcx + 0x3c]
add rdi, rcx
cmp bp, word [rdi + 6]
jae 0x140002bc4
movzx ecx, word [rdi + 0x14]
movzx eax, si
add rcx, rdi
lea rdx, [rax*4 + 3]
add rdx, rax
lea rbx, [rcx + rdx*8]
mov rcx, rbx
mov qword [rsp + 0x2b8], rbx
lea rdx, str..text
call qword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x140002b70
inc si
cmp si, word [rdi + 6]
jb 0x140002b30
jmp 0x140002bc4
mov ebp, dword [rbx + 0xc]
lea r9, [rsp + 0x2b0]
add rbp, qword [rsp + 0x40]
mov r8d, 0x40
mov ebx, dword [rbx + 8]
mov rcx, rbp
mov edx, ebx
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov rax, qword [rsp + 0x2b8]
lea r9, [rsp + 0x2b0]
mov rdi, rbp
mov ecx, ebx
mov edx, ebx
mov esi, dword [rax + 0xc]
add rsi, r13
rep movsb byte [rdi], byte [rsi]
mov r8d, dword [rsp + 0x2b0]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rbx, qword [rsp + 0x2c0]
add rsp, 0x270
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
Function at 0x140001010
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
mov rax, qword [0x1406207c0]
xor ecx, ecx
mov dword [rax], 1
mov rax, qword [0x1406207d0]
mov dword [rax], 1
mov rax, qword [0x1406207e0]
mov dword [rax], 1
mov rax, qword [0x140620740]
cmp word [rax], 0x5a4d
jne 0x14000105a
movsxd rdx, dword [rax + 0x3c]
add rax, rdx
cmp dword [rax], 0x4550
je 0x1400010c0
mov rax, qword [0x1406207b0]
mov dword [0x14063700c], ecx
mov eax, dword [rax]
test eax, eax
je 0x1400010b0
mov ecx, 2
call sym.__set_app_type
call sym.__p__fmode
mov rdx, qword [0x140620890]
mov edx, dword [rdx]
mov dword [rax], edx
call sym.__p__commode
mov rdx, qword [0x140620870]
mov edx, dword [rdx]
mov dword [rax], edx
call sym._setargv
mov rax, qword [0x140620720]
cmp dword [rax], 1
je 0x1400010f8
xor eax, eax
add rsp, 0x28
ret
mov ecx, 1
call sym.__set_app_type
jmp 0x140001077
movzx edx, word [rax + 0x18]
cmp dx, 0x10b
je 0x140001110
cmp dx, 0x20b
jne 0x14000105a
cmp dword [rax + 0x84], 0xe
jbe 0x14000105a
mov edx, dword [rax + 0xf8]
xor ecx, ecx
test edx, edx
setne cl
jmp 0x14000105a
mov rcx, qword [sym._matherr]
call sym.__mingw_setusermatherr
xor eax, eax
add rsp, 0x28
ret
cmp dword [rax + 0x74], 0xe
jbe 0x14000105a
mov r8d, dword [rax + 0xe8]
xor ecx, ecx
test r8d, r8d
setne cl
jmp 0x14000105a
Function at 0x140001564
Capabilities:
Encrypt data using rc4 via systemfunction032
Link many functions at runtime

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov edi, ecx
call sub.KERNEL32.dll_CreateTimerQueue
test rax, rax
je 0x1400015ac
mov rsi, rax
xor ecx, ecx
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call sub.KERNEL32.dll_CreateEventW
test rax, rax
je 0x1400015ac
xor ecx, ecx
call sub.KERNEL32.dll_GetModuleHandleA
test rax, rax
je 0x1400015ac
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
jne 0x1400015bd
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r14, [0x1400b4098]
mov rcx, r14
call sub.KERNEL32.dll_LoadLibraryA
lea rdx, str.RtlCaptureContext
mov rcx, rax
call sub.KERNEL32.dll_GetProcAddress
mov rbx, rax
mov rcx, r14
call sub.KERNEL32.dll_GetModuleHandleA
lea rdx, str.NtContinue
mov rcx, rax
call sub.KERNEL32.dll_GetProcAddress
mov r14, rax
lea rcx, str.Advapi32
call sub.KERNEL32.dll_LoadLibraryA
lea rdx, str.SystemFunction032
mov rcx, rax
call sub.KERNEL32.dll_GetProcAddress
mov r15, rax
lea rbp, str.kernel32.dll
mov rcx, rbp
call sub.KERNEL32.dll_LoadLibraryA
lea rdx, str.VirtualProtect
mov rcx, rax
call sub.KERNEL32.dll_GetProcAddress
mov r12, rax
mov rcx, rbp
call sub.KERNEL32.dll_LoadLibraryA
lea rdx, str.WaitForSingleObject
mov rcx, rax
call sub.KERNEL32.dll_GetProcAddress
mov r13, rax
mov rcx, rbp
call sub.KERNEL32.dll_LoadLibraryA
lea rdx, str.SetEvent
mov rcx, rax
call sub.KERNEL32.dll_GetProcAddress
test rbx, rbx
je 0x1400015ac
test r14, r14
je 0x1400015ac
test r15, r15
je 0x1400015ac
test r12, r12
je 0x1400015ac
test r13, r13
je 0x1400015ac
test rax, rax
je 0x1400015ac
xor ecx, ecx
mov edx, 1
xor r8d, r8d
xor r9d, r9d
call sub.KERNEL32.dll_CreateEventW
test rax, rax
je 0x1400015ac
mov rbx, rax
mov rcx, rax
mov edx, edi
call sub.KERNEL32.dll_WaitForSingleObject
test eax, eax
jne 0x1400015ac
mov rcx, rbx
call fcn.140001950
mov rcx, rsi
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp 0x140001990
jmp qword [sym.imp.KERNEL32.dll_DeleteTimerQueue]