joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14004c1c4
Capabilities:
Encode data using xor

Disassembly:
test r9, r9
je 0x14004c28a
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0x30
mov rbx, r9
mov r15d, 4
mov rdi, r8
mov rsi, rdx
mov r14, rcx
cmp rbx, r15
jb 0x14004c255
mov rbp, rbx
shr rbp, 2
imul rax, rbp, 0xfffffffffffffffc
add rbx, rax
mov r8, r15
lea rcx, [rsp + 0x20]
mov rdx, rsi
call sub.VCRUNTIME140.dll_memcpy
mov r8, r15
lea rcx, [rsp + 0x68]
mov rdx, rdi
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [rsp + 0x68]
lea rdx, [rsp + 0x24]
xor eax, dword [rsp + 0x20]
mov r8, r15
mov rcx, r14
mov dword [rsp + 0x24], eax
call sub.VCRUNTIME140.dll_memcpy
add r14, r15
add rsi, r15
add rdi, r15
sub rbp, 1
jne 0x14004c20a
test rbx, rbx
je 0x14004c272
sub rsi, rdi
sub r14, rdi
mov al, byte [rsi + rdi]
xor al, byte [rdi]
mov byte [r14 + rdi], al
inc rdi
sub rbx, 1
jne 0x14004c260
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x30
pop r15
pop r14
pop rdi
ret

Function at 0x14004c28c
Capabilities:
Encode data using xor

Disassembly:
test r8, r8
je 0x14004c339
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
push rsi
push rdi
push r14
sub rsp, 0x30
mov rbx, r8
mov r14d, 4
mov rsi, rdx
mov rdi, rcx
cmp rbx, r14
jb 0x14004c311
mov rbp, rbx
shr rbp, 2
imul rax, rbp, 0xfffffffffffffffc
add rbx, rax
mov r8, r14
lea rcx, [rsp + 0x68]
mov rdx, rdi
call sub.VCRUNTIME140.dll_memcpy
mov r8, r14
lea rcx, [rsp + 0x60]
mov rdx, rsi
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [rsp + 0x60]
lea rdx, [rsp + 0x20]
xor eax, dword [rsp + 0x68]
mov r8, r14
mov rcx, rdi
mov dword [rsp + 0x20], eax
call sub.VCRUNTIME140.dll_memcpy
add rdi, r14
add rsi, r14
sub rbp, 1
jne 0x14004c2c9
test rbx, rbx
je 0x14004c327
sub rsi, rdi
mov al, byte [rsi + rdi]
xor byte [rdi], al
inc rdi
sub rbx, 1
jne 0x14004c319
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
add rsp, 0x30
pop r14
pop rdi
pop rsi
ret
Function at 0x140052254
Capabilities:
Encrypt data using aes via x86 extensions

Disassembly:
movdqu xmm1, xmmword [rcx]
mov r9d, 4
shl edx, 2
mov r8, rcx
movdqu xmm0, xmmword [rcx + rdx*4]
movdqu xmmword [rcx], xmm0
movdqu xmmword [rcx + rdx*4], xmm1
add edx, 0xfffffffc
cmp edx, r9d
jbe 0x1400522a3
aesimc xmm0, xmmword [r8 + rdx*4]
mov ecx, r9d
add r9d, 4
aesimc xmm1, xmmword [r8 + rcx*4]
movdqu xmmword [r8 + rcx*4], xmm0
movdqu xmmword [r8 + rdx*4], xmm1
add edx, 0xfffffffc
cmp r9d, edx
jb 0x14005227a
mov eax, r9d
aesimc xmm0, xmmword [r8 + rax*4]
movdqu xmmword [r8 + rax*4], xmm0
ret

Function at 0x1400537d0
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x14005381a
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x14005381a
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x14005381a
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x14005381a
cmp dword [rcx + 0x84], 0xe
jbe 0x14005381a
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x14005381c
xor al, al
add rsp, 0x28
ret
Function at 0x140007b0c
Capabilities:
Accept command line arguments

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0xc0
mov rax, qword [0x14000c040]
xor rax, rsp
mov qword [rsp + 0xb0], rax
call fcn.1400077c8
xor edi, edi
test eax, eax
js 0x140007ca8
call fcn.140007198
call fcn.1400062e8
test eax, eax
js 0x140007ca8
mov rax, qword [0x14000c008]
lea r9, [0x14000c020]
xorps xmm1, xmm1
lea r8, [section..data]
lea rdx, [0x140001340]
lea rcx, [rsp + 0xa0]
movups xmm0, xmmword [rax - 0x10]
movdqu xmmword [0x14000c028], xmm1
movdqu xmmword [rsp + 0xa0], xmm0
call qword [sym.imp.ntdll.dll_EtwEventRegister]
nop dword [rax + rax]
test eax, eax
jne 0x140007bbf
mov rax, qword [0x14000c5f8]
test rax, rax
je 0x140007bbf
mov r8, qword [0x14000c008]
lea edx, [rdi + 2]
mov rcx, qword [0x14000c020]
movzx r9d, word [r8]
call qword [0x1400094e0]
mov eax, edi
test eax, eax
js 0x140007ca8
call qword [sym.imp.api_ms_win_core_processenvironment_l1_1_0.dll_GetCommandLineW]
nop dword [rax + rax]
mov rbx, rax
mov dl, dil
movzx eax, word [rax]
test ax, ax
je 0x140007c21
movzx ecx, ax
cmp cx, 0x20
ja 0x140007bf3
movzx eax, cx
test dl, dl
je 0x140007c1c
cmp cx, 0x22
jne 0x140007bfe
test dl, dl
sete dl
add rbx, 2
movzx eax, word [rbx]
movzx ecx, ax
test ax, ax
jne 0x140007be6
jmp 0x140007c1c
cmp ax, 0x20
ja 0x140007c21
add rbx, 2
movzx eax, word [rbx]
test ax, ax
jne 0x140007c0f
lea rcx, [rsp + 0x30]
call qword [sym.imp.api_ms_win_core_processthreads_l1_1_0.dll_GetStartupInfoW]
nop dword [rax + rax]
lea rdx, str._install
mov rcx, rbx
call qword [sym.imp.ntdll.dll__wcsicmp]
nop dword [rax + rax]
test eax, eax
je 0x140007c66
lea rdx, str._uninstall
mov rcx, rbx
call qword [sym.imp.ntdll.dll__wcsicmp]
nop dword [rax + rax]
test eax, eax
jne 0x140007c6d
mov ebx, 0x80004001
jmp 0x140007c9e
mov r8d, 0x17
lea rdx, str.GlobalGameInputSession
mov rcx, rbx
call qword [sym.imp.ntdll.dll__wcsnicmp]
nop dword [rax + rax]
test eax, eax
jne 0x140007c97
mov rcx, rbx
call fcn.1400059f8
jmp 0x140007c9c
call fcn.1400036a4
mov ebx, eax
call fcn.140007a20
shr ebx, 0x1f
mov eax, ebx
mov rcx, qword [rsp + 0xb0]
xor rcx, rsp
call fcn.140007d00
mov rbx, qword [rsp + 0xd0]
add rsp, 0xc0
pop rdi
ret
sub rsp, 0x28
call fcn.14009d000
add rsp, 0x28
jmp 0x140007b0c
Function at 0x140002ee8
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x140002f32
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x140002f32
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x140002f32
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x140002f32
cmp dword [rcx + 0x84], 0xe
jbe 0x140002f32
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x140002f34
xor al, al
add rsp, 0x28
ret
Function at 0x140a33008
Capabilities:
Encrypt data using rc4 prga

Disassembly:
sub r9, 8
jmp 0x140a6c356
mov qword [r9], r8
jmp 0x140a4befe
lea rsp, [rsp + 0x28]
jmp 0x140a6f06a
jmp 0x140a3d910

Function at 0x140a4b975
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov r9w, word [r9]
jmp 0x140a72f9a

Function at 0x140a518aa
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push 0xffffffffc427e3b8
lea rsp, [rsp + 0x48]
jmp 0x140a6f06a

Function at 0x140a5c497
Capabilities:
Encrypt data using rc4 prga

Disassembly:
lea rsp, [rsp + 0x20]
jmp 0x140a6f06a

Function at 0x140a6aa6e
Capabilities:
Encrypt data using rc4 prga

Disassembly:
neg r8b
neg dword [rsp + 0xc]
call fcn.140a5a67b

Function at 0x140a7af20
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push 0xffffffffac26c5a8
mov qword [r9], rbx
lea rsp, [rsp + 0x28]
jmp 0x140a6f06a
Function at 0x14000ac9c
Capabilities:
Parse pe header

Disassembly:
mov qword [rsp + 8], rbx
mov dword [rsp + 0x18], r8d
mov dword [rsp + 0x10], edx
push rbp
mov rbp, rsp
sub rsp, 0x50
mov ebx, ecx
test r8d, r8d
jne 0x14000ab2f
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x14000ab2f
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x14000ab2f
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x14000ab2f
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x14000ab2f
cmp dword [rcx + 0x84], 0xe
jbe 0x14000ab2f
cmp dword [rcx + 0xf8], 0
je 0x14000ab2f
mov ecx, ebx
call fcn.14000abd0
lea rax, [rbp + 0x18]
mov byte [rbp + 0x28], 0
mov qword [rbp - 0x20], rax
lea r9, [rbp - 0x2c]
lea rax, [rbp + 0x20]
mov qword [rbp - 0x18], rax
lea r8, [rbp - 0x20]
lea rax, [rbp + 0x28]
mov qword [rbp - 0x10], rax
lea rdx, [rbp - 0x28]
mov eax, 2
lea rcx, [rbp - 0x30]
mov dword [rbp - 0x2c], eax
mov dword [rbp - 0x28], eax
call fcn.14000a9c0
cmp dword [rbp + 0x20], 0
je 0x14000ab7c
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop rbp
ret
mov ecx, ebx
call fcn.14000ab84
int3
xor r8d, r8d
xor edx, edx
jmp 0x14000aac8
Function at 0x140014bc0
Capabilities:
Hash data with crc32

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x40
mov rax, qword [0x140051040]
xor rax, rsp
mov qword [rsp + 0x30], rax
mov rbx, qword [0x14010d6a8]
mov edi, ecx
cmp byte [rbx + 0x4d4d], 0
jne 0x140014c21
cmp byte [rbx + 0x4d4e], 0
jne 0x140014c21
movsx r9d, word [rbx + 0x5eb8]
lea r8, str.Tooltip__02d
mov edx, 0x10
lea rcx, [rsp + 0x20]
call fcn.140003260
test dil, 2
je 0x140014d4f
jmp 0x140014caa
movss xmm1, dword [rbx + 0x39bc]
lea r8, str.Tooltip__02d
movsx r9d, word [rbx + 0x5eb8]
lea rcx, [rsp + 0x20]
movaps xmm0, xmm1
xor eax, eax
mulss xmm0, dword [0x14004a090]
mulss xmm1, dword [0x14004a084]
lea edx, [rax + 0x10]
addss xmm0, dword [rbx + 0xe40]
addss xmm1, dword [rbx + 0xe44]
mov qword [rbx + 0x4a18], rax
mov dword [rbx + 0x4a04], 1
movss dword [rbx + 0x4a10], xmm0
movss dword [rbx + 0x4a14], xmm1
movss xmm0, dword [rbx + 0x3a18]
mulss xmm0, dword [0x14004a018]
or dword [rbx + 0x4a00], 0x41
movss dword [rbx + 0x4a60], xmm0
call fcn.140003260
movzx r9d, byte [rsp + 0x20]
lea r8, [rsp + 0x21]
mov r10d, 0xffffffff
mov ecx, r10d
test r9b, r9b
je 0x140014d00
lea r11, [0x140044ca0]
nop word [rax + rax]
cmp r9b, 0x23
jne 0x140014ce3
cmp byte [r8], r9b
jne 0x140014ce3
cmp byte [r8 + 1], r9b
cmove ecx, r10d
movzx edx, cl
movzx eax, r9b
movzx r9d, byte [r8]
xor rdx, rax
shr ecx, 8
inc r8
xor ecx, dword [r11 + rdx*4]
test r9b, r9b
jne 0x140014cd0
not ecx
call fcn.14000af60
test rax, rax
je 0x140014d4f
cmp byte [rax + 0xbe], 0
je 0x140014d4f
mov byte [rax + 0xc3], 1
lea r8, str.Tooltip__02d
mov byte [rax + 0xc5], 1
lea rcx, [rsp + 0x20]
mov byte [rax + 0xe4], 1
mov edx, 0x10
inc word [rbx + 0x5eb8]
movsx r9d, word [rbx + 0x5eb8]
call fcn.140003260
xor edx, edx
lea rcx, [rsp + 0x20]
mov r8d, 0x2030347
call fcn.14000dc40
mov al, 1
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.1400407d0
mov rbx, qword [rsp + 0x50]
add rsp, 0x40
pop rdi
ret
Function at 0x18000a750
Capabilities:
Delete registry value
Query or enumerate registry value

Disassembly:
push rsi
push rdi
sub rsp, 0x288
mov rax, qword [0x1800f2040]
xor rax, rsp
mov qword [rsp + 0x270], rax
mov rdi, r8
lea rax, [rsp + 0x40]
xor r8d, r8d
mov qword [rsp + 0x20], rax
mov r9d, 9
mov rcx, 0xffffffff80000001
mov rsi, rdx
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x18000a89d
mov rcx, qword [rsp + 0x40]
lea r9, [rsp + 0x50]
mov qword [rsp + 0x2a0], rbx
lea r8, [rsp + 0x60]
mov qword [rsp + 0x280], rbp
xor edx, edx
xor ebp, ebp
mov dword [rsp + 0x50], 0x104
mov qword [rsp + 0x38], rbp
mov ebx, ebp
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0x28], rbp
mov qword [rsp + 0x20], rbp
call qword [sym.imp.ADVAPI32.dll_RegEnumValueW]
test eax, eax
jne 0x18000a882
nop dword [rax]
mov rdx, rdi
lea rcx, [rsp + 0x60]
call qword [sym.imp.VCRUNTIME140.dll_wcsstr]
test rax, rax
je 0x18000a845
lea rax, [rsp + 0x48]
mov r9d, 2
xor r8d, r8d
mov qword [rsp + 0x20], rax
mov rdx, rsi
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x18000a845
mov rcx, qword [rsp + 0x48]
lea rdx, [rsp + 0x60]
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, qword [rsp + 0x40]
lea r9, [rsp + 0x50]
mov qword [rsp + 0x38], rbp
lea r8, [rsp + 0x60]
mov qword [rsp + 0x30], rbp
inc ebx
mov qword [rsp + 0x28], rbp
mov edx, ebx
mov qword [rsp + 0x20], rbp
mov dword [rsp + 0x50], 0x104
call qword [sym.imp.ADVAPI32.dll_RegEnumValueW]
test eax, eax
je 0x18000a7f0
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rbp, qword [rsp + 0x280]
mov rbx, qword [rsp + 0x2a0]
mov rcx, qword [rsp + 0x270]
xor rcx, rsp
call fcn.1800b75d0
add rsp, 0x288
pop rdi
pop rsi
ret
Function at 0x18000d8e0
Capabilities:
Acquire debug privileges

Disassembly:
sub rsp, 0x68
mov rax, qword [0x1800f2040]
xor rax, rsp
mov qword [rsp + 0x50], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
lea r8, [rsp + 0x30]
mov edx, 0x28
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x18000d933
lea r8, [rsp + 0x38]
xor ecx, ecx
lea rdx, str.SeDebugPrivilege
call qword [sym.imp.ADVAPI32.dll_LookupPrivilegeValueA]
mov rcx, qword [rsp + 0x30]
test eax, eax
jne 0x18000d947
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.1800b75d0
add rsp, 0x68
ret
mov rax, qword [rsp + 0x38]
lea r8, [rsp + 0x40]
mov qword [rsp + 0x44], rax
mov r9d, 0x10
xor eax, eax
mov dword [rsp + 0x40], 1
mov qword [rsp + 0x28], rax
xor edx, edx
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x4c], 2
call qword [sym.imp.ADVAPI32.dll_AdjustTokenPrivileges]
mov rcx, qword [rsp + 0x30]
test eax, eax
je 0x18000d92d
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.1800b75d0
add rsp, 0x68
ret

Function at 0x18000d9b0
Capabilities:
Query service status

Disassembly:
push rbx
push rdi
sub rsp, 0x88
mov rax, qword [0x1800f2040]
xor rax, rsp
mov qword [rsp + 0x70], rax
mov rbx, rcx
xor edx, edx
xor ecx, ecx
mov r8d, 4
call qword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
mov rdi, rax
test rax, rax
je 0x18000dae2
cmp qword [rbx + 0x18], 7
mov r8, rbx
mov qword [rsp + 0xa8], rbp
mov qword [rsp + 0xb0], rsi
mov qword [rsp + 0x80], r14
jbe 0x18000da0d
mov r8, qword [rbx]
xor r14d, r14d
xor edx, edx
mov qword [rsp + 0x38], r14
xor ecx, ecx
mov qword [rsp + 0x30], r14
mov r9d, 0xffffffff
mov dword [rsp + 0x28], r14d
mov qword [rsp + 0x20], r14
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
movsxd rbp, eax
mov rcx, rbp
call fcn.1800b7a7c
cmp qword [rbx + 0x18], 7
mov rsi, rax
jbe 0x18000da4c
mov rbx, qword [rbx]
mov qword [rsp + 0x38], r14
mov r9d, 0xffffffff
mov qword [rsp + 0x30], r14
mov r8, rbx
mov dword [rsp + 0x28], ebp
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov r8d, 4
mov rdx, rsi
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_OpenServiceA]
mov rcx, rsi
mov rbx, rax
call fcn.1800b75f0
mov r14, qword [rsp + 0x80]
mov rsi, qword [rsp + 0xb0]
mov rbp, qword [rsp + 0xa8]
test rbx, rbx
je 0x18000dad9
lea rax, [rsp + 0x40]
mov r9d, 0x24
lea r8, [rsp + 0x48]
mov qword [rsp + 0x20], rax
xor edx, edx
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_QueryServiceStatusEx]
mov rcx, rbx
test eax, eax
jne 0x18000dae6
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
xor eax, eax
jmp 0x18000daf9
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov eax, dword [rsp + 0x64]
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.1800b75d0
add rsp, 0x88
pop rdi
pop rbx
ret
Function at 0x18000db10
Capabilities:
Enumerate processes

Disassembly:
mov qword [rsp + 0x10], rbx
push rsi
sub rsp, 0x290
mov rax, qword [0x1800f2040]
xor rax, rsp
mov qword [rsp + 0x280], rax
mov rbx, rcx
xor edx, edx
mov ecx, 2
call qword [sym.imp.KERNEL32.dll_CreateToolhelp32Snapshot]
mov rsi, rax
cmp rax, 0xffffffffffffffff
je 0x18000db6b
lea rdx, [rsp + 0x40]
mov dword [rsp + 0x40], 0x238
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_Process32FirstW]
test eax, eax
jne 0x18000db72
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x18000dc5a
mov qword [rsp + 0x2a0], rdi
xor edi, edi
nop dword [rax]
xorps xmm0, xmm0
mov qword [rsp + 0x30], rdi
movups xmmword [rsp + 0x20], xmm0
mov qword [rsp + 0x38], rdi
lea rax, [rsp + 0x6c]
mov r8, 0xffffffffffffffff
nop
inc r8
cmp word [rax + r8*2], di
jne 0x18000dba0
lea rdx, [rsp + 0x6c]
lea rcx, [rsp + 0x20]
call fcn.18001a520
cmp qword [rbx + 0x18], 7
mov rax, rbx
jbe 0x18000dbc6
mov rax, qword [rbx]
mov r10, qword [rsp + 0x38]
lea r8, [rsp + 0x20]
mov r9, qword [rsp + 0x20]
cmp r10, 7
mov rdx, qword [rsp + 0x30]
cmova r8, r9
cmp rdx, qword [rbx + 0x10]
jne 0x18000dc7b
test rdx, rdx
je 0x18000dc08
sub r8, rax
movzx ecx, word [r8 + rax]
cmp cx, word [rax]
jne 0x18000dc7b
add rax, 2
sub rdx, 1
jne 0x18000dbf4
mov edi, dword [rsp + 0x48]
cmp r10, 7
jbe 0x18000dc47
lea rdx, [r10*2 + 2]
mov rax, r9
cmp rdx, 0x1000
jb 0x18000dc3f
mov r9, qword [r9 - 8]
add rdx, 0x27
sub rax, r9
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18000dccd
mov rcx, r9
call fcn.1800b75f0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, edi
mov rdi, qword [rsp + 0x2a0]
mov rcx, qword [rsp + 0x280]
xor rcx, rsp
call fcn.1800b75d0
mov rbx, qword [rsp + 0x2a8]
add rsp, 0x290
pop rsi
ret
cmp r10, 7
jbe 0x18000dcb2
lea rdx, [r10*2 + 2]
mov rax, r9
cmp rdx, 0x1000
jb 0x18000dcaa
mov r9, qword [r9 - 8]
add rdx, 0x27
sub rax, r9
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18000dccd
mov rcx, r9
call fcn.1800b75f0
lea rdx, [rsp + 0x40]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_Process32NextW]
test eax, eax
jne 0x18000db80
jmp 0x18000dc47
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
Function at 0x180016eb0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
push r13
push r14
push r15
mov rsi, qword [rsp + 0x48]
xor r14d, r14d
mov rbx, qword [rsp + 0x60]
mov r12, r9
mov rcx, qword [rsp + 0x50]
mov r13, r8
mov rbp, qword [rsp + 0x58]
mov r15, rdx
mov qword [rsi], r8
mov qword [rbx], rcx
mov rax, qword [rsi]
cmp rax, r9
je 0x180017045
cmp rcx, rbp
je 0x180017045
mov r9d, 1
movzx edx, word [r15]
xor dil, dil
movzx ecx, word [rax]
mov r11d, 0x2800
mov r8d, 0x3ff
mov r10d, 0x2400
cmp r9w, dx
jae 0x180016f4c
lea eax, [r10 + rcx]
cmp ax, r8w
ja 0x18001706c
mov eax, edx
sub ecx, 0xdc00
shl eax, 0xa
or eax, ecx
jmp 0x180016f63
mov eax, ecx
add cx, r11w
cmp cx, r8w
ja 0x180016f63
shl eax, 0xa
mov dil, 1
sub eax, 0x35f0000
cmp eax, 0x80
jae 0x180016f76
movzx r8d, al
mov r10d, r14d
mov r11d, r14d
jmp 0x180016fc3
mov r8d, eax
cmp eax, 0x800
jae 0x180016f90
shr r8d, 6
mov r10d, r9d
or r8b, 0xc0
mov r11d, r9d
jmp 0x180016fc3
cmp eax, 0x10000
jae 0x180016faa
shr r8d, 0xc
mov r10d, 2
or r8b, 0xe0
mov r11d, r10d
jmp 0x180016fc3
shr r8d, 0x12
mov r10d, 3
movzx r11d, dil
or r8b, 0xf0
xor r11d, 1
add r11d, r11d
lea r9d, [r11 + 1]
mov rdx, rbp
sub rdx, qword [rbx]
mov ecx, r9d
cmp rdx, rcx
jl 0x180017045
add qword [rsi], 2
test dil, dil
jne 0x180016fe4
cmp r10d, 3
jae 0x180016ff0
mov rcx, qword [rbx]
mov r9d, r11d
mov byte [rcx], r8b
inc qword [rbx]
mov r8, qword [rbx]
test r9d, r9d
jle 0x18001701e
lea ecx, [r10 + r10*2]
add ecx, ecx
nop
sub ecx, 6
mov edx, eax
shr edx, cl
dec r9d
and dl, 0x3f
or dl, 0x80
mov byte [r8], dl
inc qword [rbx]
mov r8, qword [rbx]
test r9d, r9d
jg 0x180017000
shr eax, 0xa
mov r9d, 1
test dil, dil
mov ecx, r9d
cmovne ecx, eax
mov word [r15], cx
mov rax, qword [rsi]
cmp rax, r12
je 0x180017045
cmp qword [rbx], rbp
jne 0x180016f0d
cmp r13, qword [rsi]
sete r14b
mov eax, r14d
mov rbx, qword [rsp + 0x28]
mov rbp, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
pop r15
pop r14
pop r13
pop r12
ret
mov eax, 2
jmp 0x18001704f
Function at 0x180017b10
Capabilities:
Write file on windows

Disassembly:
push rbx
push rdi
push r15
sub rsp, 0x20
cmp qword [rcx + 0x68], 0
mov rbx, r8
mov r15, rdx
mov rdi, rcx
je 0x180017b38
add rsp, 0x20
pop r15
pop rdi
pop rbx
jmp qword [sym.imp.MSVCP140.dll_protected_virtual:_long_long___int64____cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::xsputn_char_const____ptr64__long_long___int64_____ptr64]
mov rax, qword [rcx + 0x40]
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x48], rsi
mov rsi, rbx
mov qword [rsp + 0x58], r14
mov r9, qword [rax]
test r9, r9
je 0x180017b5e
mov rax, qword [rcx + 0x58]
mov ecx, dword [rax]
jmp 0x180017b60
xor ecx, ecx
movsxd rbp, ecx
test rbx, rbx
jle 0x180017bb9
test ecx, ecx
jle 0x180017b99
cmp rbx, rbp
mov rcx, r9
cmovl rbp, rbx
mov r8, rbp
call sub.VCRUNTIME140.dll_memcpy
mov rax, qword [rdi + 0x58]
add r15, rbp
sub rbx, rbp
sub dword [rax], ebp
mov rcx, qword [rdi + 0x40]
movsxd rax, ebp
add qword [rcx], rax
test rbx, rbx
jle 0x180017bb9
mov r9, qword [rdi + 0x80]
test r9, r9
je 0x180017bb9
mov r8, rbx
mov edx, 1
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
sub rbx, rax
mov r14, qword [rsp + 0x58]
sub rsi, rbx
mov rbp, qword [rsp + 0x40]
mov rax, rsi
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop r15
pop rdi
pop rbx
ret

Function at 0x180017be0
Capabilities:
Read file on windows

Disassembly:
push rbp
push rsi
push r14
sub rsp, 0x30
mov rbp, r8
mov r14, rdx
mov rsi, rcx
test r8, r8
jg 0x180017c02
xor eax, eax
add rsp, 0x30
pop r14
pop rsi
pop rbp
ret
cmp qword [rcx + 0x68], 0
je 0x180017c18
add rsp, 0x30
pop r14
pop rsi
pop rbp
jmp qword [sym.imp.MSVCP140.dll_protected_virtual:_long_long___int64____cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::xsgetn_char____ptr64__long_long___int64_____ptr64]
mov rax, qword [rcx + 0x38]
mov qword [rsp + 0x28], rbx
mov rbx, rbp
mov rdx, qword [rax]
test rdx, rdx
je 0x180017c34
mov rax, qword [rcx + 0x50]
mov ecx, dword [rax]
jmp 0x180017c36
xor ecx, ecx
movsxd rax, ecx
test ecx, ecx
je 0x180017c72
mov qword [rsp + 0x20], rdi
cmp rax, rbp
mov rdi, rbp
mov rcx, r14
cmovb rdi, rax
mov r8, rdi
call sub.VCRUNTIME140.dll_memcpy
mov rax, qword [rsi + 0x50]
add r14, rdi
sub rbx, rdi
sub dword [rax], edi
mov rcx, qword [rsi + 0x38]
movsxd rax, edi
mov rdi, qword [rsp + 0x20]
add qword [rcx], rax
cmp qword [rsi + 0x80], 0
je 0x180017d0e
mov r8, qword [rsi + 0x18]
lea rax, [rsi + 0x70]
cmp qword [r8], rax
jne 0x180017cad
mov rcx, qword [rsi + 0x88]
mov rdx, qword [rsi + 0x90]
mov qword [r8], rcx
sub edx, ecx
mov rax, qword [rsi + 0x38]
mov qword [rax], rcx
mov rax, qword [rsi + 0x50]
mov dword [rax], edx
cmp rbx, 0xfff
jbe 0x180017cee
nop word [rax + rax]
mov r9, qword [rsi + 0x80]
mov edx, 1
mov r8d, 0xfff
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
add r14, rax
sub rbx, rax
cmp rax, 0xfff
jne 0x180017d0e
cmp rbx, rax
ja 0x180017cc0
test rbx, rbx
je 0x180017d0e
mov r9, qword [rsi + 0x80]
mov r8, rbx
mov edx, 1
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
sub rbx, rax
sub rbp, rbx
mov rbx, qword [rsp + 0x28]
mov rax, rbp
add rsp, 0x30
pop r14
pop rsi
pop rbp
ret