joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14000e7f0
Capabilities:
Query or enumerate registry value

Disassembly:
push rbx
push rbp
push rsi
push rdi
sub rsp, 0x78
mov rax, qword [0x140029c30]
xor rax, rsp
mov qword [rsp + 0x60], rax
test rdx, rdx
mov rdi, rdx
mov rsi, r8
sete al
lea rdx, str.AppExit
mov r8d, 0x20019
mov qword [rsp + 0x38], r9
mov rbp, rcx
mov byte [r9], al
call fcn.14000e4b0
mov rbx, rax
test rax, rax
jne 0x14000e841
lea eax, [rbx + 1]
jmp 0x14000e8de
mov dword [rsp + 0x30], 1
mov dword [rsp + 0x34], 0x10
test rdi, rdi
jne 0x14000e896
xor eax, eax
mov word [rsp + 0x40], ax
lea rax, [rsp + 0x34]
lea r9, [rsp + 0x30]
lea rdx, [rsp + 0x40]
mov qword [rsp + 0x28], rax
xor r8d, r8d
mov rcx, rbx
mov qword [rsp + 0x20], rsi
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov rcx, rbx
test eax, eax
je 0x14000e8d6
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test rdi, rdi
je 0x14000e8dc
jmp 0x14000e8c2
mov eax, dword [rdi]
or r8, 0xffffffffffffffff
lea r9, [0x1400230e0]
lea edx, [r8 + 0x11]
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x20], eax
call fcn.140016e78
test eax, eax
jns 0x14000e85d
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov r9, qword [rsp + 0x38]
mov r8, rsi
xor edx, edx
mov rcx, rbp
call fcn.14000e7f0
jmp 0x14000e8de
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.140017480
add rsp, 0x78
pop rdi
pop rsi
pop rbp
pop rbx
ret
Function at 0x14000f980
Capabilities:
Query service status

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
sub rsp, 0x20
mov rbp, rdx
mov ebx, ecx
mov rdx, r8
mov rcx, rbp
mov r12d, r9d
mov rdi, r8
call qword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
test eax, eax
je 0x14000fa17
xor esi, esi
lea r13, [0x140000000]
nop dword [rax]
mov edx, dword [rdi + 4]
cmp ebx, 5
ja case.0x14000f9d3.4
mov ecx, dword [r13 + rbx*4 + 0xfa58]
add rcx, r13
jmp rcx
cmp edx, 2
je 0x14000f9ef
cmp edx, 4
jne 0x14000fa4d
xor eax, eax
jmp 0x14000fa1a
mov eax, edx
sub eax, 1
je case.0x14000f9d3.4
cmp eax, 2
jne 0x14000fa4d
mov eax, 1
add esi, 0x32
cmp esi, 0x1f4
jg 0x14000fa1a
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rdx, rdi
mov rcx, rbp
call qword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
test eax, eax
jne 0x14000f9c0
or eax, 0xffffffff
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x20
pop r13
pop r12
pop rdi
ret
mov eax, edx
sub eax, 6
je 0x14000f9ef
cmp eax, 1
je case.0x14000f9d3.4
jmp 0x14000fa4d
mov eax, edx
sub eax, 4
je case.0x14000f9d3.4
cmp eax, 1
je 0x14000f9ef
or eax, 0xffffffff
cmp edx, r12d
jne 0x14000fa17
jmp 0x14000f9f4
Function at 0x140010af0
Capabilities:
Modify service

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x30
mov rax, rdx
mov rbx, rcx
test r8, r8
je 0x140010b13
cmp word [r8], 0
je 0x140010b13
mov qword [rsp + 0x50], r8
jmp 0x140010b1f
lea rcx, [0x140023aa8]
mov qword [rsp + 0x50], rcx
mov edi, 1
lea r8, [rsp + 0x50]
mov rcx, rax
mov edx, edi
call qword [sym.imp.ADVAPI32.dll_ChangeServiceConfig2W]
test eax, eax
je 0x140010b45
xor eax, eax
mov rbx, qword [rsp + 0x40]
add rsp, 0x30
pop rdi
ret
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.140006fa0
mov r8, rbx
mov edx, 0x40000428
movzx ecx, di
mov r9, rax
mov qword [rsp + 0x20], 0
call fcn.140007160
mov rbx, qword [rsp + 0x40]
mov eax, edi
add rsp, 0x30
pop rdi
ret

Function at 0x140011c50
Capabilities:
Delete service

Disassembly:
push rsi
sub rsp, 0x30
mov rsi, rcx
test rcx, rcx
jne 0x140011c67
lea eax, [rcx + 1]
add rsp, 0x30
pop rsi
ret
mov ecx, 5
mov qword [rsp + 0x58], rdi
call fcn.14000ff30
mov rdi, rax
test rax, rax
jne 0x140011c9f
call fcn.140016bd0
mov edx, 0x400001fb
lea rcx, [rax + 0x60]
call fcn.140007220
lea eax, [rdi + 2]
mov rdi, qword [rsp + 0x58]
add rsp, 0x30
pop rsi
ret
lea r9, [rsi + 2]
lea rdx, [rsi + 2]
mov r8d, 0x10000
mov rcx, rax
mov qword [rsp + 0x50], rbp
mov dword [rsp + 0x20], 0x100
call fcn.14000ff70
mov qword [rsi + 0x704c8], rax
test rax, rax
jne 0x140011cec
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rbp, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
mov eax, 3
add rsp, 0x30
pop rsi
ret
lea r9, [rsp + 0x40]
lea r8, [rsi + 0x202]
lea rdx, [rsi + 2]
mov rcx, rdi
mov qword [rsp + 0x48], rbx
mov dword [rsp + 0x40], 0x100
call qword [sym.imp.ADVAPI32.dll_GetServiceDisplayNameW]
lea r9, [rsp + 0x40]
lea r8, [rsi + 2]
lea rdx, [rsi + 0x202]
mov rcx, rdi
mov dword [rsp + 0x40], 0x100
call qword [sym.imp.ADVAPI32.dll_GetServiceKeyNameW]
mov rcx, qword [rsi + 0x704c8]
call qword [sym.imp.ADVAPI32.dll_DeleteService]
mov rbx, qword [rsp + 0x48]
test eax, eax
jne 0x140011d7a
call fcn.140016bd0
mov edx, 0x40000221
lea rcx, [rax + 0x60]
call fcn.140007220
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rbp, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
mov eax, 4
add rsp, 0x30
pop rsi
ret
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
call fcn.140016bd0
lea r8, [rsi + 2]
lea rcx, [rax + 0x30]
mov edx, 0x40000222
call fcn.140007220
mov rbp, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
xor eax, eax
add rsp, 0x30
pop rsi
ret

Function at 0x140011db0
Capabilities:
Modify service

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x30
mov edi, 1
mov rbx, rcx
mov rcx, qword [rcx + 0x704c8]
lea edx, [rdi + 3]
lea r8, [rsp + 0x40]
mov dword [rsp + 0x40], edi
call qword [sym.imp.ADVAPI32.dll_ChangeServiceConfig2W]
test eax, eax
jne 0x140011e0e
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7c
je 0x140011e0e
mov ecx, eax
call fcn.140006fa0
lea r8, [rbx + 2]
mov edx, 0x40000413
movzx ecx, di
mov r9, rax
mov qword [rsp + 0x20], 0
call fcn.140007160
mov rbx, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
ret
Function at 0x140013690
Capabilities:
Create service
Delete service
Persist via windows service

Disassembly:
push rdi
sub rsp, 0x70
mov rdi, rcx
test rcx, rcx
jne 0x1400136a7
lea eax, [rcx + 1]
add rsp, 0x70
pop rdi
ret
mov ecx, 3
mov qword [rsp + 0x90], rsi
call fcn.14000ff30
mov rsi, rax
test rax, rax
jne 0x1400136ed
call fcn.140016bd0
mov edx, 0x400001fb
lea rcx, [rax + 0x60]
call fcn.140007220
mov rcx, rdi
call fcn.1400110f0
lea eax, [rsi + 2]
mov rsi, qword [rsp + 0x90]
add rsp, 0x70
pop rdi
ret
mov qword [rsp + 0x80], rbx
lea rbx, [rdi + 0x842c]
mov r8d, 0x7fff
xor ecx, ecx
mov rdx, rbx
mov qword [rsp + 0x88], rbp
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
xor eax, eax
lea r8, [rdi + 2]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rbx
mov dword [rsp + 0x30], 1
lea rdx, [rdi + 2]
mov r9d, 0xf01ff
mov rcx, rsi
mov dword [rsp + 0x28], 2
mov dword [rsp + 0x20], 0x10
call qword [sym.imp.ADVAPI32.dll_CreateServiceW]
mov qword [rdi + 0x704c8], rax
test rax, rax
jne 0x1400137a6
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.140006fa0
mov rbx, rax
call fcn.140016bd0
mov r8, rbx
lea rcx, [rax + 0x60]
mov edx, 0x40000203
call fcn.140007220
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov eax, 5
jmp 0x1400137f3
xor edx, edx
mov rcx, rdi
call fcn.140012780
test eax, eax
je 0x1400137d1
mov rcx, qword [rdi + 0x704c8]
call qword [sym.imp.ADVAPI32.dll_DeleteService]
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov eax, 6
jmp 0x1400137f3
call fcn.140016bd0
lea r8, [rdi + 2]
mov edx, 0x4000021e
lea rcx, [rax + 0x30]
call fcn.140007220
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
xor eax, eax
mov rbp, qword [rsp + 0x88]
mov rbx, qword [rsp + 0x80]
mov rsi, qword [rsp + 0x90]
add rsp, 0x70
pop rdi
ret
Function at 0x140018384
Capabilities:
Terminate process

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov dword [rsp + 0x18], r8d
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov r12d, r8d
mov ebx, edx
mov r15d, ecx
mov ecx, 8
call fcn.1400192e0
nop
cmp dword [0x14002ad80], 1
je 0x140018330
mov dword [0x14002ad7c], 1
mov byte [0x14002ad78], r12b
test ebx, ebx
jne 0x14001831c
mov rcx, qword [0x14002be78]
call sub.KERNEL32.dll_DecodePointer
mov rsi, rax
mov qword [rsp + 0x30], rax
test rax, rax
je 0x140018309
mov rcx, qword [0x14002be70]
call sub.KERNEL32.dll_DecodePointer
mov rdi, rax
mov qword [rsp + 0x20], rax
mov r14, rsi
mov qword [rsp + 0x28], rsi
mov r13, rax
mov qword [rsp + 0x38], rax
sub rdi, 8
mov qword [rsp + 0x20], rdi
cmp rdi, rsi
jb 0x1400182a8
call fcn.14001ae90
cmp qword [rdi], rax
jne 0x1400182a8
jmp 0x14001828e
cmp rdi, rsi
jb 0x140018309
mov rcx, qword [rdi]
call sub.KERNEL32.dll_DecodePointer
mov rbx, rax
call fcn.14001ae90
mov qword [rdi], rax
call rbx
mov rcx, qword [0x14002be78]
call sub.KERNEL32.dll_DecodePointer
mov rbx, rax
mov rcx, qword [0x14002be70]
call sub.KERNEL32.dll_DecodePointer
cmp r14, rbx
jne 0x1400182e7
cmp r13, rax
je 0x140018307
mov r14, rbx
mov qword [rsp + 0x28], rbx
mov rsi, rbx
mov qword [rsp + 0x30], rbx
mov r13, rax
mov qword [rsp + 0x38], rax
mov rdi, rax
mov qword [rsp + 0x20], rax
jmp 0x14001828e
lea rdx, [0x140022718]
lea rcx, [0x140022700]
call fcn.1400180d8
lea rdx, [0x140022728]
lea rcx, [0x140022720]
call fcn.1400180d8
nop
test r12d, r12d
je 0x14001833f
mov ecx, 8
call fcn.1400191e0
test r12d, r12d
jne 0x14001836a
mov dword [0x14002ad80], 1
lea ecx, [r12 + 8]
call fcn.1400191e0
mov ecx, r15d
call fcn.14001806c
mov ecx, r15d
call qword [sym.imp.KERNEL32.dll_ExitProcess]
mov rbx, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
xor r8d, r8d
xor edx, edx
jmp 0x1400181f8

Function at 0x140018390
Capabilities:
Terminate process

Disassembly:
xor r8d, r8d
lea edx, [r8 + 1]
jmp 0x1400181f8
Function at 0x14001b387
Capabilities:
Terminate process

Disassembly:
cmp rcx, qword [0x140029c30]
jne 0x14001749a
rol rcx, 0x10
test cx, 0xffff
jne 0x140017496
repz ret
ror rcx, 0x10
jmp 0x14001b2e0
mov qword [rsp + 8], rcx
sub rsp, 0x88
lea rcx, [0x14002b0c0]
call qword [sym.imp.KERNEL32.dll_RtlCaptureContext]
mov r11, qword [0x14002b1b8]
mov qword [rsp + 0x58], r11
xor r8d, r8d
lea rdx, [rsp + 0x60]
mov rcx, qword [rsp + 0x58]
call sub.KERNEL32.dll_RtlLookupFunctionEntry
mov qword [rsp + 0x50], rax
cmp qword [rsp + 0x50], 0
je 0x14001b365
mov qword [rsp + 0x38], 0
lea rax, [rsp + 0x48]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
lea rax, [0x14002b0c0]
mov qword [rsp + 0x20], rax
mov r9, qword [rsp + 0x50]
mov r8, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
xor ecx, ecx
call sub.KERNEL32.dll_RtlVirtualUnwind
jmp 0x14001b387
mov rax, qword [rsp + 0x88]
mov qword [0x14002b1b8], rax
lea rax, [rsp + 0x88]
add rax, 8
mov qword [0x14002b158], rax
mov rax, qword [0x14002b1b8]
mov qword [0x14002b030], rax
mov rax, qword [rsp + 0x90]
mov qword [0x14002b140], rax
mov dword [0x14002b020], 0xc0000409
mov dword [0x14002b024], 1
mov rax, qword [0x140029c30]
mov qword [rsp + 0x68], rax
mov rax, qword [0x140029c38]
mov qword [rsp + 0x70], rax
call qword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
mov dword [0x14002b0b8], eax
mov ecx, 1
call fcn.14001ed0c
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
lea rcx, [0x1400245e0]
call qword [sym.imp.KERNEL32.dll_UnhandledExceptionFilter]
cmp dword [0x14002b0b8], 0
jne 0x14001b40e
mov ecx, 1
call fcn.14001ed0c
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov edx, 0xc0000409
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
add rsp, 0x88
ret
Function at 0x14001fe78
Capabilities:
Link many functions at runtime

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x40
mov ebp, r8d
mov r13, rdx
mov r14, rcx
call fcn.14001ae90
xor ebx, ebx
mov rdi, rax
cmp qword [0x14002bb50], rbx
jne 0x14001ff7e
lea rcx, str.USER32.DLL
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rsi, rax
test rax, rax
je 0x140020053
lea rdx, str.MessageBoxA
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x140020053
mov rcx, rax
call sub.KERNEL32.dll_EncodePointer
lea rdx, str.GetActiveWindow
mov rcx, rsi
mov qword [0x14002bb50], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rax
call sub.KERNEL32.dll_EncodePointer
lea rdx, str.GetLastActivePopup
mov rcx, rsi
mov qword [0x14002bb58], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rax
call sub.KERNEL32.dll_EncodePointer
lea rdx, str.GetUserObjectInformationA
mov rcx, rsi
mov qword [0x14002bb60], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rax
call sub.KERNEL32.dll_EncodePointer
mov r11, rax
mov qword [0x14002bb70], rax
test rax, rax
je 0x14001ff75
lea rdx, str.GetProcessWindowStation
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rax
call sub.KERNEL32.dll_EncodePointer
mov qword [0x14002bb68], rax
jmp 0x14001ff85
mov rax, qword [0x14002bb68]
jmp 0x14001ff8c
mov rax, qword [0x14002bb68]
mov r11, qword [0x14002bb70]
cmp rax, rdi
je 0x14001fff4
cmp r11, rdi
je 0x14001fff4
mov rcx, rax
call sub.KERNEL32.dll_DecodePointer
mov rcx, qword [0x14002bb70]
mov rsi, rax
call sub.KERNEL32.dll_DecodePointer
mov r12, rax
test rsi, rsi
je 0x14001fff4
test rax, rax
je 0x14001fff4
call rsi
test rax, rax
je 0x14001ffee
lea rcx, [rsp + 0x88]
mov r9d, 0xc
lea r8, [rsp + 0x30]
mov qword [rsp + 0x20], rcx
lea edx, [r9 - 0xb]
mov rcx, rax
call r12
test eax, eax
je 0x14001ffee
test byte [rsp + 0x38], 1
jne 0x14001fff4
bts ebp, 0x15
jmp 0x140020032
mov rcx, qword [0x14002bb58]
cmp rcx, rdi
je 0x140020032
call sub.KERNEL32.dll_DecodePointer
test rax, rax
je 0x140020032
call rax
mov rbx, rax
test rax, rax
je 0x140020032
mov rcx, qword [0x14002bb60]
cmp rcx, rdi
je 0x140020032
call sub.KERNEL32.dll_DecodePointer
test rax, rax
je 0x140020032
mov rcx, rbx
call rax
mov rbx, rax
mov rcx, qword [0x14002bb50]
call sub.KERNEL32.dll_DecodePointer
test rax, rax
je 0x140020053
mov r9d, ebp
mov r8, r13
mov rdx, r14
mov rcx, rbx
call rax
jmp 0x140020055
xor eax, eax
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
add rsp, 0x40
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret
Function at 0x140009620
Capabilities:
Generate random numbers via rtlgenrandom
Generate random numbers via winapi

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x20
test rdx, rdx
je 0x140009692
mov rsi, rdx
mov rdi, rcx
mov r14d, 0xffffffff
mov r15, qword [sym.imp.bcrypt.dll_BCryptGenRandom]
mov r12, qword [sym.imp.ADVAPI32.dll_SystemFunction036]
jmp 0x140009658
add rdi, rbx
sub rsi, rbx
je 0x140009692
cmp rsi, r14
mov ebx, 0xffffffff
cmovb rbx, rsi
xor ecx, ecx
mov rdx, rdi
mov r8d, ebx
mov r9d, 2
call r15
cmp eax, 0xbfffffff
jbe 0x140009650
mov ebp, eax
mov rcx, rdi
mov edx, ebx
call r12
test al, al
jne 0x140009650
and ebp, 0x7fffffff
jmp 0x140009694
xor ebp, ebp
mov eax, ebp
add rsp, 0x20
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
Function at 0x140010230
Capabilities:
Get common file path

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x478
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x3f0], 0xfffffffffffffffe
mov qword [rbp + 0x3d0], rcx
mov qword [rbp + 0x3d8], 0
mov qword [rbp + 0x3e0], 2
mov qword [rbp + 0x3e8], 0
mov r8d, 0x200
mov eax, 2
mov qword [rbp + 0x3c8], rax
xor esi, esi
xor edi, edi
xor ebx, ebx
cmp r8, 0x201
jae 0x1400102d0
jmp 0x1400102bf
jae 0x14001039e
cmp r8, 0x201
jae 0x1400102d0
mov r14d, 0x200
lea r15, [rbp - 0x58]
mov r12, r8
jmp 0x140010336
sub r8, rbx
sub rdi, rbx
cmp rdi, r8
jae 0x14001030e
mov qword [rsp + 0x20], 2
mov r9d, 2
lea rcx, [rbp + 0x3d8]
mov rdx, rbx
call fcn.14003e760
mov rsi, qword [rbp + 0x3d8]
mov rax, qword [rbp + 0x3e0]
mov qword [rbp + 0x3c8], rax
mov eax, 0xffffffff
cmp rsi, rax
mov ebx, 0xffffffff
cmovb rbx, rsi
mov qword [rbp + 0x3e8], rbx
mov rdi, rsi
mov r14, rbx
mov r15, qword [rbp + 0x3c8]
mov r12, rbx
xor ecx, ecx
call qword [sym.imp.kernel32.dll_SetLastError]
mov ecx, r12d
mov rdx, r15
call qword [sym.imp.kernel32.dll_GetCurrentDirectoryW]
mov r13d, eax
test eax, eax
jne 0x14001035f
call qword [sym.imp.kernel32.dll_GetLastError]
test eax, eax
jne 0x14001040a
mov r8d, r13d
cmp r12, r8
jne 0x1400102b0
call qword [sym.imp.kernel32.dll_GetLastError]
cmp eax, 0x7a
jne 0x14001043e
add r12, r12
mov eax, 0xffffffff
cmp r12, rax
cmovae r12, rax
mov r8, r12
cmp r8, 0x201
jb 0x1400102bf
jmp 0x1400102d0
cmp r14, r8
jb 0x140010458
lea rcx, [rbp + 0x3a8]
mov rdx, r15
call fcn.140011d00
movups xmm0, xmmword [rbp + 0x3a8]
movups xmm1, xmmword [rbp + 0x3b8]
mov rsi, qword [rbp + 0x3d0]
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
mov rdx, qword [rbp + 0x3d8]
test rdx, rdx
je 0x1400103f3
mov rcx, qword [rbp + 0x3e0]
add rdx, rdx
mov r8d, 2
call fcn.1400070d0
mov rax, rsi
add rsp, 0x478
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call qword [sym.imp.kernel32.dll_GetLastError]
shl rax, 0x20
or rax, 2
mov rsi, qword [rbp + 0x3d0]
mov qword [rsi + 8], rax
movabs rax, 0x8000000000000000
mov qword [rsi], rax
mov rdx, qword [rbp + 0x3d8]
test rdx, rdx
jne 0x1400103de
jmp 0x1400103f3
lea rcx, [0x140422928]
lea r8, str.std_src_syspalwindowsmod.rsstrings_passed_to_WinAPI_cannot_contain_NULs
mov edx, 0x28
call fcn.14003f8e0
jmp 0x14001046d
lea rax, str.std_src_syspalwindowsmod.rsstrings_passed_to_WinAPI_cannot_contain_NULs
mov rcx, r8
mov rdx, r14
mov r8, rax
call fcn.14003fc30
ud2
Function at 0x1400152a0
Capabilities:
Write file on windows

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
mov eax, 0x10c8
call fcn.140030700
sub rsp, rax
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x1030], xmm6
mov qword [rbp + 0x1028], 0xfffffffffffffffe
mov rsi, rdx
mov qword [rbp + 0x1020], rcx
mov qword [rbp + 0xfd8], rcx
mov qword [rbp + 0xfe0], rdx
lea rcx, [rbp - 0x50]
mov r8d, 0x1000
xor edx, edx
call fcn.14003dc00
xorps xmm6, xmm6
lea rbx, [0x14001ab90]
lea r12, [rbp + 0xfb0]
mov rdi, qword [sym.imp.kernel32.dll_WriteFileEx]
mov r15, qword [sym.imp.kernel32.dll_SleepEx]
mov qword [rbp + 0x1018], rsi
mov rax, qword [rbp + 0x1020]
mov qword [rbp + 0x1010], rax
mov r8d, 0x1000
lea rcx, [rbp + 0xfd8]
lea rdx, [rbp - 0x50]
call fcn.14001aab0
mov r14, rdx
test rax, rax
jne 0x14001543c
test r14, r14
je 0x14001540c
cmp r14, 0x1000
ja 0x1400154e0
xor r13d, r13d
nop dword [rax + rax]
cmp r13, r14
ja 0x1400154b7
mov r8d, r14d
sub r8d, r13d
lea rdx, [r13 - 0x50]
add rdx, rbp
mov dword [rbp + 0xff4], 0
movaps xmmword [rbp + 0xfb0], xmm6
mov qword [rbp + 0xfc0], 0
lea rax, [rbp + 0xff4]
mov qword [rbp + 0xfc8], rax
mov qword [rsp + 0x20], rbx
mov rcx, rsi
mov r9, r12
call rdi
test eax, eax
je 0x140015406
nop word cs:[rax + rax]
mov ecx, 0xffffffff
mov edx, 1
call r15
cmp dword [rbp + 0xff4], 1
jne 0x1400153d0
cmp dword [rbp + 0xff8], 0
jne 0x14001540c
mov eax, dword [rbp + 0xffc]
add r13, rax
cmp r13, r14
jne 0x140015370
jmp 0x14001531b
call qword [sym.imp.kernel32.dll_GetLastError]
mov rdi, qword [sym.imp.kernel32.dll_CloseHandle]
mov rcx, qword [rbp + 0x1020]
call rdi
mov rcx, rsi
call rdi
movaps xmm6, xmmword [rbp + 0x1030]
add rsp, 0x10c8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov eax, r14d
and eax, 3
cmp eax, 1
jne 0x14001540c
mov rax, r14
dec rax
mov qword [rbp + 0xfe8], rax
mov rax, qword [r14 - 1]
mov qword [rbp + 0x1000], rax
mov rax, qword [r14 + 7]
mov qword [rbp + 0x1008], rax
mov rax, qword [rax]
test rax, rax
je 0x14001547b
mov rcx, qword [rbp + 0x1000]
call rax
mov rcx, qword [rbp + 0x1000]
mov rax, qword [rbp + 0x1008]
mov rdx, qword [rax + 8]
test rdx, rdx
je 0x14001549b
mov r8, qword [rax + 0x10]
call fcn.1400070d0
mov edx, 0x18
mov r8d, 8
mov rcx, qword [rbp + 0xfe8]
call fcn.1400070d0
jmp 0x14001540c
mov qword [rbp + 0x1018], rsi
mov rax, qword [rbp + 0x1020]
mov qword [rbp + 0x1010], rax
lea r8, str.std_src_syspalwindowspipe.rs
mov rcx, r13
mov rdx, r14
call fcn.14003fca0
jmp 0x140015509
mov qword [rbp + 0x1018], rsi
mov rax, qword [rbp + 0x1020]
mov qword [rbp + 0x1010], rax
lea r8, str.std_src_syspalwindowspipe.rs
mov edx, 0x1000
mov rcx, r14
call fcn.14003fc30
ud2
Function at 0x140016680
Capabilities:
Get number of processors

Disassembly:
push rbp
push rsi
push rdi
push rbx
sub rsp, 0xb8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x30], 0xfffffffffffffffe
mov rsi, rcx
cmp byte [rcx + 0x19], 0
je 0x1400166aa
mov byte [rbp + 0x2e], 3
jmp 0x1400166d5
mov eax, dword [0x140438c90]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp qword [rax + 0x38], 1
jbe 0x1400166cd
mov byte [rbp + 0x2e], 1
jmp 0x1400166d5
call fcn.140011ee0
mov byte [rbp + 0x2e], al
mov rax, qword [rsi + 0x10]
mov qword [rbp - 8], rax
mov rcx, qword [rsi]
mov rdx, qword [rsi + 8]
call fcn.140017040
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x20], rdx
mov eax, dword [0x140438c90]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
movzx eax, byte [rax + 0x68]
test eax, eax
je 0x140016719
cmp eax, 1
je 0x140016746
jmp 0x14001679b
mov eax, dword [0x140438c90]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
lea rsi, [rax + 0x60]
lea rdx, [0x140023f90]
mov rcx, rsi
call fcn.140024000
mov byte [rsi + 8], 1
mov eax, dword [0x140438c90]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov rax, qword [rax + 0x60]
test rax, rax
je 0x1400168df
mov eax, dword [0x140438c90]
Function at 0x1400183d0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rbp
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x270
lea rbp, [rsp + 0x80]
mov rsi, rcx
mov rdi, qword [rdx + 8]
cmp rdi, 0xffffffffffffffff
je 0x1400184d1
mov eax, dword [rdx + 0x10]
movzx ebx, word [rdx + 0x40]
movzx r15d, word [rdx + 0x42]
movzx r14d, word [rdx + 0x44]
mov dword [rdx + 0x10], 0
cmp eax, 1
jne 0x14001843a
mov r12, qword [rdx]
cmp bx, 0x2e
jne 0x1400184ec
test r15w, r15w
je 0x14001843a
mov eax, r15d
xor eax, 0x2e
or ax, r14w
jne 0x1400184ec
mov r14, rdx
lea rbx, [rbp - 0x60]
mov r8d, 0x250
mov rcx, rbx
xor edx, edx
call fcn.14003dc00
mov rcx, rdi
mov rdx, rbx
call qword [sym.imp.kernel32.dll_FindNextFileW]
test eax, eax
je 0x1400184dd
mov rbx, qword [r14]
lea r14, [rbp - 0x60]
mov r15, qword [sym.imp.kernel32.dll_FindNextFileW]
jmp 0x14001848d
mov rcx, rdi
mov rdx, r14
call r15
test eax, eax
je 0x1400184dd
cmp word [rbp - 0x34], 0x2e
jne 0x1400184aa
movzx eax, word [rbp - 0x32]
test ax, ax
je 0x140018480
cmp ax, 0x2e
jne 0x1400184aa
cmp word [rbp - 0x30], 0
je 0x140018480
lock inc qword [rbx]
jle 0x140018578
lea rcx, [rsi + 0x10]
lea rdx, [rbp - 0x60]
mov r8d, 0x250
call fcn.14003d560
mov eax, 8
jmp 0x140018557
mov qword [rsi], 0
jmp 0x140018563
call qword [sym.imp.kernel32.dll_GetLastError]
cmp eax, 0x12
jne 0x140018540
xor eax, eax
jmp 0x140018560
lock inc qword [r12]
jle 0x140018578
lea rax, [rdx + 0x14]
add rdx, 0x46
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmm2, xmmword [rax + 0x1c]
movups xmmword [rsi + 0x2c], xmm2
movups xmmword [rsi + 0x20], xmm1
movups xmmword [rsi + 0x10], xmm0
lea rcx, [rsi + 0x42]
mov r8d, 0x21e
call fcn.14003d560
mov qword [rsi + 8], r12
mov word [rsi + 0x3c], bx
mov word [rsi + 0x3e], r15w
mov word [rsi + 0x40], r14w
mov qword [rsi], 1
jmp 0x140018563
mov ebx, eax
shl rbx, 0x20
or rbx, 2
mov qword [rsi + 8], 0
mov eax, 0x10
mov qword [rsi + rax], rbx
mov eax, 1
mov qword [rsi], rax
mov rax, rsi
add rsp, 0x270
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
pop rbp
ret
ud2