joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1400036f0
Capabilities:
Get socket status
Receive data
Receive data on socket

Disassembly:
push rdi
push r14
sub rsp, 0x278
mov rax, qword [0x1400086c8]
xor rax, rsp
mov qword [rsp + 0x250], rax
mov r14, rcx
mov edx, 0x100000
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov rdi, rax
test rax, rax
jne 0x140003730
lea eax, [rdi + 1]
jmp 0x14000396f
mov qword [rsp + 0x298], rbx
mov qword [rsp + 0x2a0], rbp
mov qword [rsp + reloc.SHELL32.dll_IsUserAnAdmin], rsi
mov qword [rsp + 0x270], r12
xor r12d, r12d
mov qword [rsp + 0x268], r13
lea r13, [0x140008600]
mov qword [rsp + 0x260], r15
nop word [rax + rax]
xor edx, edx
mov r8d, 0x100000
mov rcx, rdi
mov ebx, r12d
mov r15, r12
call fcn.140005f00
test ebx, ebx
jne 0x1400037df
lea rax, [rsp + 0x30]
mov qword [rsp + 0x30], 0x1e
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov qword [rsp + 0x48], r14
lea rdx, [rsp + 0x40]
mov dword [rsp + 0x40], 1
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_select]
cmp eax, 0xffffffff
je 0x140003934
test eax, eax
jle 0x14000388a
lea rdx, [rsp + 0x40]
mov rcx, r14
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x140003786
mov r8d, 0x100000
movsxd rbp, ebx
add rbp, rdi
sub r8d, ebx
mov rdx, rbp
xor r9d, r9d
mov rcx, r14
call qword [sym.imp.WS2_32.dll_recv]
mov esi, eax
cmp eax, 0xffffffff
je 0x140003934
test eax, eax
je 0x14000393a
cmp dword [0x1400088c4], r12d
je 0x14000382b
mov r8d, eax
lea rcx, [0x1400089f0]
mov rdx, rbp
call fcn.140005c20
add ebx, esi
cmp ebx, 0x100000
jge 0x14000393a
movsxd rax, ebx
cmp byte [rax + rdi - 1], 0xa
jne 0x140003786
mov byte [rax + rdi - 1], r12b
lea eax, [rbx - 2]
cdqe
cmp byte [rax + rdi], 0xd
jne 0x14000385b
mov byte [rax + rdi], r12b
mov rcx, rdi
mov esi, r12d
mov rbx, r12
call qword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x1400038cd
nop
cmp byte [rbx + rdi], 0x20
mov rcx, rdi
je 0x1400038b3
inc esi
inc rbx
call qword [sym.imp.KERNEL32.dll_lstrlenA]
cmp esi, eax
jl 0x140003870
jmp 0x1400038cd
jne 0x140003786
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x140008794]
lea rdx, [0x140001198]
mov r8d, eax
mov rcx, r14
call fcn.140003d20
jmp 0x140003786
mov dl, 0x20
call fcn.140005d50
cmp eax, 1
jle 0x1400038c9
movsxd rax, esi
lea r15, [rdi + 1]
add r15, rax
mov byte [rbx + rdi], r12b
mov rax, qword [0x140008600]
mov rbx, r12
test rax, rax
je 0x140003903
nop dword [rax]
mov rdx, rdi
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
je 0x14000391c
inc rbx
mov rax, rbx
add rax, rax
mov rax, qword [r13 + rax*8]
test rax, rax
jne 0x1400038e0
lea rdx, [0x140001150]
mov rcx, r14
call fcn.140003d20
test eax, eax
jne 0x140003770
jmp 0x14000393a
add rbx, rbx
mov rdx, r15
mov rcx, r14
call qword [r13 + rbx*inet_addr + 8]
test eax, eax
je 0x140003770
jmp 0x14000393f
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov eax, 1
mov r13, qword [rsp + 0x268]
mov r12, qword [rsp + 0x270]
mov rsi, qword [rsp + reloc.SHELL32.dll_IsUserAnAdmin]
mov rbp, qword [rsp + 0x2a0]
mov rbx, qword [rsp + 0x298]
mov r15, qword [rsp + 0x260]
mov rcx, qword [rsp + 0x250]
xor rcx, rsp
call fcn.140005fc0
add rsp, 0x278
pop r14
pop rdi
ret
Function at 0x140003c80
Capabilities:
Receive data
Receive data on socket

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
xor ebx, ebx
mov edi, r8d
mov rsi, rdx
mov rbp, rcx
test r8d, r8d
jle 0x140003cd6
nop dword [rax]
nop dword [rax + rax]
mov r8d, edi
movsxd rdx, ebx
sub r8d, ebx
add rdx, rsi
xor r9d, r9d
mov rcx, rbp
call qword [sym.imp.WS2_32.dll_recv]
lea ecx, [rax + 1]
cmp ecx, 1
jbe 0x140003d0b
add ebx, eax
cmp ebx, edi
jl 0x140003cb0
cmp dword [0x1400088c4], 0
je 0x140003cf1
mov r8d, edi
lea rcx, [0x1400089f0]
mov rdx, rsi
call fcn.140005c20
mov eax, 1
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
xor eax, eax
jmp 0x140003cf6

Function at 0x140003e40
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
sub rsp, 0x20
xor ebx, ebx
mov edi, r8d
cmp dword [0x1400088c4], ebx
mov rsi, rdx
mov rbp, rcx
je 0x140003e73
lea rcx, [0x1400088e0]
call fcn.140005c20
test edi, edi
jle 0x140003ea6
nop word [rax + rax]
mov r8d, edi
movsxd rdx, ebx
sub r8d, ebx
add rdx, rsi
xor r9d, r9d
mov rcx, rbp
call qword [sym.imp.WS2_32.dll_send]
lea ecx, [rax + 1]
cmp ecx, 1
jbe 0x140003ec0
add ebx, eax
cmp ebx, edi
jl 0x140003e80
mov eax, 1
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
xor eax, eax
jmp 0x140003eab

Function at 0x140003fb0
Capabilities:
Resolve dns

Disassembly:
push rbx
sub rsp, 0x30
mov rax, qword [0x1400086c8]
xor rax, rsp
mov qword [rsp + 0x28], rax
mov rbx, rcx
mov dword [rsp + 0x20], 0
call qword [sym.imp.WS2_32.dll_gethostbyname]
mov rdx, rax
test rax, rax
jne 0x140004006
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_inet_addr]
mov ecx, 0xffffffff
cmp eax, ecx
cmovne ecx, eax
mov eax, ecx
mov rcx, qword [rsp + 0x28]
xor rcx, rsp
call fcn.140005fc0
add rsp, 0x30
pop rbx
ret
movsx rax, word [rax + 0x12]
lea rcx, [rsp + 0x20]
mov rdx, qword [rdx + 0x18]
mov r8d, 4
cmp rax, r8
cmovb r8, rax
mov rdx, qword [rdx]
call fcn.140005ed0
mov eax, dword [rsp + 0x20]
mov rcx, qword [rsp + 0x28]
xor rcx, rsp
call fcn.140005fc0
add rsp, 0x30
pop rbx
ret
Function at 0x140004080
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x30
mov rbx, rcx
mov rdi, r8
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov r8d, 0x104
lea rdx, [0x1400087c0]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea rdx, [0x1400012e8]
lea rcx, [0x1400087c0]
call qword [sym.imp.SHLWAPI.dll_StrStrA]
test rax, rax
jne 0x140004116
xor ecx, ecx
test rdi, rdi
jne 0x140004105
mov qword [rsp + 0x28], rax
lea r8, [0x140003230]
mov r9, rbx
mov dword [rsp + 0x20], eax
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateThread]
test rax, rax
je 0x140004116
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [rdi + 1]
mov rbx, qword [rsp + 0x40]
add rsp, 0x30
pop rdi
ret
mov r9d, 1
xor r8d, r8d
mov rdx, rbx
call fcn.140002f00
mov rbx, qword [rsp + 0x40]
mov eax, 1
add rsp, 0x30
pop rdi
ret

Function at 0x1400043c0
Capabilities:
Hash data via wincrypt
Hash data with md5
Initialize hashing via wincrypt

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
sub rsp, 0x50
mov rax, qword [0x1400086c8]
xor rax, rsp
mov qword [rsp + 0x48], rax
xor edi, edi
mov dword [rsp + 0x20], 0xf0000000
mov rbx, r8
mov qword [rsp + 0x30], rdi
mov ebp, edx
mov qword [rsp + 0x38], rdi
mov rsi, rcx
xor r8d, r8d
lea r9d, [rdi + 1]
xor edx, edx
lea rcx, [rsp + 0x30]
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
test eax, eax
je 0x1400044ad
mov rcx, qword [rsp + 0x30]
lea rax, [rsp + 0x38]
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov edx, 0x8003
call qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
jne 0x14000444c
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [rsp + 0x30]
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
jmp 0x1400044b3
mov rcx, qword [rsp + 0x38]
xor r9d, r9d
mov r8d, ebp
mov rdx, rsi
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
je 0x140004490
mov rcx, qword [rsp + 0x38]
lea r9, [rsp + 0x40]
xorps xmm0, xmm0
mov dword [rsp + 0x40], reloc.WS2_32.dll_recv
mov r8, rbx
mov dword [rsp + 0x20], edi
mov edx, 2
movups xmmword [rbx], xmm0
call qword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
mov edi, eax
mov rcx, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
xor edx, edx
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
jmp 0x1400044b3
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov eax, edi
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.140005fc0
mov rbx, qword [rsp + 0x88]
add rsp, 0x50
pop rdi
pop rsi
pop rbp
ret
Function at 0x140004530
Capabilities:
Hash data with md5
Initialize hashing via wincrypt

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x30
mov rdi, rdx
mov dword [rsp + 0x20], 0xf0000000
xor edx, edx
mov r9d, 1
xor r8d, r8d
mov rbx, rcx
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
test eax, eax
je 0x14000459d
mov rcx, qword [rbx]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rdi
mov edx, 0x8003
call qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
je 0x14000458a
mov eax, 1
mov rbx, qword [rsp + 0x40]
add rsp, 0x30
pop rdi
ret
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [rbx]
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
jmp 0x1400045a3
call qword [sym.imp.KERNEL32.dll_GetLastError]
xor eax, eax
mov qword [rbx], rax
mov rbx, qword [rsp + 0x40]
mov qword [rdi], rax
add rsp, 0x30
pop rdi
ret
Function at 0x1400045d0
Capabilities:
Create new key via cryptacquirecontext
Encrypt or decrypt via wincrypt
Import public key

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r14
sub rsp, 0x60
mov rax, qword [0x1400086c8]
xor rax, rsp
mov qword [rsp + 0x58], rax
mov rsi, rcx
mov dword [rsp + 0x40], r8d
mov rcx, qword [rcx + 0x18]
xor ebx, ebx
mov rdi, rdx
mov qword [rsp + 0x48], rbx
lea rdx, [0x140001330]
mov r14d, r9d
mov ebp, ebx
mov rcx, qword [rcx + 0x60]
call qword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
je 0x140004621
xor eax, eax
jmp 0x140004765
mov r9d, 0x18
mov dword [rsp + 0x20], 8
xor r8d, r8d
lea rcx, [rsp + 0x48]
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
test eax, eax
jne 0x14000466a
lea r9d, [rax + 0x18]
mov dword [rsp + 0x20], ebx
xor r8d, r8d
lea rcx, [rsp + 0x48]
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
test eax, eax
jne 0x14000466a
call qword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x140004763
mov r8, qword [rsi + 0x18]
lea r9, [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
add r8, 0x60
mov edx, 0x10001
mov qword [rsp + 0x50], rbx
call qword [sym.imp.CRYPT32.dll_CryptImportPublicKeyInfo]
test eax, eax
je 0x140004750
mov rdx, r14
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov rsi, rax
test rax, rax
je 0x14000473d
mov r8d, dword [rsp + 0x40]
mov rdx, rdi
mov rcx, rax
call fcn.140005ed0
mov rcx, qword [rsp + 0x50]
lea rax, [rsp + 0x40]
xor r9d, r9d
mov dword [rsp + 0x30], r14d
mov qword [rsp + 0x28], rax
xor edx, edx
mov qword [rsp + 0x20], rsi
lea r8d, [r9 + 1]
call qword [sym.imp.ADVAPI32.dll_CryptEncrypt]
mov ebp, eax
test eax, eax
je 0x140004721
mov edx, dword [rsp + 0x40]
test edx, edx
je 0x140004727
mov ecx, edx
lea rdi, [rdi + 1]
sub ecx, ebx
inc ebx
dec ecx
movzx ecx, byte [rcx + rsi]
mov byte [rdi - 1], cl
cmp ebx, edx
jb 0x1400046f4
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
jmp 0x140004756
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
jmp 0x140004756
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
jmp 0x140004756
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [rsp + 0x48]
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov eax, ebp
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140005fc0
add rsp, 0x60
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret
Function at 0x140004780
Capabilities:
Create new key via cryptacquirecontext
Import public key

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x50
mov rax, qword [0x1400086c8]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov rbx, rcx
lea rdx, [0x140001330]
mov rcx, qword [rcx + 0x18]
mov rcx, qword [rcx + 0x60]
call qword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
jne 0x1400048fb
xor edi, edi
mov dword [rsp + 0x20], 8
lea r9d, [rax + 0x18]
mov qword [rsp + 0x40], rdi
xor r8d, r8d
lea rcx, [rsp + 0x40]
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
test eax, eax
jne 0x140004807
lea r9d, [rdi + 0x18]
mov dword [rsp + 0x20], edi
xor r8d, r8d
lea rcx, [rsp + 0x40]
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
test eax, eax
jne 0x140004807
call qword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x1400048fb
mov r8, qword [rbx + 0x18]
lea r9, [rsp + 0x38]
mov rcx, qword [rsp + 0x40]
add r8, 0x60
mov edx, 0x10001
mov qword [rsp + 0x38], rdi
call qword [sym.imp.CRYPT32.dll_CryptImportPublicKeyInfo]
test eax, eax
je 0x1400048e8
mov rcx, qword [rsp + 0x38]
lea rax, [rsp + 0x30]
xor r9d, r9d
mov qword [rsp + 0x28], rax
xor edx, edx
mov dword [rsp + 0x30], edi
mov qword [rsp + 0x20], rdi
lea r8d, [r9 + 6]
call qword [sym.imp.ADVAPI32.dll_CryptExportKey]
test eax, eax
je 0x1400048d5
mov edx, dword [rsp + 0x30]
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov rbx, rax
test rax, rax
je 0x1400048d5
mov rcx, qword [rsp + 0x38]
lea rax, [rsp + 0x30]
xor r9d, r9d
mov qword [rsp + 0x28], rax
xor edx, edx
mov qword [rsp + 0x20], rbx
lea r8d, [r9 + 6]
call qword [sym.imp.ADVAPI32.dll_CryptExportKey]
test eax, eax
je 0x1400048b9
cmp byte [rbx], 6
jne 0x1400048bf
cmp dword [rbx + 4], 0xa400
jne 0x1400048bf
cmp dword [rbx + 8], 0x31415352
jne 0x1400048bf
mov eax, dword [rbx + 0xc]
shr eax, 3
jmp 0x1400048fd
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
jmp 0x1400048ee
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
jmp 0x1400048ee
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [rsp + 0x40]
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
xor eax, eax
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.140005fc0
mov rbx, qword [rsp + 0x68]
add rsp, 0x50
pop rdi
ret
Function at 0x140004920
Capabilities:
Create new key via cryptacquirecontext
Generate random numbers via winapi

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x40
mov rax, qword [0x1400086c8]
xor rax, rsp
mov qword [rsp + 0x38], rax
xor eax, eax
mov esi, edx
mov rdi, rcx
mov qword [rsp + 0x30], rax
xor r8d, r8d
mov dword [rsp + 0x20], eax
xor edx, edx
lea rcx, [rsp + 0x30]
lea r9d, [rax + 1]
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
mov ebx, eax
test eax, eax
jne 0x14000499f
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x80090016
jne 0x140004997
lea r9d, [rbx + 1]
mov dword [rsp + 0x20], 8
xor r8d, r8d
lea rcx, [rsp + 0x30]
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
mov ebx, eax
test eax, eax
jne 0x14000499f
call qword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x1400049c8
mov rcx, qword [rsp + 0x30]
mov r8, rdi
mov edx, esi
call qword [sym.imp.ADVAPI32.dll_CryptGenRandom]
mov ebx, eax
test eax, eax
jne 0x1400049bb
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [rsp + 0x30]
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov eax, ebx
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.140005fc0
mov rbx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
add rsp, 0x40
pop rdi
ret
Function at 0x1400049f0
Capabilities:
Check os version
Get token membership

Disassembly:
mov qword [rsp + 8], rbx
push rbp
lea rbp, [rsp - 0x50]
sub rsp, 0x150
mov rax, qword [0x1400086c8]
xor rax, rsp
mov qword [rbp + 0x40], rax
xorps xmm0, xmm0
mov dword [rsp + 0x50], 0x9c
xor eax, eax
lea rcx, [rsp + 0x50]
movups xmmword [rsp + 0x54], xmm0
mov qword [rbp - 0x1c], rax
xor ebx, ebx
movups xmmword [rsp + 0x64], xmm0
movups xmmword [rsp + 0x74], xmm0
movups xmmword [rbp - 0x7c], xmm0
movups xmmword [rbp - 0x6c], xmm0
movups xmmword [rbp - 0x5c], xmm0
movups xmmword [rbp - 0x4c], xmm0
movups xmmword [rbp - 0x3c], xmm0
movups xmmword [rbp - 0x2c], xmm0
call qword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
jne 0x140004a66
call qword [sym.imp.KERNEL32.dll_GetLastError]
xor eax, eax
jmp 0x140004bbf
cmp dword [rsp + 0x60], 2
jne 0x140004bb9
cmp dword [rsp + 0x54], 5
jbe 0x140004bb9
mov qword [rsp + 0x30], rbx
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
lea r8, [rsp + 0x30]
mov edx, 8
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x140004baf
mov rcx, qword [rsp + 0x30]
lea rax, [rsp + 0x40]
mov r9d, 4
mov dword [rsp + 0x40], ebx
lea r8, [rsp + 0x48]
mov qword [rsp + 0x20], rax
lea edx, [r9 + 0xe]
call qword [sym.imp.ADVAPI32.dll_GetTokenInformation]
test eax, eax
jne 0x140004ae6
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x140004bbf
cmp dword [rsp + 0x48], 3
jne 0x140004b98
mov rcx, qword [rsp + 0x30]
lea rax, [rsp + 0x40]
mov r9d, 8
mov qword [rsp + 0x38], rbx
lea r8, [rsp + 0x38]
mov qword [rsp + 0x20], rax
lea edx, [r9 + 0xb]
call qword [sym.imp.ADVAPI32.dll_GetTokenInformation]
test eax, eax
je 0x140004ace
xor edx, edx
mov dword [rsp + 0x4c], 0x44
lea r9, [rsp + 0x4c]
lea r8, [rbp - 0x10]
lea ecx, [rdx + 0x1a]
call qword [sym.imp.ADVAPI32.dll_CreateWellKnownSid]
test eax, eax
je 0x140004b78
mov rcx, qword [rsp + 0x38]
lea r8, [rsp + 0x44]
lea rdx, [rbp - 0x10]
mov dword [rsp + 0x44], ebx
call qword [sym.imp.ADVAPI32.dll_CheckTokenMembership]
test eax, eax
je 0x140004b78
mov rcx, qword [rsp + 0x38]
mov ebx, dword [rsp + 0x44]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, ebx
jmp 0x140004bbf
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, ebx
jmp 0x140004bbf
call qword [sym.imp.SHELL32.dll_IsUserAnAdmin]
mov rcx, qword [rsp + 0x30]
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, ebx
jmp 0x140004bbf
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov eax, ebx
jmp 0x140004bbf
call qword [sym.imp.SHELL32.dll_IsUserAnAdmin]
mov rcx, qword [rbp + 0x40]
xor rcx, rsp
call fcn.140005fc0
mov rbx, qword [rsp + 0x160]
add rsp, 0x150
pop rbp
ret
Function at 0x140004be0
Capabilities:
Check os version

Disassembly:
mov qword [rsp + 0x10], rdi
push rbp
lea rbp, [rsp - 0x57]
sub rsp, 0xf0
mov rax, qword [0x1400086c8]
xor rax, rsp
mov qword [rbp + 0x47], rax
xorps xmm0, xmm0
mov dword [rbp - 0x59], 0x9c
xor eax, eax
lea rcx, [rbp - 0x59]
movups xmmword [rbp - 0x55], xmm0
mov qword [rbp + 0x3b], rax
xor edi, edi
movups xmmword [rbp - 0x45], xmm0
movups xmmword [rbp - 0x35], xmm0
movups xmmword [rbp - 0x25], xmm0
movups xmmword [rbp - 0x15], xmm0
movups xmmword [rbp - 5], xmm0
movups xmmword [rbp + 0xb], xmm0
movups xmmword [rbp + 0x1b], xmm0
movups xmmword [rbp + 0x2b], xmm0
call qword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
jne 0x140004c51
call qword [sym.imp.KERNEL32.dll_GetLastError]
xor eax, eax
jmp 0x140004d4e
cmp dword [rbp - 0x49], 2
jne 0x140004d4c
cmp dword [rbp - 0x55], 5
jbe 0x140004d4c
mov qword [rbp - 0x61], rdi
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
lea r8, [rbp - 0x61]
mov edx, 8
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x140004d46
mov rcx, qword [rbp - 0x61]
lea rax, [rbp - 0x69]
xor r9d, r9d
mov qword [rsp + 0x100], rbx
xor r8d, r8d
mov dword [rbp - 0x69], edi
mov qword [rsp + 0x20], rax
lea edx, [r9 + 0x19]
call qword [sym.imp.ADVAPI32.dll_GetTokenInformation]
test eax, eax
jne 0x140004d2c
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x140004d2c
mov edx, dword [rbp - 0x69]
lea ecx, [rax - 0x3a]
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov rbx, rax
test rax, rax
je 0x140004d2c
mov r9d, dword [rbp - 0x69]
lea rax, [rbp - 0x69]
mov rcx, qword [rbp - 0x61]
mov r8, rbx
mov edx, 0x19
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_GetTokenInformation]
test eax, eax
je 0x140004d1b
mov rcx, qword [rbx]
call qword [sym.imp.ADVAPI32.dll_GetSidSubAuthorityCount]
mov rcx, qword [rbx]
movzx edx, byte [rax]
dec edx
call qword [sym.imp.ADVAPI32.dll_GetSidSubAuthority]
mov rcx, rbx
mov edi, dword [rax]
call qword [sym.imp.KERNEL32.dll_LocalFree]
jmp 0x140004d32
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LocalFree]
jmp 0x140004d32
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [rbp - 0x61]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rbx, qword [rsp + 0x100]
jmp 0x140004d4c
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov eax, edi
mov rcx, qword [rbp + 0x47]
xor rcx, rsp
call fcn.140005fc0
mov rdi, qword [rsp + 0x108]
add rsp, 0xf0
pop rbp
ret
Function at 0x140004d70
Capabilities:
Connect socket

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x70
mov rax, qword [0x1400086c8]
xor rax, rsp
mov qword [rsp + 0x68], rax
movzx esi, r8w
mov edi, edx
mov rbx, rcx
test rcx, rcx
jne 0x140004de6
lea rcx, [0x140008b38]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
movups xmm0, xmmword [0x140008b00]
lea rcx, [0x140008b38]
movups xmm1, xmmword [0x140008b10]
lea rbx, [rsp + 0x30]
movups xmmword [rsp + 0x30], xmm0
movups xmm0, xmmword [0x140008b20]
movups xmmword [rsp + 0x40], xmm1
movsd xmm1, qword [0x140008b30]
movups xmmword [rsp + 0x50], xmm0
movsd qword [rsp + 0x60], xmm1
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov r9d, dword [rbx + 0x34]
mov qword [rsp + 0xa8], rbp
test r9d, r9d
je 0x140004e40
sub r9d, 1
je 0x140004e30
sub r9d, 1
je 0x140004e20
cmp r9d, 1
jne 0x140004ea6
movzx r8d, si
mov edx, edi
mov rcx, rbx
call fcn.140005950
jmp 0x140004ead
movzx r8d, si
mov edx, edi
mov rcx, rbx
call fcn.1400057e0
jmp 0x140004ead
movzx r8d, si
mov edx, edi
mov rcx, rbx
call fcn.140005430
jmp 0x140004ead
xor r8d, r8d
mov ebp, 2
mov ecx, ebp
lea edx, [r8 + 1]
call qword [sym.imp.WS2_32.dll_socket]
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x140004ea0
movzx ecx, si
mov dword [rsp + 0x24], edi
call qword [sym.imp.WS2_32.dll_htons]
lea r8d, [rbp + 0xe]
mov word [rsp + 0x20], bp
lea rdx, [rsp + 0x20]
mov word [rsp + 0x22], ax
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_connect]
test eax, eax
jne 0x140004e8f
mov rax, rbx
jmp 0x140004ead
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_closesocket]
jmp 0x140004ea6
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov rax, 0xffffffffffffffff
mov rbp, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.140005fc0
add rsp, 0x70
pop rdi
pop rsi
pop rbx
ret