joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140013ec0
Capabilities:
Parse pe header

Disassembly:
xor r8d, r8d
xor edx, edx
jmp 0x140013cec

Function at 0x140001350
Capabilities:
Terminate process

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push r15
sub rsp, 0x30
mov rax, qword gs:[0x30]
mov rbx, qword [rax + 8]
xor esi, esi
xor eax, eax
lock cmpxchg qword [0x140003638], rbx
je 0x14000139c
cmp rax, rbx
jne 0x14000138f
mov ebx, 1
mov esi, ebx
jmp 0x1400013a1
mov ecx, 0x3e8
call qword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_Sleep]
jmp 0x140001374
mov ebx, 1
mov eax, dword [0x140003640]
cmp eax, ebx
jne 0x1400013b7
mov ecx, 0x1f
call sub.msvcrt.dll__amsg_exit
jmp 0x14000141c
mov eax, dword [0x140003640]
test eax, eax
jne 0x140001416
mov dword [0x140003640], ebx
lea r15, [0x1400022d8]
lea rdi, [0x1400022c0]
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], eax
cmp rdi, r15
jae 0x140001408
test eax, eax
jne 0x14000140c
cmp qword [rdi], 0
je 0x1400013fd
mov rax, qword [rdi]
mov rcx, qword [0x1400022a0]
call rcx
mov dword [rsp + 0x20], eax
add rdi, 8
mov qword [rsp + 0x28], rdi
jmp 0x1400013de
test eax, eax
je 0x14000141c
mov eax, 0xff
jmp 0x1400014f8
mov dword [0x140003044], ebx
mov eax, dword [0x140003640]
cmp eax, ebx
jne 0x140001443
lea rdx, [0x1400022b8]
lea rcx, [0x1400022a8]
call sub.msvcrt.dll__initterm
mov dword [0x140003640], 2
test esi, esi
jne 0x140001450
xor eax, eax
xchg qword [0x140003638], rax
cmp qword [0x140003648], 0
je 0x140001484
lea rcx, [0x140003648]
call fcn.140001700
test eax, eax
je 0x140001484
xor r8d, r8d
lea edx, [r8 + 2]
xor ecx, ecx
mov rax, qword [0x140003648]
mov r9, qword [0x1400022a0]
call r9
mov r8, qword [0x140003058]
mov rdx, qword [0x140003050]
mov ecx, dword [0x140003048]
call fcn.1400011ec
mov dword [0x140003040], eax
cmp dword [0x140003060], 0
jne 0x1400014b4
mov ecx, eax
call qword [sym.imp.msvcrt.dll_exit]
cmp dword [0x140003044], 0
jne 0x1400014c9
call qword [sym.imp.msvcrt.dll__cexit]
mov eax, dword [0x140003040]
jmp 0x1400014f8
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x50]
add rsp, 0x30
pop r15
ret
sub rsp, 0x28
call 0x140139000
add rsp, 0x28
jmp 0x140001350

Function at 0x1400015ec
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x18
xor edx, edx
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x140001638
mov eax, 0x5a4d
cmp word [rcx], ax
jne 0x140001630
cmp dword [rcx + 0x3c], edx
jl 0x140001630
cmp dword [rcx + 0x3c], 0x10000000
jae 0x140001630
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 0x140001638
mov rax, rdx
add rsp, 0x18
ret
Function at 0x140005540
Capabilities:
Generate random numbers via rtlgenrandom
Generate random numbers via winapi

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0xa0
mov rsi, rdx
mov rdi, rcx
xorps xmm0, xmm0
movaps xmmword [rsp + 0x30], xmm0
movaps xmmword [rsp + 0x20], xmm0
lea rdx, [rsp + 0x20]
xor ecx, ecx
mov r8d, 0x20
mov r9d, 2
call qword [sym.imp.bcrypt.dll_BCryptGenRandom]
cmp eax, 0xc0000000
jb 0x140005597
mov ebx, eax
lea rcx, [rsp + 0x20]
mov edx, 0x20
call qword [sym.imp.ADVAPI32.dll_SystemFunction036]
test al, al
je 0x140005648
movaps xmm0, xmmword [rsp + 0x20]
movaps xmm1, xmmword [rsp + 0x30]
movaps xmmword [rsp + 0x50], xmm1
movaps xmmword [rsp + 0x40], xmm0
mov rax, qword [0x141d069d0]
test rax, rax
je 0x14000567c
and eax, 0x4000
xor ecx, ecx
lea rbx, [rsp + 0x70]
or rax, rcx
je 0x1400055e2
lea r8, [0x141cf8cf0]
lea rdx, [rsp + 0x40]
mov rcx, rbx
call fcn.140026b90
jmp 0x140005604
movaps xmm0, xmmword [rsp + 0x40]
movaps xmm1, xmmword [rsp + 0x50]
movaps xmmword [rsp + 0x70], xmm0
movaps xmmword [rsp + 0x80], xmm1
xorps xmm0, xmm0
movaps xmmword [rsp + 0x90], xmm0
movaps xmm0, xmmword [rbx]
movaps xmm1, xmmword [rbx + 0x10]
movaps xmm2, xmmword [rbx + 0x20]
movaps xmmword [rdi + 0x20], xmm2
movaps xmmword [rdi + 0x10], xmm1
movaps xmmword [rdi], xmm0
mov qword [rdi + 0x40], 0
mov rax, 0xffffffffffffff00
add rax, qword [rdi + 0x30]
mov qword [rdi + 0x38], rax
mov rcx, rdi
mov rdx, rsi
call fcn.140026bb0
nop
add rsp, 0xa0
pop rbx
pop rdi
pop rsi
ret
movzx eax, byte [0x141d069e0]
mov edx, 4
xor ecx, ecx
call fcn.14003cf90
test rax, rax
je 0x140005686
and ebx, 0x7fffffff
mov dword [rax], ebx
mov rcx, qword [0x141d069c8]
xor edx, edx
mov r8, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x14000561a
call fcn.140056160
jmp 0x1400055bb
ud2

Function at 0x140007da0
Capabilities:
Set registry value

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x70
mov r15, r9
mov rbx, r8
mov r14, rdx
mov rdi, rcx
movzx eax, byte [0x141d069e0]
mov edx, 4
xor ecx, ecx
call fcn.14003cf90
test rax, rax
je 0x140007e7d
mov rsi, rax
mov eax, dword [r15]
mov dword [rsi], eax
add rbx, r14
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x40], rbx
mov word [rsp + 0x48], 0
mov dword [rsp + 0x50], 1
lea rcx, [rsp + 0x58]
lea rdx, [rsp + 0x38]
call fcn.140008590
mov rbx, qword [rsp + 0x60]
mov qword [rsp + 0x20], rsi
mov dword [rsp + 0x28], 4
mov rcx, rdi
mov rdx, rbx
xor r8d, r8d
mov r9d, 4
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov edi, eax
cmp qword [rsp + 0x58], 0
je 0x140007e49
mov rcx, qword [0x141d069c8]
xor edx, edx
mov r8, rbx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, qword [0x141d069c8]
xor ebx, ebx
xor edx, edx
mov r8, rsi
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rax, rdi
shl rax, 0x20
or rax, 2
test edi, edi
cmovne rbx, rax
mov rax, rbx
add rsp, 0x70
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret
ud2
Function at 0x140007e80
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbx
mov rax, rcx
add qword [rcx + 0x30], r8
mov r11, qword [rcx + 0x40]
test r11, r11
je 0x140007ec2
mov r10d, 8
sub r10, r11
cmp r10, r8
mov rdi, r8
cmovb rdi, r10
cmp rdi, 4
jb 0x140007eca
mov esi, dword [rdx]
mov r9d, 4
mov rcx, r9
or rcx, 1
cmp rcx, rdi
jb 0x140007edb
jmp 0x140007ef2
xor r10d, r10d
jmp 0x140007f7d
xor esi, esi
xor r9d, r9d
mov rcx, r9
or rcx, 1
cmp rcx, rdi
jae 0x140007ef2
movzx ebx, word [rdx + r9]
lea ecx, [r9*8]
shl rbx, cl
or rsi, rbx
or r9, 2
cmp r9, rdi
jae 0x140007f09
movzx edi, byte [rdx + r9]
shl r9d, 3
mov ecx, r9d
shl rdi, cl
or rsi, rdi
lea ecx, [r11*8]
shl rsi, cl
or rsi, qword [rax + 0x38]
mov qword [rax + 0x38], rsi
cmp r10, r8
jbe 0x140007f29
add r11, r8
jmp 0x140008059
mov rcx, qword [rax + 0x18]
xor rcx, rsi
mov rdi, qword [rax + 0x10]
mov r9, qword [rax]
add r9, rdi
mov r11, qword [rax + 8]
add r11, rcx
rol rdi, 0xd
xor rdi, r9
rol rcx, 0x10
rol r9, 0x20
xor rcx, r11
add r11, rdi
rol rdi, 0x11
add r9, rcx
xor rdi, r11
rol rcx, 0x15
mov qword [rax + 0x10], rdi
xor rcx, r9
rol r11, 0x20
mov qword [rax + 0x18], rcx
mov qword [rax + 8], r11
xor r9, rsi
mov qword [rax], r9
sub r8, r10
mov r11d, r8d
and r11d, 7
and r8, 0xfffffffffffffff8
cmp r10, r8
jae 0x140007ff2
mov rcx, qword [rax]
mov r9, qword [rax + 8]
mov rdi, qword [rax + 0x18]
mov rsi, qword [rax + 0x10]
nop
mov rbx, qword [rdx + r10]
xor rdi, rbx
add rcx, rsi
rol rsi, 0xd
add r9, rdi
xor rsi, rcx
rol rdi, 0x10
xor rdi, r9
rol rcx, 0x20
add r9, rsi
add rcx, rdi
rol rsi, 0x11
xor rsi, r9
rol rdi, 0x15
rol r9, 0x20
xor rdi, rcx
xor rcx, rbx
add r10, 8
cmp r10, r8
jb 0x140007fa0
mov qword [rax + 0x18], rdi
mov qword [rax + 0x10], rsi
mov qword [rax + 8], r9
mov qword [rax], rcx
cmp r11d, 4
jb 0x14000800f
mov r9d, dword [rdx + r10]
mov r8d, 4
mov ecx, r8d
or ecx, 1
cmp ecx, r11d
jb 0x140008020
jmp 0x14000803b
xor r9d, r9d
xor r8d, r8d
mov ecx, r8d
or ecx, 1
cmp ecx, r11d
jae 0x14000803b
lea rcx, [rdx + r8]
movzx esi, word [r10 + rcx]
lea ecx, [r8*8]
invalid
add byte [rax], al
add byte [rax], al
shl rsi, cl
or r9, rsi
or r8, 2
cmp r8d, r11d
jae 0x140008055
add r10, r8
movzx edx, byte [rdx + r10]
shl r8d, 3
mov ecx, r8d
shl rdx, cl
or r9, rdx
mov qword [rax + 0x38], r9
mov qword [rax + 0x40], r11
pop rbx
pop rdi
pop rsi
ret
Function at 0x1400295f0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov rsi, rdx
mov rdi, rcx
mov rax, qword [rdx + 0x28]
mov qword [rsp + 0x30], rax
movzx eax, byte [rdx + 0x30]
mov byte [rsp + 0x27], al
movzx eax, byte [0x141d069e0]
mov edx, 0x5f0
xor ecx, ecx
call fcn.14003cf90
test rax, rax
je 0x14002984c
mov rbx, rax
lea r15, [rsi + 0x38]
movabs r12, 0x800000000000000
mov r8d, 0x5f0
mov rcx, rax
xor edx, edx
call fcn.140049820
mov rax, qword [rsi + 0x60]
mov qword [rsp + 0x28], rax
movabs rcx, 0x7465646279746573
movabs rdx, 0x6c7967656e657261
movabs r8, 0xded7d4e2d7dedfc6
movabs r9, 0xa60c596fc19fead0
movabs r10, 0xe414a674f0de7325
nop
mov ebp, 1
lock xadd qword [0x141d06928], rbp
mov r11, rbp
xor r11, rcx
mov rax, r11
rol rax, 0x10
lea r14, [r11 + rdx]
xor rax, r14
lea r14, [rax + r8]
xor rbp, r14
add r11, r9
mov r13, r11
rol r13, 0x20
rol rax, 0x15
xor r11, r10
xor r14, r12
xor r14, rax
add rbp, r11
rol r11, 0xd
add r13, r14
xor r11, rbp
rol r14, 0x10
xor r14, r13
rol rbp, 0x20
add r13, r11
add rbp, r14
rol r11, 0x11
xor r11, r13
rol r14, 0x15
rol r13, 0x20
xor r14, rbp
xor rbp, r12
xor r13, 0xff
add rbp, r11
add r13, r14
rol r11, 0xd
xor r11, rbp
rol r14, 0x10
rol rbp, 0x20
xor r14, r13
add r13, r11
rol r11, 0x11
add rbp, r14
xor r11, r13
rol r14, 0x15
xor r14, rbp
rol r13, 0x20
add rbp, r11
add r13, r14
rol r11, 0xd
xor r11, rbp
rol r14, 0x10
rol rbp, 0x20
xor r14, r13
add r13, r11
rol r11, 0x11
add rbp, r14
xor r11, r13
rol r14, 0x15
xor r14, rbp
rol r13, 0x20
add rbp, r11
add r13, r14
rol r11, 0xd
xor r11, rbp
rol r14, 0x10
xor r14, r13
add r13, r11
rol r11, 0x11
rol r14, 0x15
mov rbp, r13
rol rbp, 0x20
xor rbp, r11
xor rbp, r14
cmp rbp, r13
je 0x140029690
xor rbp, r13
mov rax, qword [rsi + 0x58]
movups xmm0, xmmword [r15]
movups xmm1, xmmword [r15 + 0x10]
movups xmmword [rdi + 0x128], xmm1
movups xmmword [rdi + 0x118], xmm0
mov rcx, qword [rsp + 0x30]
mov qword [rdi + 0x138], rcx
movzx ecx, byte [rsp + 0x27]
mov byte [rdi + 0x140], cl
mov qword [rdi], 0
mov qword [rdi + 8], rbx
mov qword [rdi + 0x80], 0
mov qword [rdi + 0x88], rbx
mov rcx, qword [rsp + 0x28]
mov qword [rdi + 0x100], rcx
mov qword [rdi + 0x108], rbp
mov qword [rdi + 0x110], rax
mov rax, qword [rsi + 0x10]
shl rax, 1
test rax, rax
jne 0x140029828
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r8, qword [rsi + 0x18]
mov rcx, qword [0x141d069c8]
xor edx, edx
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp qword [sym.imp.KERNEL32.dll_HeapFree]
ud2
Function at 0x14002d150
Capabilities:
Write file on windows

Disassembly:
push rsi
sub rsp, 0xa0
mov rsi, rcx
movups xmm0, xmmword [0x141cf9090]
movaps xmmword [rsp + 0x60], xmm0
mov eax, 0xffffffff
cmp r8, rax
cmovb rax, r8
xorps xmm0, xmm0
movups xmmword [rsp + 0x38], xmm0
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x28], rdx
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.ntdll.dll_NtWriteFile]
cmp eax, 0x103
jne 0x14002d1bc
mov rcx, rsi
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [rsp + 0x60]
cmp eax, 0x103
je 0x14002d1f0
test eax, eax
js 0x14002d1d0
mov rdx, qword [rsp + 0x68]
xor eax, eax
add rsp, 0xa0
pop rsi
ret
mov ecx, eax
call qword [sym.imp.ntdll.dll_RtlNtStatusToDosError]
mov edx, eax
shl rdx, 0x20
or rdx, 2
mov eax, 1
add rsp, 0xa0
pop rsi
ret
mov dword [rsp + 0x58], 0
mov byte [rsp + 0x5c], 0
lea rax, [0x141cf90f0]
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], 1
lea rax, [rsp + 0x50]
mov qword [rsp + 0x80], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x88], xmm0
lea rcx, [rsp + 0x58]
lea rdx, [rsp + 0x70]
call fcn.14002d420
mov rcx, rax
call fcn.140032130
mov ecx, 7
int 0x29
ud2

Function at 0x14002e950
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rsi
push rdi
push rbx
movzx r9d, byte [rdx + 0x38]
cmp byte [rcx - 0x80], al
stc
invalid
Function at 0x140030f10
Capabilities:
Create directory

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x70
mov r8, rdx
ror byte [rax - 0x77], 1
invalid
Function at 0x140039830
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x70
mov rsi, rcx
movabs r14, 0x8000000000000000
lea rcx, [rsp + 0x40]
call fcn.14002eef0
mov rax, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
mov rcx, rax
neg rcx
jo 0x140039896
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x68], rcx
lea rcx, [rsp + 0x28]
lea rdx, [rsp + 0x58]
call fcn.140039950
mov rbx, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x30]
cmp rbx, r14
jne 0x1400398fd
mov eax, edi
and eax, 3
cmp eax, 1
jne 0x1400398ee
mov rbx, qword [rdi - 1]
mov r15, qword [rdi + 7]
mov rax, qword [r15]
test rax, rax
je 0x1400398b5
mov rcx, rbx
call rax
dec rdi
cmp qword [r15 + 8], 0
je 0x1400398dc
cmp qword [r15 + 0x10], 0x11
jb 0x1400398ca
mov rbx, qword [rbx - 8]
mov rcx, qword [0x141d069c8]
xor edx, edx
mov r8, rbx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, qword [0x141d069c8]
xor edx, edx
mov r8, rdi
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rsi], r14
add rsp, 0x70
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret
mov r15, qword [rsp + 0x38]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x14003991d
mov qword [rsi], rbx
mov qword [rsi + 8], rdi
mov qword [rsi + 0x10], r15
jmp 0x1400398f1
mov qword [rsi], r14
test rbx, rbx
je 0x1400398f1
mov rcx, qword [0x141d069c8]
xor edx, edx
mov r8, rdi
add rsp, 0x70
pop rbx
pop rdi
pop rsi
pop r14
pop r15
jmp qword [sym.imp.KERNEL32.dll_HeapFree]
Function at 0x14003b2e0
Capabilities:
Create thread

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x38
mov rbx, r8
mov r14, rdx
mov rdi, rcx
movzx eax, byte [0x141d069e0]
mov edx, 0x10
xor ecx, ecx
call fcn.14003cf90
test rax, rax
je 0x14003b3b4
mov rsi, rax
mov qword [rax], r14
mov qword [rax + 8], rbx
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0x10000
lea r8, [0x14003b550]
xor ebx, ebx
xor ecx, ecx
mov rdx, rdi
mov r9, rax
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov rdx, rax
test rax, rax
jne 0x14003b3a7
mov rdi, qword [rsi]
mov rbx, qword [rsi + 8]
mov rax, qword [rbx]
test rax, rax
je 0x14003b35c
mov rcx, rdi
call rax
cmp qword [rbx + 8], 0
je 0x14003b380
cmp qword [rbx + 0x10], 0x11
jb 0x14003b36e
mov rdi, qword [rdi - 8]
mov rcx, qword [0x141d069c8]
xor edx, edx
mov r8, rdi
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, qword [0x141d069c8]
xor edx, edx
mov r8, rsi
call qword [sym.imp.KERNEL32.dll_HeapFree]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
shl rdx, 0x20
or rdx, 2
mov ebx, 1
mov rax, rbx
add rsp, 0x38
pop rbx
pop rdi
pop rsi
pop r14
ret
ud2
Function at 0x1400439c0
Capabilities:
Get memory capacity

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x178
movaps xmmword [rsp + 0x160], xmm6
mov rsi, rcx
mov eax, dword [0x141d069e4]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp byte [rax + 0x70], 0
je 0x140043a16
mov eax, dword [0x141d069e4]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov rbx, qword [rax + 0x78]
mov r14, qword [rax + 0x80]
jmp 0x140043a65
xorps xmm0, xmm0
movaps xmmword [rsp + 0x90], xmm0
lea rcx, [rsp + 0x90]
mov edx, 0x10
call qword [sym.imp.bcryptprimitives.dll_ProcessPrng]
mov rbx, qword [rsp + 0x90]
mov r14, qword [rsp + 0x98]
mov eax, dword [0x141d069e4]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov byte [rax + 0x70], 1
mov qword [rax + 0x80], r14
lea rax, [rbx + 1]
mov ecx, dword [0x141d069e4]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
mov qword [rcx + 0x78], rax
movzx eax, byte [0x141d069e0]
mov edx, 0x58410
xor ecx, ecx
call fcn.14003cf90
test rax, rax
je 0x140043c82
mov rdi, rax
add rdi, 0x58000
mov r8d, 0x410
mov rcx, rdi
mov dl, 0xff
call fcn.140049820
xorps xmm6, xmm6
movups xmmword [rsp + 0x100], xmm6
movups xmmword [rsp + 0x110], xmm6
mov qword [rsp + 0x90], 0
mov qword [rsp + 0x98], 8
mov qword [rsp + 0xa0], 0
movabs rax, 0x8000000000000000
mov qword [rsp + 0xa8], rax
mov dword [rsp + 0xc0], 0
mov byte [rsp + 0xc8], 0
mov qword [rsp + 0xd0], rdi
mov qword [rsp + 0xd8], 0x3ff
mov qword [rsp + 0xe0], 0x380
mov qword [rsp + 0xe8], 0
mov qword [rsp + 0xf0], rbx
mov qword [rsp + 0xf8], r14
mov qword [rsp + 0x120], 0
movaps xmmword [rsp + 0x20], xmm6
movaps xmmword [rsp + 0x50], xmm6
movaps xmmword [rsp + 0x40], xmm6
movaps xmmword [rsp + 0x30], xmm6
mov dword [rsp + 0x20], 0x40
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
test eax, eax
jne 0x140043b8e
call qword [sym.imp.KERNEL32.dll_GetLastError]
movups xmm0, xmmword [rsp + 0x28]
movups xmmword [rsp + 0x100], xmm0
movaps xmmword [rsp + 0x70], xmm6
movaps xmmword [rsp + 0x60], xmm6
movaps xmmword [rsp + 0x50], xmm6
movaps xmmword [rsp + 0x40], xmm6
movaps xmmword [rsp + 0x30], xmm6
movaps xmmword [rsp + 0x20], xmm6
mov qword [rsp + 0x80], 0
lea rcx, [rsp + 0x20]
mov edx, 0x68
call qword [sym.imp.KERNEL32.dll_K32GetPerformanceInfo]
test eax, eax
je 0x140043c29
mov r8, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x30]
xor r9d, r9d
sub rdx, r8
cmovb rdx, r9
mov rcx, qword [rsp + 0x70]
mov rax, rcx
mul rdx
mov r10, 0xffffffffffffffff
cmovo rax, r10
mov rdx, qword [rsp + 0x28]
sub rdx, r8
cmovb rdx, r9
mov qword [rsp + 0x110], rax
mov rax, rcx
mul rdx
cmovo rax, r10
mov qword [rsp + 0x118], rax
lea rdi, [rsp + 0x90]
mov rcx, rdi
mov dl, 1
call fcn.14003d340
mov byte [rsp + 0x20], 1
movabs rax, 0x202020202020101
mov qword [rsp + 0x21], rax
lea rdx, [rsp + 0x20]
mov rcx, rdi
call fcn.14003d7d0
mov r8d, 0xd0
mov rcx, rsi
mov rdx, rdi
call fcn.140049170
movaps xmm6, xmmword [rsp + 0x160]
add rsp, 0x178
pop rbx
pop rdi
pop rsi
pop r14
ret
ud2
Function at 0x140043c90
Capabilities:
Get memory capacity

Disassembly:
push rsi
sub rsp, 0xa0
movaps xmmword [rsp + 0x90], xmm6
mov rsi, rcx
xorps xmm6, xmm6
movaps xmmword [rsp + 0x20], xmm6
movaps xmmword [rsp + 0x50], xmm6
movaps xmmword [rsp + 0x40], xmm6
movaps xmmword [rsp + 0x30], xmm6
mov dword [rsp + 0x20], 0x40
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
test eax, eax
jne 0x140043cd7
call qword [sym.imp.KERNEL32.dll_GetLastError]
movups xmm0, xmmword [rsp + 0x28]
movups xmmword [rsi + 0x70], xmm0
movaps xmmword [rsp + 0x70], xmm6
movaps xmmword [rsp + 0x60], xmm6
movaps xmmword [rsp + 0x50], xmm6
movaps xmmword [rsp + 0x40], xmm6
movaps xmmword [rsp + 0x30], xmm6
movaps xmmword [rsp + 0x20], xmm6
mov qword [rsp + 0x80], 0
lea rcx, [rsp + 0x20]
mov edx, 0x68
call qword [sym.imp.KERNEL32.dll_K32GetPerformanceInfo]
test eax, eax
je 0x140043d6c
mov r8, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x30]
xor r9d, r9d
sub rdx, r8
cmovb rdx, r9
mov rcx, qword [rsp + 0x70]
mov rax, rcx
mul rdx
mov r10, 0xffffffffffffffff
cmovo rax, r10
mov rdx, qword [rsp + 0x28]
sub rdx, r8
cmovb rdx, r9
mov qword [rsi + 0x80], rax
mov rax, rcx
mul rdx
cmovo rax, r10
mov qword [rsi + 0x88], rax
mov rcx, rsi
mov dl, 1
call fcn.14003d340
mov byte [rsp + 0x20], 1
movabs rax, 0x202020202020101
mov qword [rsp + 0x21], rax
lea rdx, [rsp + 0x20]
mov rcx, rsi
call fcn.14003d7d0
movaps xmm6, xmmword [rsp + 0x90]
add rsp, 0xa0
pop rsi
ret

Function at 0x140049be4
Capabilities:
Parse pe header

Disassembly:
xor r8d, r8d
xor edx, edx
jmp 0x140049d2c
Function at 0x140001390
Capabilities:
Delete file

Disassembly:
push rdi
sub rsp, 0x20
mov rdi, rcx
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x48], rsi
lea rcx, [rsp + 0x30]
movsxd rsi, edx
call fcn.140001290
mov rbx, qword [rsp + 0x30]
mov rcx, rbx
test rsi, rsi
jle 0x1400013dd
imul rdx, rsi, 0x3b9aca00
movabs rbx, 0x7fffffffffffffff
mov rax, rbx
sub rax, rdx
cmp rcx, rax
jge 0x1400013dd
lea rbx, [rcx + rdx]
lea rcx, [rsp + 0x30]
call fcn.140001290
mov rax, qword [rsp + 0x30]
cmp rax, rbx
jge 0x140001464
mov qword [rsp + 0x40], rbp
movabs rsi, 0x4e94914f0000
movabs rbp, 0x431bde82d7b634db
nop word [rax + rax]
mov rcx, rbx
sub rcx, rax
cmp rcx, rsi
jle 0x140001422
mov edx, 0x5265c00
jmp 0x140001444
mov rax, rbp
imul rcx
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul rax, rdx, 0xf4240
cmp rax, rcx
jge 0x140001444
inc edx
mov ecx, edx
call sub.KERNEL32.dll_Sleep
lea rcx, [rsp + 0x30]
call fcn.140001290
mov rax, qword [rsp + 0x30]
cmp rax, rbx
jl 0x140001410
mov rbp, qword [rsp + 0x40]
cmp qword [rdi + 0x18], 0xf
mov rsi, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x38]
jbe 0x140001478
mov rdi, qword [rdi]
mov rcx, rdi
add rsp, 0x20
pop rdi
jmp qword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll_remove]
Function at 0x140002fc0
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 0x140002fe8
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 0x14000300e
mov rax, qword [rcx + 0x58]
mov ecx, dword [rax]
jmp 0x140003010
xor ecx, ecx
movsxd rbp, ecx
test rbx, rbx
jle 0x140003069
test ecx, ecx
jle 0x140003049
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 0x140003069
mov r9, qword [rdi + 0x80]
test r9, r9
je 0x140003069
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 0x140003090
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 0x1400030b2
xor eax, eax
add rsp, 0x30
pop r14
pop rsi
pop rbp
ret
cmp qword [rcx + 0x68], 0
je 0x1400030c8
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 0x1400030e4
mov rax, qword [rcx + 0x50]
mov ecx, dword [rax]
jmp 0x1400030e6
xor ecx, ecx
movsxd rax, ecx
test ecx, ecx
je 0x140003122
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 0x1400031be
mov r8, qword [rsi + 0x18]
lea rax, [rsi + 0x70]
cmp qword [r8], rax
jne 0x14000315d
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 0x14000319e
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 0x1400031be
cmp rbx, rax
ja 0x140003170
test rbx, rbx
je 0x1400031be
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