joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14005e450
Capabilities:
Encrypt or decrypt via wincrypt

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 8], rcx
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x90
mov r13, r8
mov r14, rdx
mov r12, rcx
mov dword [rsp + 0xd8], 0x80004005
xor ebx, ebx
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x48], rbx
mov edi, dword [rdx]
add edi, 8
mov r15d, edi
mov ecx, edi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rsi, rax
mov r8d, r15d
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll_memset
mov r9d, dword [r14]
mov r8, qword [r14 + 8]
mov edx, r15d
mov rcx, rsi
call fcn.140019ff0
test eax, eax
jne 0x14005e5a3
mov rax, qword [rsp + 0xe8]
mov rax, qword [rax + 8]
mov qword [rsp + 0x30], rax
mov eax, dword [r13]
mov dword [rsp + 0x28], eax
mov rax, qword [r13 + 8]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x48]
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x58]
mov rcx, r12
call sym.AppHelperCap.exe_private:_void___cdecl_Hp::Bridge::Server::Services::Registration::CryptographyHelper::CreateTripleDESKey_unsigned_long_long_unsigned___int64_____ptr64__unsigned_long_long_unsigned___int64_____ptr64__unsigned_long_long_unsigned___int64_____ptr64__unsigned_char____ptr64__unsigned_long_int__unsigned_char____ptr64____ptr64
mov eax, dword [r14]
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x30], edi
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rsi
xor r9d, r9d
xor edx, edx
lea r8d, [r9 + 1]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_CryptEncrypt]
test eax, eax
je 0x14005e5d8
mov rcx, qword [rsp + 0xf0]
mov eax, dword [rsp + 0x40]
mov dword [rcx], eax
mov qword [rcx + 8], rsi
mov dword [rsp + 0xd8], ebx
jmp 0x14005e55c
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x14005e56c
call qword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x14005e57c
call qword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x14005e58e
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov eax, ebx
add rsp, 0x90
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop
test eax, eax
jle 0x14005e5b6
movzx eax, ax
or eax, 0x80070000
mov dword [rsp + 0xd8], eax
lea rcx, [rsp + 0x60]
call fcn.14005d770
lea rdx, [0x1400c1310]
lea rcx, [rsp + 0x60]
call sub.VCRUNTIME140.dll__CxxThrowException
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x14005e5ea
movzx eax, ax
or eax, 0x80070000
mov dword [rsp + 0xd8], eax
lea rcx, [rsp + 0x78]
call fcn.14005d770
lea rdx, [0x1400c1310]
lea rcx, [rsp + 0x78]
call sub.VCRUNTIME140.dll__CxxThrowException
int3
Function at 0x14005e610
Capabilities:
Encrypt or decrypt via wincrypt

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
mov qword [rsp + 8], rcx
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x90
mov r13, r9
mov r12, r8
mov rsi, rdx
mov r15, rcx
mov dword [rsp + 0xc8], 0x80004005
xor ebx, ebx
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x48], rbx
mov eax, dword [rdx]
inc eax
mov r14d, eax
mov ecx, eax
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rdi, rax
mov r8d, r14d
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll_memset
mov r9d, dword [rsi]
mov r8, qword [rsi + 8]
mov edx, r14d
mov rcx, rdi
call fcn.140019ff0
test eax, eax
jne 0x14005e766
mov rax, qword [r13 + 8]
mov qword [rsp + 0x30], rax
mov eax, dword [r12]
mov dword [rsp + 0x28], eax
mov rax, qword [r12 + 8]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x48]
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x58]
mov rcx, r15
call sym.AppHelperCap.exe_private:_void___cdecl_Hp::Bridge::Server::Services::Registration::CryptographyHelper::CreateTripleDESKey_unsigned_long_long_unsigned___int64_____ptr64__unsigned_long_long_unsigned___int64_____ptr64__unsigned_long_long_unsigned___int64_____ptr64__unsigned_char____ptr64__unsigned_long_int__unsigned_char____ptr64____ptr64
mov eax, dword [rsi]
mov dword [rsp + 0x40], eax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rdi
xor r9d, r9d
xor edx, edx
lea r8d, [r9 + 1]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_CryptDecrypt]
test eax, eax
je 0x14005e79b
mov rcx, qword [rsp + 0xe0]
mov eax, dword [rsp + 0x40]
mov dword [rcx], eax
mov qword [rcx + 8], rdi
mov dword [rsp + 0xc8], ebx
jmp 0x14005e715
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x14005e725
call qword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x14005e735
call qword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x14005e747
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov eax, ebx
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop
test eax, eax
jle 0x14005e779
movzx eax, ax
or eax, 0x80070000
mov dword [rsp + 0xc8], eax
lea rcx, [rsp + 0x60]
call fcn.14005d770
lea rdx, [0x1400c1310]
lea rcx, [rsp + 0x60]
call sub.VCRUNTIME140.dll__CxxThrowException
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x14005e7ad
movzx eax, ax
or eax, 0x80070000
mov dword [rsp + 0xc8], eax
lea rcx, [rsp + 0x78]
call fcn.14005d770
lea rdx, [0x1400c1310]
lea rcx, [rsp + 0x78]
call sub.VCRUNTIME140.dll__CxxThrowException
int3
Function at 0x14005ecf0
Capabilities:
Hash data using sha1
Hash data using sha1 via wincrypt
Hash data via wincrypt
Initialize hashing via wincrypt

Disassembly:
mov r11, rsp
mov qword [r11 + 8], rbx
mov qword [r11 + 0x10], rsi
mov qword [r11 + 0x18], rdi
mov qword [r11 + 0x20], r14
push r15
sub rsp, 0x40
mov rsi, r9
mov r15d, r8d
mov rdi, rdx
xor ebx, ebx
mov qword [r11 - 0x18], rbx
mov r14, qword [rsp + 0x78]
mov qword [r14], rbx
lea rax, [r11 - 0x18]
mov qword [r11 - 0x28], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x8004
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
je 0x14005ed7d
xor r9d, r9d
mov r8d, dword [rsp + 0x70]
mov rdx, rsi
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
je 0x14005ed7d
mov qword [rsp + 0x20], r14
mov esi, 1
mov r9d, esi
mov r8, qword [rsp + 0x30]
mov edx, r15d
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_CryptDeriveKey]
test eax, eax
cmovne ebx, esi
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x14005ed8d
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov eax, ebx
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x60]
mov r14, qword [rsp + 0x68]
add rsp, 0x40
pop r15
ret
Function at 0x1400615a0
Capabilities:
Get session user name

Disassembly:
push rbx
sub rsp, 0x2a0
mov rax, qword [0x1400cb008]
xor rax, rsp
mov qword [rsp + 0x290], rax
mov dword [rsp + 0x20], 0x12c
xor edx, edx
mov r8d, 0x258
lea rcx, [rsp + 0x30]
call sub.VCRUNTIME140.dll_memset
xor bl, bl
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x30]
call qword [sym.imp.ADVAPI32.dll_GetUserNameW]
test eax, eax
je 0x140061627
xor eax, eax
lea r8, [rsp + 0x30]
lea r9, str.SYSTEM
nop dword [rax]
movzx edx, word [r8 + rax*2]
inc rax
movzx ecx, word [r9 + rax*2 - 2]
sub edx, ecx
jne 0x140061618
cmp rax, 7
jne 0x140061600
movzx eax, bl
mov ecx, 1
test edx, edx
cmove eax, ecx
jmp 0x14006162a
movzx eax, bl
mov rcx, qword [rsp + 0x290]
xor rcx, rsp
call fcn.140062480
add rsp, 0x2a0
pop rbx
ret
Function at 0x1400010d0
Capabilities:
Access peb ldr_data
Parse pe header

Disassembly:
push rbx
sub rsp, 0x120
lea rcx, str.user32.dll
mov qword [rsp + 0x130], rbp
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
lea rcx, str.user32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rbp, rax
test rax, rax
jne 0x140001117
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str.Error:__d_n
call fcn.140001070
mov eax, 0x5a4d
cmp word [rbp], ax
jne 0x140001288
movsxd rax, dword [rbp + 0x3c]
add rax, rbp
cmp dword [rax], 0x4550
jne 0x140001288
movups xmm0, xmmword [rax + 0x18]
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x138], rsi
movups xmm1, xmmword [rax + 0x28]
mov qword [rsp + 0x140], rdi
xor edi, edi
movups xmmword [rcx], xmm0
mov qword [rsp + 0x148], r12
movups xmm0, xmmword [rax + 0x38]
mov qword [rsp + 0x118], r14
movups xmmword [rcx + 0x10], xmm1
mov qword [rsp + 0x110], r15
movups xmm1, xmmword [rax + 0x48]
movups xmmword [rcx + 0x20], xmm0
movups xmm0, xmmword [rax + 0x58]
movups xmmword [rcx + 0x30], xmm1
movups xmm1, xmmword [rax + 0x68]
movups xmmword [rcx + 0x40], xmm0
movups xmm0, xmmword [rax + 0x78]
movups xmmword [rcx + 0x50], xmm1
movups xmmword [rcx + 0x60], xmm0
lea rcx, [rcx + 0x80]
movups xmm0, xmmword [rax + 0x88]
sub rax, 0xffffffffffffff68
movups xmmword [rcx - 0x10], xmm0
movups xmm1, xmmword [rax]
movups xmm0, xmmword [rax + 0x10]
movups xmmword [rcx], xmm1
movups xmm1, xmmword [rax + 0x20]
movups xmmword [rcx + 0x10], xmm0
movups xmm0, xmmword [rax + 0x30]
movups xmmword [rcx + 0x20], xmm1
movups xmm1, xmmword [rax + 0x40]
movups xmmword [rcx + 0x30], xmm0
movups xmm0, xmmword [rax + 0x50]
movups xmmword [rcx + 0x40], xmm1
movups xmm1, xmmword [rax + 0x60]
movups xmmword [rcx + 0x50], xmm0
movups xmmword [rcx + 0x60], xmm1
mov eax, dword [rsp + 0x90]
add rax, rbp
mov r15d, dword [rax + 0x1c]
mov esi, dword [rax + 0x20]
add r15, rbp
mov r12d, dword [rax + 0x24]
add rsi, rbp
mov r14d, dword [rax + 0x14]
add r12, rbp
sub r14d, 0xd2
je 0x140001260
nop dword [rax + rax]
mov ebx, dword [rsi]
lea rdx, str.MessageBoxA
add rbx, rbp
mov rcx, rbx
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
test eax, eax
je 0x140001245
inc edi
add rsi, 4
cmp edi, r14d
jb 0x140001220
jmp 0x140001260
movzx ecx, word [r12 + rdi*2]
mov rdx, rbx
mov r8d, dword [r15 + rcx*4]
lea rcx, str.Adress_of_function__s:_0x_p_n
add r8, rbp
call fcn.140001070
mov r14, qword [rsp + 0x118]
mov r12, qword [rsp + 0x148]
mov rdi, qword [rsp + 0x140]
mov rsi, qword [rsp + 0x138]
mov r15, qword [rsp + 0x110]
mov rax, qword gs:[0x60]
mov rbp, qword [rsp + 0x130]
mov rbx, qword [rax + 0x18]
mov rbx, qword [rbx + 0x20]
test rbx, rbx
je 0x1400012c5
cmp word [rbx + 0x48], 0
je 0x1400012c5
mov rdx, qword [rbx + 0x50]
lea rcx, str._i____s___n
call fcn.140001010
mov rbx, qword [rbx]
test rbx, rbx
jne 0x1400012a6
xor eax, eax
add rsp, 0x120
pop rbx
ret
Function at 0x140057fa0
Capabilities:
Encode data using xor

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x50
mov rax, qword [0x14014b958]
test rax, rax
je 0x140057fbf
call rax
mov al, 1
add rsp, 0x50
pop rbp
ret
mov qword [rsp + 0x60], rbx
mov cl, 0x5b
xor ebx, ebx
mov qword [rsp + 0x68], rdi
mov dword [rbp - 0x30], 0x398dae5b
mov r9d, ebx
mov dword [rbp - 0x2c], 0xad3c4ff9
movabs rdi, 0x8080808080808081
mov dword [rbp - 0x28], 0xd21316
lea r10d, [rbx + 0xa]
nop dword [rax]
nop word [rax + rax]
movsx eax, cl
inc eax
movsxd r8, eax
lea rax, [r9 + 0xa]
imul r8, rax
mov rax, rdi
mul r8
shr rdx, 7
imul rax, rdx, 0xff
movsx rdx, cl
sub r8, rax
movzx eax, r9b
and al, 7
shl al, 3
movzx ecx, al
mov rax, rdi
sar rdx, cl
mov rcx, r10
xor r8b, dl
mul r10
add r10, 0xa
shr rdx, 7
imul rax, rdx, 0xff
sub rcx, rax
xor r8b, cl
xor byte [rbp + r9 - 0x2f], r8b
inc r9
cmp r10, 0x6e
jae 0x14005806c
movzx ecx, byte [rbp - 0x30]
jmp 0x140058000
lea rcx, [rbp - 0x2f]
mov byte [rbp - 0x25], bl
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov r10, rax
test rax, rax
je 0x14005814b
movdqa xmm0, xmmword [0x140125a30]
xor eax, eax
movdqu xmmword [rbp - 0x20], xmm0
mov dword [rbp - 0x10], 0x8668484f
mov word [rbp - 0xc], 0xa4b5
lea r9d, [rax + 0x15]
mov byte [rbp - 0xa], al
nop dword [rax + rax]
movsx rcx, byte [rbp - 0x20]
lea eax, [rcx + 1]
movsxd r8, eax
lea rax, [rbx + 0x15]
imul r8, rax
mov rax, rdi
mul r8
shr rdx, 7
imul rax, rdx, 0xff
mov rdx, rcx
sub r8, rax
movzx eax, bl
and al, 7
shl al, 3
movzx ecx, al
mov rax, rdi
sar rdx, cl
mov rcx, r9
xor r8b, dl
mul r9
add r9, 0x15
shr rdx, 7
imul rax, rdx, 0xff
sub rcx, rax
xor r8b, cl
xor byte [rbp + rbx - 0x1f], r8b
inc rbx
cmp r9, 0x1ce
jb 0x1400580b0
lea rdx, [rbp - 0x1f]
mov byte [rbp - 0xa], 0
mov rcx, r10
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14014b958], rax
test rax, rax
je 0x14005814b
call rax
mov rbx, qword [rsp + 0x60]
mov al, 1
mov rdi, qword [rsp + 0x68]
add rsp, 0x50
pop rbp
ret
mov rbx, qword [rsp + 0x60]
xor al, al
mov rdi, qword [rsp + 0x68]
add rsp, 0x50
pop rbp
ret
Function at 0x140058250
Capabilities:
Create process on windows
Enumerate gui resources

Disassembly:
mov r11, rsp
push rbx
sub rsp, 0xf0
mov rax, qword [0x14012f700]
xor rax, rsp
mov qword [rsp + 0xe0], rax
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsp + 0x74], xmm0
mov dword [r11 - 0x24], eax
xor ebx, ebx
mov qword [rsp + 0x60], rax
xor r9d, r9d
lea rax, [rsp + 0x50]
xor r8d, r8d
mov qword [rsp + 0x48], rax
xor edx, edx
lea rax, [rsp + 0x70]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rbx
movups xmmword [r11 - 0x74], xmm0
mov dword [rsp + 0x28], 0x8000000
movups xmmword [r11 - 0x64], xmm0
mov dword [rsp + 0x20], ebx
movups xmmword [r11 - 0x54], xmm0
movups xmmword [r11 - 0x44], xmm0
movups xmmword [r11 - 0x34], xmm0
mov dword [rsp + 0x70], WSAGetLastError
movups xmmword [rsp + 0x50], xmm0
call qword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
je 0x140058356
mov qword [rsp + 0x108], rsi
mov esi, dword [rsp + 0x60]
mov qword [rsp + 0x110], rdi
nop dword [rax + rax]
mov rdx, rsi
lea rcx, [0x140058160]
call qword [sym.imp.USER32.dll_EnumWindows]
cmp byte [0x14014b948], 0
jne 0x14005832e
mov ecx, 5
call qword [sym.imp.KERNEL32.dll_Sleep]
inc ebx
cmp ebx, 0x3a98
jl 0x140058300
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rdi, qword [rsp + 0x110]
mov eax, esi
mov rsi, qword [rsp + 0x108]
mov rcx, qword [rsp + 0xe0]
xor rcx, rsp
call fcn.1400bd3c0
add rsp, 0xf0
pop rbx
ret
Function at 0x14005eb80
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
sub rsp, 8
mov r9, rcx
mov r10d, 0x270
mov ecx, dword [rcx]
cmp ecx, r10d
jne 0x14005ebe1
lea r8, [r9 + 8]
nop dword [rax + rax]
mov edx, dword [r8 - 4]
xor edx, dword [r8]
lea r8, [r8 + 4]
btr edx, 0x1f
xor edx, dword [r8 - 8]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r8 + 0x62c]
xor ecx, edx
mov dword [r8 + 0x9b8], ecx
sub r10, 1
jne 0x14005eba0
mov ecx, dword [r9]
jmp 0x14005eccb
cmp ecx, 0x4e0
jb 0x14005eccb
lea r10, [r9 + 0x9c4]
mov qword [rsp], rbx
mov r11d, dword [r10]
mov ebx, 0xe3
mov eax, r11d
mov r8, r10
mov r11d, dword [r10 + 4]
add r10, 4
mov edx, r11d
xor edx, eax
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r8 + 0x634]
xor ecx, edx
mov dword [r8 - 0x9c0], ecx
sub rbx, 1
jne 0x14005ec00
lea r10, [r9 + 0xd50]
mov ebx, 0x18c
mov r11d, dword [r10]
nop
mov eax, r11d
mov r8, r10
mov r11d, dword [r10 + 4]
mov edx, eax
xor edx, r11d
add r10, 4
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r8 - 0xd4c]
xor ecx, edx
mov dword [r8 - 0x9c0], ecx
sub rbx, 1
jne 0x14005ec50
mov eax, dword [r9 + 0x1380]
mov edx, eax
xor edx, dword [r9 + 4]
mov rbx, qword [rsp]
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r9 + 0x634]
xor ecx, edx
mov dword [r9 + 0x9c0], ecx
xor ecx, ecx
mov dword [r9], ecx
mov eax, ecx
mov edx, dword [r9 + rax*4 + 4]
lea eax, [rcx + 1]
mov dword [r9], eax
mov ecx, edx
mov eax, dword [r9 + 0x1384]
shr ecx, 0xb
and eax, ecx
xor edx, eax
mov eax, edx
and eax, 0xff3a58ad
shl eax, 7
xor edx, eax
mov eax, edx
and eax, 0xffffdf8c
shl eax, 0xf
xor edx, eax
mov eax, edx
shr eax, 0x12
xor eax, edx
add rsp, 8
ret

Function at 0x14005ee50
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
mov dword [rcx + 4], edx
lea r9, [rcx + 8]
mov eax, 1
nop dword [rax]
mov r8d, edx
lea r9, [r9 + 4]
shr r8d, 0x1e
xor r8d, edx
imul edx, r8d, 0x6c078965
add edx, eax
inc rax
mov dword [r9 - 4], edx
cmp rax, 0x270
jb 0x14005ee60
mov dword [rcx], 0x270
ret
Function at 0x140068ba0
Capabilities:
Encode data using xor
Hash data using djb2

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
test rcx, rcx
je 0x140068c82
call fcn.14007f7f0
test al, al
jne 0x140068c82
mov qword [rsp + 0x30], rsi
xor esi, esi
mov qword [rsp + 0x38], rdi
mov rdi, 0xffffffffffffffff
inc rdi
cmp byte [rbx + rdi], sil
jne 0x140068bd2
mov r8, rdi
mov edx, reloc.WLDAP32.dll_Ordinal_46
mov rcx, rbx
call fcn.14008a830
test rax, rax
je 0x140068c17
sub rax, rbx
mov edx, reloc.WLDAP32.dll_Ordinal_46
mov r8, rax
mov rcx, rbx
call fcn.14008a830
mov rsi, rax
test rax, rax
je 0x140068c17
inc rsi
mov rcx, rbx
sub rcx, rsi
add rdi, rcx
test rsi, rsi
cmovne rbx, rsi
lea rsi, [rbx + rdi]
mov edi, 0x1505
cmp rbx, rsi
jae 0x140068c4b
nop dword [rax]
movzx ecx, byte [rbx]
call fcn.14007adf0
imul rdi, rdi, 0x21
movsx rcx, al
inc rbx
xor rdi, rcx
cmp rbx, rsi
jb 0x140068c30
mov rsi, qword [rsp + 0x30]
mov rcx, rdi
movabs rax, 0x410410410410411
mul rdi
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 5
imul rcx, rcx, 0x3f
sub rdi, rcx
mov rax, rdi
mov rdi, qword [rsp + 0x38]
add rsp, 0x20
pop rbx
ret
xor eax, eax
add rsp, 0x20
pop rbx
ret
Function at 0x140078bf0
Capabilities:
Get common file path
Initialize winsock library

Disassembly:
sub rsp, 0x1e8
mov rax, qword [0x14012f700]
xor rax, rsp
mov qword [rsp + 0x1d0], rax
test cl, 2
je 0x140078c56
mov ecx, 0x202
lea rdx, [rsp + 0x30]
call qword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
jne 0x140078c39
movzx eax, word [rsp + 0x30]
cmp al, 2
jne 0x140078c33
shr ax, 8
cmp al, 2
je 0x140078c56
call qword [sym.imp.WS2_32.dll_WSACleanup]
mov eax, 2
mov rcx, qword [rsp + 0x1d0]
xor rcx, rsp
call fcn.1400bd3c0
add rsp, 0x1e8
ret
call fcn.1400aeb90
test eax, eax
jne 0x140078e55
mov qword [rsp + 0x200], rsi
lea rcx, [0x14010a0a0]
mov qword [rsp + 0x208], rdi
xor esi, esi
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rdi, rax
test rax, rax
jne 0x140078c96
mov qword [0x14014a648], rsi
jmp 0x140078e12
mov qword [rsp + 0x1f0], rbx
lea rdx, str.LoadLibraryExA
mov rcx, rdi
mov qword [rsp + 0x1f8], rbp
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rbx, str.iphlpapi.dll
mov rbp, rax
mov rcx, rbx
lea rdx, [0x14010a0c0]
call fcn.1400cab80
test rax, rax
je 0x140078cfa
mov rcx, rbx
test rbp, rbp
je 0x140078cec
xor edx, edx
lea r8d, [rdx + 8]
call rbp
mov rsi, rax
jmp 0x140078dda
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rsi, rax
jmp 0x140078dda
test rbp, rbp
je 0x140078d29
lea rdx, str.AddDllDirectory
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x140078d29
xor edx, edx
mov r8d, 0x800
mov rcx, rbx
call rbp
mov rsi, rax
jmp 0x140078dda
xor edx, edx
mov qword [rsp + 0x1e0], r14
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
mov r14d, eax
test eax, eax
je 0x140078dd2
lea ecx, [rax + 1]
add rcx, 0xc
call qword [str._fx_f_]
mov rdi, rax
test rax, rax
je 0x140078dc9
mov edx, r14d
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
je 0x140078dc9
mov rcx, 0xffffffffffffffff
mov rax, rcx
cmp byte [rdi + rax + 1], sil
lea rax, [rax + 1]
jne 0x140078d75
mov word [rax + rdi], 0x5c
inc rcx
cmp byte [rdi + rcx], sil
jne 0x140078d86
mov rdx, rdi
sub rdx, rbx
add rdx, rcx
nop dword [rax + rax]
movzx eax, byte [rbx]
mov byte [rdx + rbx], al
lea rbx, [rbx + 1]
test al, al
jne 0x140078da0
mov rcx, rdi
test rbp, rbp
je 0x140078dc0
xor edx, edx
lea r8d, [rdx + 8]
call rbp
jmp 0x140078dc6
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rsi, rax
mov rcx, rdi
call qword [fcn.1400c781c]
mov r14, qword [rsp + 0x1e0]
mov rbp, qword [rsp + 0x1f8]
mov rbx, qword [rsp + 0x1f0]
mov qword [0x14014a648], rsi
test rsi, rsi
je 0x140078e12
lea rdx, str.if_nametoindex
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x140078e12
mov qword [0x14014a640], rax
xor edx, edx
mov dword [rsp + 0x20], 3
mov r9d, 2
xor r8d, r8d
lea ecx, [rdx + 6]
call fcn.1400ae740
test al, al
lea rcx, [0x14014b970]
setne byte [0x14014b968]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov rdi, qword [rsp + 0x208]
xor eax, eax
mov rsi, qword [rsp + 0x200]
mov rcx, qword [rsp + 0x1d0]
xor rcx, rsp
call fcn.1400bd3c0
add rsp, 0x1e8
ret
Function at 0x14008afe0
Capabilities:
Move file

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x60
mov rbx, rcx
movaps xmmword [rsp + 0x50], xmm6
lea rcx, [rsp + 0x30]
mov rdi, rdx
call fcn.140068f90
mov rcx, rbx
movups xmm6, xmmword [rax]
call case.0x140071b33.1
mov rcx, rdi
mov rsi, rax
call case.0x140071b33.1
mov r8d, 1
mov rdx, rax
mov rcx, rsi
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_MoveFileExA]
test eax, eax
jne 0x14008b090
nop dword [rax]
nop word [rax + rax]
lea rcx, [rsp + 0x40]
movdqa xmmword [rsp + 0x20], xmm6
call fcn.140068f90
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x30]
movups xmm0, xmmword [rax]
movaps xmmword [rsp + 0x30], xmm0
call fcn.140069020
cmp rax, 0x3e8
ja 0x14008b0c1
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov r8d, 1
mov rdx, rbx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_MoveFileExA]
test eax, eax
je 0x14008b040
test rsi, rsi
je 0x14008b09d
mov rcx, rsi
call fcn.1400c781c
test rbx, rbx
je 0x14008b0aa
mov rcx, rbx
call fcn.1400c781c
xor eax, eax
mov rbx, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
movaps xmm6, xmmword [rsp + 0x50]
add rsp, 0x60
pop rdi
ret
test rsi, rsi
je 0x14008b0ce
mov rcx, rsi
call fcn.1400c781c
test rbx, rbx
je 0x14008b0db
mov rcx, rbx
call fcn.1400c781c
mov eax, 1
jmp 0x14008b0ac
Function at 0x14008b640
Capabilities:
Resolve dns

Disassembly:
push rdi
push r12
push r13
push r15
sub rsp, 0x28
mov r13, r9
xor edi, edi
mov qword [r9], rdi
xor r15d, r15d
lea r9, [rsp + 0x68]
call qword [sym.imp.WS2_32.dll_getaddrinfo]
mov r12d, eax
test eax, eax
jne 0x14008b7de
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x60], rsi
mov rsi, qword [rsp + 0x68]
test rsi, rsi
je 0x14008b7be
mov qword [rsp + 0x58], rbp
mov qword [rsp + 0x20], r14
nop
mov rax, qword [rsi + 0x18]
test rax, rax
je 0x14008b6ae
mov rbx, 0xffffffffffffffff
inc rbx
cmp byte [rax + rbx], 0
jne 0x14008b6a0
inc rbx
jmp 0x14008b6b0
xor ebx, ebx
mov eax, dword [rsi + 4]
cmp eax, 2
jne 0x14008b6bd
lea ebp, [rax + 0xe]
jmp 0x14008b6c9
cmp eax, 0x17
jne 0x14008b761
lea ebp, [rax + 5]
cmp qword [rsi + 0x20], 0
je 0x14008b761
mov rax, qword [rsi + 0x10]
test rax, rax
je 0x14008b761
cmp rax, rbp
jb 0x14008b761
lea rcx, [rbp + 0x30]
add rcx, rbx
call qword [str._fx_f_]
mov r14, rax
test rax, rax
je 0x14008b770
mov ecx, dword [rsi]
mov r8, rbp
mov dword [rax], ecx
mov ecx, dword [rsi + 4]
mov dword [rax + 4], ecx
mov ecx, dword [rsi + 8]
mov dword [rax + 8], ecx
mov ecx, dword [rsi + 0xc]
mov dword [rax + 0xc], ecx
lea rcx, [r14 + 0x30]
mov dword [rax + 0x10], ebp
xor eax, eax
mov qword [r14 + 0x18], rax
mov qword [r14 + 0x28], rax
mov qword [r14 + 0x20], rcx
mov rdx, qword [rsi + 0x20]
call fcn.1400e4bf0
test rbx, rbx
je 0x14008b74e
mov rcx, qword [r14 + 0x20]
mov r8, rbx
add rcx, rbp
mov qword [r14 + 0x18], rcx
mov rdx, qword [rsi + 0x18]
call fcn.1400e4bf0
test rdi, rdi
cmove rdi, r14
test r15, r15
je 0x14008b75e
mov qword [r15 + 0x28], r14
mov r15, r14
mov rsi, qword [rsi + 0x28]
test rsi, rsi
jne 0x14008b690
jmp 0x14008b776
mov r12d, 8
mov rcx, qword [rsp + 0x68]
mov r14, qword [rsp + 0x20]
mov rbp, qword [rsp + 0x58]
test rcx, rcx
je 0x14008b790
call qword [sym.imp.WS2_32.dll_freeaddrinfo]
test r12d, r12d
je 0x14008b7b9
test rdi, rdi
je 0x14008b7b5
nop word [rax + rax]
mov rbx, qword [rdi + 0x28]
mov rcx, rdi
call qword [fcn.1400c781c]
mov rdi, rbx
test rbx, rbx
jne 0x14008b7a0
xor edi, edi
jmp 0x14008b7cd
test rdi, rdi
jne 0x14008b7cd
mov r12d, 0x2af9
mov ecx, r12d
call qword [sym.imp.WS2_32.dll_WSASetLastError]
mov rsi, qword [rsp + 0x60]
mov eax, r12d
mov rbx, qword [rsp + 0x50]
mov qword [r13], rdi
add rsp, 0x28
pop r15
pop r13
pop r12
pop rdi
ret