joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140081384
Capabilities:
Read file on windows

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r14
sub rsp, 0x20
mov rbx, rcx
test rcx, rcx
jne 0x1400810aa
call fcn.140060730
mov dword [rax], SafeArrayPutElement
call fcn.14005c4cc
jmp 0x1400811f5
mov eax, dword [rcx + 0x14]
shr eax, 0xd
test al, 1
je 0x1400811f5
mov eax, dword [rcx + 0x14]
shr eax, 0xc
test al, 1
jne 0x1400811f5
mov eax, dword [rcx + 0x14]
shr eax, 1
test al, 1
je 0x1400810d9
lock or dword [rcx + 0x14], 0x10
jmp 0x1400811f5
lock or dword [rcx + 0x14], 1
mov eax, dword [rcx + 0x14]
test eax, 0x4c0
jne 0x1400810ed
call fcn.14008138c
mov esi, dword [rbx + 0x10]
cmp esi, 1
jne 0x1400810fd
mov rax, qword [rbx]
mov bpl, byte [rax]
jmp 0x140081100
xor bpl, bpl
mov rdi, qword [rbx + 8]
mov rcx, rbx
mov qword [rbx], rdi
call fcn.1400745c8
mov r8d, dword [rbx + 0x20]
mov ecx, eax
mov rdx, rdi
call fcn.140084cd4
mov dword [rbx + 0x10], eax
lea ecx, [rax + 1]
cmp ecx, 2
jbe 0x1400811e3
mov eax, dword [rbx + 0x14]
test al, 6
jne 0x140081191
mov rcx, rbx
call fcn.1400745c8
cmp eax, 0xffffffff
je 0x14008117c
mov rcx, rbx
call fcn.1400745c8
cmp eax, 0xfffffffe
je 0x14008117c
mov rcx, rbx
call fcn.1400745c8
movsxd rdi, eax
lea r14, [0x1400c11c0]
mov rcx, rbx
sar rdi, 6
call fcn.1400745c8
mov rcx, qword [r14 + rdi*8]
and eax, 0x3f
shl rax, 6
lea rdx, [rax + rcx]
jmp 0x140081183
lea rdx, [0x1400be430]
mov al, byte [rdx + 0x38]
and al, 0x82
cmp al, 0x82
jne 0x140081191
lock or dword [rbx + 0x14], 0x20
cmp dword [rbx + 0x20], 0x200
jne 0x1400811b5
mov eax, dword [rbx + 0x14]
shr eax, 6
test al, 1
je 0x1400811b5
mov eax, dword [rbx + 0x14]
shr eax, 8
test al, 1
jne 0x1400811b5
mov dword [rbx + 0x20], 0x1000
mov rax, qword [rbx]
cmp esi, 1
jne 0x1400811d3
movzx ecx, byte [rax]
dec dword [rbx + 0x10]
shl cx, 8
movzx eax, bpl
or cx, ax
inc qword [rbx]
jmp 0x1400811de
movzx ecx, word [rax]
add dword [rbx + 0x10], 0xfffffffe
add qword [rbx], 2
movzx eax, cx
jmp 0x1400811fa
neg eax
sbb eax, eax
and eax, 8
add eax, 8
lock or dword [rbx + 0x14], eax
and dword [rbx + 0x10], 0
mov eax, 0xffff
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret
jmp 0x140081074
Function at 0x100001f08
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x18
xor edx, edx
cmp rcx, rdx
je 0x100001f55
cmp rcx, 0xffffffffffffffff
je 0x100001f55
mov eax, 0x5a4d
cmp word [rcx], ax
jne 0x100001f4d
cmp dword [rcx + 0x3c], edx
jl 0x100001f4d
cmp dword [rcx + 0x3c], 0x10000000
jae 0x100001f4d
movsxd rax, dword [rcx + 0x3c]
add rax, rcx
mov qword [rsp], rax
cmp dword [rax], 0x4550
cmovne rax, rdx
mov rdx, rax
mov qword [rsp], rax
jmp 0x100001f55
mov rax, rdx
add rsp, 0x18
ret
Function at 0x140001000
Capabilities:
Create thread
Encode data using xor
Get memory capacity
Get system information on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0xc0
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0xb0], rax
mov ecx, 0x3b9aca00
mov dword [rsp + 0x30], 0
mov rsi, rdx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rdi, rax
call qword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, 0x3e8
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_Sleep]
call qword [sym.imp.WINMM.dll_timeGetTime]
test rdi, rdi
je 0x1400011b8
lea ecx, [rbx + 0x3e8]
cmp eax, ecx
jbe 0x1400011b8
lea ecx, [rbx + 0x41a]
cmp eax, ecx
jae 0x1400011b8
mov rcx, qword [rsi]
lea rdx, str.MalwareProject.exe
call qword [sym.imp.VCRUNTIME140.dll_strstr]
test rax, rax
je 0x1400011df
call qword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
jne 0x1400011df
lea rcx, [rsp + 0x80]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
cmp dword [rsp + 0xa0], 2
jb 0x1400011df
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0x40
call qword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
mov rax, qword [rsp + 0x48]
shr rax, 0x1e
cmp eax, 2
jb 0x1400011df
xor edx, edx
mov r8d, 0x3b9aca00
mov rcx, rdi
call sub.VCRUNTIME140.dll_memset
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
xor ecx, ecx
mov edx, 0x1cc
mov r8d, 0x3000
lea r9d, [rcx + 4]
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
xor r9d, r9d
lea r8, [0x1400040a0]
xor r10d, r10d
lea r11, str.mysuperdupersecretkey
mov rbx, rax
nop word [rax + rax]
xor ecx, ecx
lea r8, [r8 + 1]
cmp r10, 0x15
cmovne rcx, r10
inc r9d
movzx eax, byte [rcx + r11]
lea r10, [rcx + 1]
xor byte [r8 - 1], al
cmp r9d, 0x1cc
jb 0x140001130
mov r8d, 0x1cc
lea rdx, [0x1400040a0]
mov rcx, rbx
call sub.VCRUNTIME140.dll_memmove
lea r9, [rsp + 0x30]
mov edx, 0x1cc
mov r8d, 0x20
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x1400011b8
mov qword [rsp + 0x28], 0
xor r9d, r9d
mov r8, rbx
mov dword [rsp + 0x20], 0
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov rcx, rax
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
xor eax, eax
mov rcx, qword [rsp + 0xb0]
xor rcx, rsp
call fcn.140001200
lea r11, [rsp + 0xc0]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x20]
mov rsp, r11
pop rdi
ret
mov eax, 0xfffffffe
jmp 0x1400011ba

Function at 0x140001ac8
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x140001b12
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x140001b12
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x140001b12
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x140001b12
cmp dword [rcx + 0x84], 0xe
jbe 0x140001b12
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x140001b14
xor al, al
add rsp, 0x28
ret
Function at 0x1400018dc
Capabilities:
Write file on windows

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
push rdi
sub rsp, 0x40
xor ebx, ebx
mov esi, r8d
mov qword [rax - 0x18], rbx
mov rbp, rdx
mov dword [rax - 0x20], 0x80
xor r9d, r9d
xor r8d, r8d
mov dword [rax - 0x28], 2
mov edx, 0x40000000
mov dword [rax + 0x20], ebx
call qword [sym.imp.KERNEL32.dll_CreateFileA]
nop dword [rax + rax]
mov rdi, rax
cmp rax, 0xffffffffffffffff
jne 0x140001955
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovns ecx, eax
mov ebx, ecx
jmp 0x1400019b3
lea r9, [rsp + 0x68]
mov qword [rsp + 0x20], rbx
mov r8d, esi
mov rdx, rbp
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_WriteFile]
nop dword [rax + rax]
test eax, eax
je 0x14000197e
cmp dword [rsp + 0x68], esi
je 0x1400019a4
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovns ecx, eax
mov ebx, ecx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop dword [rax + rax]
mov rbp, qword [rsp + 0x58]
mov eax, ebx
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x60]
add rsp, 0x40
pop rdi
ret
Function at 0x1400019d4
Capabilities:
Get file size
Read file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r14
sub rsp, 0x40
mov rsi, r8
mov rdi, rdx
test rcx, rcx
jne 0x1400019fb
mov eax, 0x80070057
jmp 0x140001b24
xor ebx, ebx
and dword [rsp + 0x60], ebx
test rdi, rdi
jne 0x140001a0b
xor r14d, r14d
jmp 0x140001a0e
mov r14d, dword [r8]
and qword [rsp + 0x30], rbx
xor r9d, r9d
mov dword [rsp + 0x28], 0x8000080
mov edx, 0x80000000
mov dword [rsp + 0x20], 3
lea r8d, [r9 + 1]
call qword [sym.imp.KERNEL32.dll_CreateFileA]
nop dword [rax + rax]
mov rbp, rax
cmp rax, 0xffffffffffffffff
jne 0x140001a6d
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
mov eax, 0x80004005
test ebx, ebx
cmovns ebx, eax
jmp 0x140001b22
xor edx, edx
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_GetFileSize]
nop dword [rax + rax]
mov dword [rsi], eax
cmp eax, 0xffffffff
jne 0x140001aae
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
mov eax, 0x80004005
test ebx, ebx
cmovns ebx, eax
and dword [rsi], 0
jmp 0x140001b13
cmp eax, r14d
jbe 0x140001ac0
neg rdi
sbb ebx, ebx
and ebx, 0x8007007a
jmp 0x140001b13
test eax, eax
je 0x140001b13
and qword [rsp + 0x20], rbx
lea r9, [rsp + 0x60]
mov r8d, eax
mov rdx, rdi
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_ReadFile]
nop dword [rax + rax]
test eax, eax
je 0x140001aef
mov eax, dword [rsp + 0x60]
cmp dword [rsi], eax
je 0x140001b13
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
mov eax, 0x80004005
test ebx, ebx
cmovns ebx, eax
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop dword [rax + rax]
mov eax, ebx
mov rbx, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x70]
add rsp, 0x40
pop r14
pop rdi
pop rsi
ret
Function at 0x140001b40
Capabilities:
Write file on windows

Disassembly:
mov r11, rsp
mov qword [r11 + 0x10], rdx
mov qword [r11 + 0x18], r8
mov qword [r11 + 0x20], r9
push rbx
push rsi
push rdi
sub rsp, 0x450
mov rax, qword [0x14001f078]
xor rax, rsp
mov qword [rsp + 0x440], rax
and dword [rsp + 0x30], 0
lea r9, [r11 + 0x18]
mov rsi, rcx
mov r8, rdx
mov edi, 0x3ff
lea rcx, [rsp + 0x40]
mov edx, edi
xor ebx, ebx
call qword [sym.imp.msvcrt.dll__vsnprintf]
nop dword [rax + rax]
test eax, eax
js 0x140001baa
cdqe
cmp rax, rdi
ja 0x140001baa
jne 0x140001bb6
mov byte [rsp + 0x43f], bl
jmp 0x140001bbe
mov byte [rsp + 0x43f], bl
mov ebx, 0x8007007a
test ebx, ebx
js 0x140001c6b
mov r10d, 0x400
lea rax, [rsp + 0x40]
mov r9d, r10d
cmp byte [rax], 0
je 0x140001bda
inc rax
sub r9, 1
jne 0x140001bcc
mov rax, r9
mov rcx, r10
neg rax
mov r8, r9
mov rax, r9
sbb ebx, ebx
sub rcx, r9
not ebx
and ebx, 0x80070057
neg rax
sbb rdx, rdx
and rdx, rcx
neg r8
sbb rdi, rdi
and rdi, rdx
test r9, r9
je 0x140001c6b
cmp rdi, r10
ja 0x140001c3e
and qword [rsp + 0x20], 0
lea r9, [rsp + 0x30]
mov r8d, edi
lea rdx, [rsp + 0x40]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_WriteFile]
nop dword [rax + rax]
test eax, eax
je 0x140001c45
cmp dword [rsp + 0x30], edi
je 0x140001c6b
mov ebx, 0x80004005
jmp 0x140001c6b
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov ebx, 0x80004005
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
cmovle ecx, eax
test ecx, ecx
cmovns ecx, ebx
mov ebx, ecx
mov eax, ebx
mov rcx, qword [rsp + 0x440]
xor rcx, rsp
call fcn.1400156d0
add rsp, 0x450
pop rdi
pop rsi
pop rbx
ret
Function at 0x140003320
Capabilities:
Check os version

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0xe0
mov rax, qword [0x14001f078]
xor rax, rsp
mov qword [rsp + 0xd0], rax
lea rcx, [rsp + 0x30]
mov dword [rsp + 0x30], 0x94
mov rsi, r8
mov rdi, rdx
call qword [sym.imp.KERNEL32.dll_GetVersionExA]
nop dword [rax + rax]
xor ebx, ebx
mov edx, 1
cmp dword [rsp + 0x34], 5
jne 0x140003379
mov eax, edx
cmp dword [rsp + 0x38], ebx
je 0x14000337b
mov eax, ebx
neg eax
mov r8, rdi
sbb ecx, ecx
or r9d, 0xffffffff
and ecx, 0x38a
mov dword [rsp + 0x28], r9d
add ecx, 0x7f
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_CompareStringA]
nop dword [rax + rax]
cmp eax, 2
sete bl
mov eax, ebx
mov rcx, qword [rsp + 0xd0]
xor rcx, rsp
call fcn.1400156d0
lea r11, [rsp + 0xe0]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret
Function at 0x14000c8cc
Capabilities:
Create process on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0xe0
mov rsi, rdx
lea rcx, [rsp + 0x74]
xor edx, edx
mov rdi, r8
lea r8d, [rdx + 0x64]
call sub.msvcrt.dll_memset
mov rcx, qword [0x14001f098]
lea rdx, str.Executing:
xorps xmm0, xmm0
mov dword [rsp + 0x70], 0x68
xor eax, eax
movups xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], rax
call fcn.140001b40
mov ebx, eax
test eax, eax
js 0x14000c9ea
mov rcx, qword [0x14001f098]
mov rdx, rdi
call fcn.140001b40
mov ebx, eax
test eax, eax
js 0x14000c9ea
mov rcx, qword [0x14001f098]
lea rdx, [0x140017bec]
call fcn.140001b40
mov ebx, eax
test eax, eax
js 0x14000c9ea
lea rax, [rsp + 0x50]
xor r9d, r9d
mov qword [rsp + 0x48], rax
xor r8d, r8d
lea rax, [rsp + 0x70]
mov rdx, rdi
mov qword [rsp + 0x40], rax
xor ecx, ecx
and qword [rsp + 0x38], 0
and qword [rsp + 0x30], 0
and dword [rsp + 0x28], 0
and dword [rsp + 0x20], 0
call qword [sym.imp.KERNEL32.dll_CreateProcessA]
nop dword [rax + rax]
test eax, eax
jne 0x14000c9aa
mov ebx, 0x80004005
jmp 0x14000c9ea
mov rcx, qword [rsp + 0x50]
or edi, 0xffffffff
mov edx, edi
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
nop dword [rax + rax]
cmp eax, edi
jne 0x14000c9ea
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov ebx, 0x80004005
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
cmovle ecx, eax
test ecx, ecx
cmovns ecx, ebx
mov ebx, ecx
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x14000ca00
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop dword [rax + rax]
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x14000ca16
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop dword [rax + rax]
test ebx, ebx
jns 0x14000ca2c
mov r8d, ebx
lea rdx, str.XML__ExecCommandSync_failed:__hr_r_n
mov rcx, rsi
call fcn.14000eef8
lea r11, [rsp + 0xe0]
mov eax, ebx
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rsp, r11
pop rdi
ret
Function at 0x14000d384
Capabilities:
Enumerate pe sections
Parse pe header

Disassembly:
sub rsp, 0x18
mov r9, rcx
xor r8d, r8d
mov r10, qword [rcx + 0x10]
mov eax, 0x5a4d
mov r11d, 0x4550
cmp word [r10], ax
je 0x14000d3b3
cmp word [r10], r11w
jne 0x14000d430
cmp word [r10], ax
jne 0x14000d3e1
cmp dword [r10 + 0x3c], r8d
je 0x14000d430
movsxd rdx, dword [r10 + 0x3c]
add rdx, r10
mov qword [rcx + 0x18], rdx
mov ecx, dword [rcx + 0x50]
add rcx, r10
lea rax, [rdx + 0x108]
cmp rax, rcx
ja 0x14000d430
lea rax, [r10 + 0x40]
cmp rdx, rax
jae 0x14000d3e8
jmp 0x14000d430
mov qword [rcx + 0x18], r10
mov rdx, r10
cmp dword [rdx], r11d
jne 0x14000d430
mov byte [r9 + 0x3d], r8b
cmp word [rdx + 0x14], r8w
je 0x14000d430
cmp byte [rdx + 0x1a], 3
jae 0x14000d404
cmp byte [rdx + 0x1b], 5
jb 0x14000d430
lea rax, [r9 + 0x40]
mov qword [r9 + 0x48], rax
mov qword [rax], rax
movzx eax, word [rdx + 6]
mov dword [r9 + 0x28], eax
movzx eax, word [rdx + 0x14]
lea rcx, [rdx + 0x18]
add rcx, rax
mov qword [r9 + 0x30], rcx
mov r8d, 1
mov dword [rsp], r8d
jmp 0x14000d439
mov eax, r8d
add rsp, 0x18
ret

Function at 0x14000d8ac
Capabilities:
Get file size
Read file via mapping

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r14
sub rsp, 0x40
xor ebx, ebx
mov r14, r9
mov rdi, r8
mov rsi, rdx
sub ecx, 1
je 0x14000d985
sub ecx, 1
je 0x14000d8f3
cmp ecx, 1
je 0x14000d8e6
mov ebx, 0x80070057
jmp 0x14000da08
movups xmm0, xmmword [rdx]
movdqu xmmword [r8], xmm0
jmp 0x14000da08
lea rdx, [rsp + 0x60]
mov dword [rsp + 0x60], ebx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetFileSize]
nop dword [rax + rax]
mov ebp, eax
cmp eax, 0xffffffff
je 0x14000d9c1
cmp dword [rsp + 0x60], ebx
je 0x14000d926
mov ebx, 0x800703ee
jmp 0x14000da08
xor r9d, r9d
mov qword [rsp + 0x28], rbx
xor edx, edx
mov dword [rsp + 0x20], ebx
mov rcx, rsi
lea r8d, [r9 + 2]
call qword [sym.imp.KERNEL32.dll_CreateFileMappingA]
nop dword [rax + rax]
mov rcx, rax
mov rax, qword [rsp + 0x80]
mov qword [rax], rcx
test rcx, rcx
je 0x14000d9c1
xor r9d, r9d
mov qword [rsp + 0x20], rbx
xor r8d, r8d
lea edx, [r9 + 4]
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
nop dword [rax + rax]
mov qword [rdi + 8], rax
test rax, rax
je 0x14000d9c1
mov dword [rdi], ebp
jmp 0x14000da08
xor r9d, r9d
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], 0x80
mov edx, 0x80000000
mov rcx, rsi
mov dword [rsp + 0x20], 3
lea r8d, [r9 + 1]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
nop dword [rax + rax]
mov qword [r14], rax
mov rdx, rax
cmp rax, 0xffffffffffffffff
jne 0x14000d9e9
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovns ecx, eax
mov ebx, ecx
jmp 0x14000da08
mov rax, qword [rsp + 0x80]
mov r9, r14
mov r8, rdi
mov qword [rsp + 0x20], rax
mov ecx, 2
call fcn.14000d8ac
mov ebx, eax
mov rbp, qword [rsp + 0x70]
mov eax, ebx
mov rbx, qword [rsp + 0x68]
add rsp, 0x40
pop r14
pop rdi
pop rsi
ret
Function at 0x14000e9f8
Capabilities:
Print debug messages

Disassembly:
mov r11, rsp
mov qword [r11 + 8], rcx
mov qword [r11 + 0x10], rdx
mov qword [r11 + 0x18], r8
mov qword [r11 + 0x20], r9
push rbx
push rdi
sub rsp, 0x438
mov rax, qword [0x14001f078]
xor rax, rsp
mov qword [rsp + 0x420], rax
xor ebx, ebx
cmp dword [0x140020668], ebx
je 0x14000ea98
mov r8, rcx
lea r9, [r11 + 0x10]
mov edi, 0x3ff
lea rcx, [rsp + 0x20]
mov edx, edi
call qword [sym.imp.msvcrt.dll__vsnprintf]
nop dword [rax + rax]
test eax, eax
js 0x14000ea98
movsxd rcx, eax
cmp rcx, rdi
ja 0x14000ea98
movzx eax, byte [rsp + 0x41f]
lea rcx, [rsp + 0x20]
cmove eax, ebx
mov byte [rsp + 0x41f], al
lea eax, [rdi + 1]
cmp byte [rcx], bl
je 0x14000ea82
inc rcx
sub rax, 1
jne 0x14000ea75
test rax, rax
je 0x14000ea98
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
nop dword [rax + rax]
mov rcx, qword [rsp + 0x420]
xor rcx, rsp
call fcn.1400156d0
add rsp, 0x438
pop rdi
pop rbx
ret
Function at 0x14000fb0c
Capabilities:
Check for time delay via queryperformancecounter
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r13
push rbp
push r14
push r15
lea rbp, [rax - 0x178]
sub rsp, 0x260
mov rax, qword [0x14001f078]
xor rax, rsp
mov qword [rbp + 0x158], rax
mov ecx, 0x208
call fcn.140015308
mov qword [rsp + 0x20], rax
test rax, rax
je 0x14000fb65
and dword [rax + 0x200], 0
and dword [rax + 0x204], 0
mov qword [0x140020670], rax
test rax, rax
jne 0x14000fb7b
mov ebx, 0x8007000e
jmp 0x14000fccb
xor ebx, ebx
lea rcx, [rsp + 0x20]
and dword [rbp + 0x130], ebx
and dword [rbp + 0x134], ebx
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
nop dword [rax + rax]
test eax, eax
jne 0x14000fbc7
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
mov eax, 0x80004005
test ebx, ebx
cmovns ebx, eax
jmp 0x14000fcaf
call qword [sym.imp.KERNEL32.dll_GetTickCount]
nop dword [rax + rax]
mov edi, dword [rsp + 0x20]
lea r8, [rsp + 0x20]
xor edi, eax
lea rcx, [rsp + 0x30]
mov dword [rsp + 0x20], edi
mov edx, 8
xor edi, dword [rsp + 0x24]
call fcn.1400109cc
mov r15d, dword [rbp + 0x134]
lea rsi, [rbp + 0x140]
mov r13d, dword [rbp + 0x130]
mov r14d, 0x14
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
nop dword [rax + rax]
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
nop dword [rax + rax]
mov ecx, edi
mov eax, edi
shl ecx, 0x18
shr eax, 8
mov edi, ecx
xor edi, eax
lea eax, [r13 + 1]
xor edi, dword [rsp + 0x20]
movzx r8d, al
mov dword [rbp + 0x130], r8d
movzx eax, byte [rbp + r8 + 0x30]
add eax, r15d
movzx edx, al
mov dword [rbp + 0x134], edx
mov cl, byte [rbp + r8 + 0x30]
mov al, byte [rbp + rdx + 0x30]
mov byte [rbp + r8 + 0x30], al
mov byte [rbp + rdx + 0x30], cl
mov r15d, dword [rbp + 0x134]
mov r13d, dword [rbp + 0x130]
movzx edx, byte [rbp + r15 + 0x30]
movzx ecx, byte [rbp + r13 + 0x30]
add rdx, rcx
movzx eax, dl
mov cl, byte [rbp + rax + 0x30]
xor cl, byte [rsi]
xor cl, dil
mov byte [rsi], cl
inc rsi
sub r14, 1
jne 0x14000fc10
test ebx, ebx
js 0x14000fccb
mov rcx, qword [0x140020670]
lea r8, [rbp + 0x140]
mov edx, 0x14
call fcn.1400109cc
mov eax, ebx
mov rcx, qword [rbp + 0x158]
xor rcx, rsp
call fcn.1400156d0
lea r11, [rsp + 0x260]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov r13, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
Function at 0x1400106a4
Capabilities:
Encrypt data using des

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0xc8
mov rax, qword [0x14001f078]
xor rax, rsp
mov qword [rsp + 0xb8], rax
mov rbx, qword [rsp + 0x120]
mov rsi, r8
mov edi, edx
mov rbp, rcx
test edx, edx
je 0x140010677
test r8, r8
je 0x140010677
test r9, r9
je 0x140010677
test rbx, rbx
je 0x140010586
mov edx, dword [r9]
jmp 0x140010588
xor edx, edx
mov eax, edi
and al, 7
neg al
mov eax, edi
sbb ecx, ecx
and eax, 0xfffffff8
and ecx, 8
add eax, ecx
mov dword [r9], eax
cmp eax, edx
jbe 0x1400105b0
neg rbx
sbb eax, eax
and eax, 0x8007007a
jmp 0x14001067c
cmp rbx, r8
jbe 0x1400105c8
lea rax, [r8 + rdi]
cmp rbx, rax
jae 0x1400105c8
mov eax, 0x800706f8
jmp 0x14001067c
lea rdx, [rbp + 0xc]
lea rcx, [rsp + 0x30]
call fcn.14001199c
mov r15d, eax
test eax, eax
js 0x140010672
cmp dword [rbp + 4], 0x6663
lea rax, [0x14001f8a0]
lea r14, [0x14001f0a0]
cmove r14, rax
cmp edi, 8
jb 0x140010632
mov rbp, rdi
shr rbp, 3
lea r9, [rsp + 0x30]
mov dword [rsp + 0x20], 1
mov r8, r14
mov rdx, rbx
mov rcx, rsi
call fcn.140011b28
add rsi, 8
add rbx, 8
add edi, 0xfffffff8
sub rbp, 1
jne 0x140010606
test edi, edi
je 0x140010672
and qword [rsp + 0xb0], 0
lea rcx, [rsp + 0xb0]
mov r8d, edi
mov rdx, rsi
call sub.msvcrt.dll_memcpy
lea r9, [rsp + 0x30]
mov dword [rsp + 0x20], 1
mov r8, r14
lea rcx, [rsp + 0xb0]
mov rdx, rbx
call fcn.140011b28
mov eax, r15d
jmp 0x14001067c
mov eax, 0x80070057
mov rcx, qword [rsp + 0xb8]
xor rcx, rsp
call fcn.1400156d0
add rsp, 0xc8
pop r15
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret
sub rsp, 0x38
cmp byte [rcx + 1], 2
mov r11d, edx
mov r10b, 1
jne 0x1400106c0
cmp word [rcx + 2], 0
jne 0x1400106c0
mov al, r10b
jmp 0x1400106c2
xor al, al
test al, al
je 0x140010714
mov eax, dword [rcx + 0x494]
sub eax, 0x54
cmp eax, 0x440
ja 0x140010714
cmp dword [rcx + 8], 0x31415352
jne 0x1400106e4
cmp byte [rcx], 6
je 0x1400106f2
cmp dword [rcx + 8], 0x32415352
jne 0x140010714
cmp byte [rcx], 7
jne 0x140010714
mov edx, dword [rcx + 0xc]
test dl, 7
jne 0x140010714
shr edx, 3
lea eax, [rdx - 0x40]
test eax, 0xffffff3f
jne 0x140010714
cmp edx, 0xc0
je 0x140010714
mov al, r10b
jmp 0x140010716
xor al, al
test al, al
je 0x140010736
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r9
mov r9, r8
mov r8d, r11d
call fcn.1400102b4
jmp 0x140010787
cmp byte [rcx + 1], 2
jne 0x140010748
cmp word [rcx + 2], 0
jne 0x140010748
mov al, r10b
jmp 0x14001074a
xor al, al
test al, al
je 0x14001076e
cmp dword [rcx + 0x494], 0x14
jne 0x14001076e
cmp byte [rcx], r10b
jne 0x14001076e
cmp dword [rcx + 4], 0x6601
je 0x140010771
cmp dword [rcx + 4], 0x6663
je 0x140010771
xor r10b, r10b
test r10b, r10b
je 0x140010782
mov edx, r11d
add rsp, 0x38
jmp 0x140010530
mov eax, 0x80090003
add rsp, 0x38
ret