joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14005de20
Capabilities:
Check if file exists
Get file attributes

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
sub rsp, 0x50
mov rbp, r8
mov rdi, rdx
lea r8, [rdx + 0x10]
lea rdx, [rsp + 0x78]
call fcn.140058da0
mov rsi, qword [rax]
mov qword [rax], 0
mov rbx, qword [rsp + 0x78]
test rbx, rbx
je 0x14005dec1
cmp byte [rbx + 0x28], 0
je 0x14005de62
mov rcx, rbx
call fcn.14005f890
mov rcx, qword [rbx]
lea rax, [rsp + 0x30]
xorps xmm0, xmm0
mov qword [rsp + 0x20], rax
mov r9d, 0xffffffff
xor edx, edx
mov r8d, r9d
movups xmmword [rsp + 0x30], xmm0
movups xmmword [rsp + 0x40], xmm0
call qword [sym.imp.KERNEL32.dll_UnlockFileEx]
lea rcx, [rbx + 0x30]
call fcn.140058b10
lea rcx, [rbx + 8]
call fcn.140029580
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x14005deb4
call fcn.14003d170
mov qword [rbx], 0xffffffffffffffff
mov edx, 0x50
mov rcx, rbx
call fcn.1400ceafc
test rsi, rsi
jne 0x14005ded9
lea eax, [rsi + 3]
mov rbx, qword [rsp + 0x80]
add rsp, 0x50
pop rdi
pop rsi
pop rbp
ret
movups xmm0, xmmword [rdi]
mov rdi, qword [rsi + 0x38]
mov rbx, qword [rsi + 0x30]
movaps xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x70], r14
cmp rbx, rdi
je 0x14005df1e
nop dword [rax]
nop word [rax + rax]
lea rcx, [rbx + 4]
lea rdx, [rsp + 0x30]
call fcn.140031dc0
test al, al
jne 0x14005df1e
add rbx, 0x98
cmp rbx, rdi
jne 0x14005df00
cmp rbx, qword [rsi + 0x38]
jne 0x14005df2b
mov edi, 1
jmp 0x14005df60
cmp qword [rbx + 0x30], 8
lea rcx, [rbx + 0x18]
jb 0x14005df39
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov edi, eax
cmp eax, 0xffffffff
jne 0x14005df4d
mov edi, 1
jmp 0x14005df60
shr edi, 3
and edi, 2
jne 0x14005df60
mov rdx, rbx
mov rcx, rbp
call fcn.140058c80
cmp byte [rsi + 0x28], 0
je 0x14005df6e
mov rcx, rsi
call fcn.14005f890
mov rcx, qword [rsi]
lea rax, [rsp + 0x30]
xorps xmm0, xmm0
mov qword [rsp + 0x20], rax
mov r9d, 0xffffffff
xor edx, edx
mov r8d, r9d
movups xmmword [rsp + 0x30], xmm0
movups xmmword [rsp + 0x40], xmm0
call qword [sym.imp.KERNEL32.dll_UnlockFileEx]
lea rcx, [rsi + 0x30]
call fcn.140058b10
lea rcx, [rsi + 8]
call fcn.140029580
mov rcx, qword [rsi]
mov r14, qword [rsp + 0x70]
cmp rcx, 0xffffffffffffffff
je 0x14005dfc5
call fcn.14003d170
mov qword [rsi], 0xffffffffffffffff
mov edx, 0x50
mov rcx, rsi
call fcn.1400ceafc
mov rbx, qword [rsp + 0x80]
mov eax, edi
add rsp, 0x50
pop rdi
pop rsi
pop rbp
ret
Function at 0x140073320
Capabilities:
Resume thread
Suspend thread

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r14
sub rsp, 0x40
mov rax, qword gs:[0x30]
movzx r14d, r9b
movzx ebp, r8b
mov rdi, rdx
mov rsi, rcx
mov r10, qword [rax + 0x48]
cmp qword [rdx + 0x48], r10
jne 0x14007337f
xor ebx, ebx
lea r8, [rsp + 0x68]
mov dword [rdx + 0x70], ebx
lea rcx, [rdi + 0x10]
mov edx, 0x4d0
call fcn.140025310
mov rcx, qword [rdi]
add rcx, qword [rdi + 0x10]
mov byte [rdi + 8], 1
call fcn.1400d2a60
mov al, 1
jmp 0x1400733e5
call qword [sym.imp.KERNEL32.dll_SuspendThread]
mov ecx, eax
cmp eax, 0xffffffff
je 0x1400733e3
xor ebx, ebx
test eax, eax
jne 0x14007339c
cmp bpl, 1
jne 0x14007339c
mov ecx, ebx
jmp 0x14007339e
sub ecx, ebp
mov dword [rdi + 0x70], ecx
test r14b, r14b
je 0x1400733f8
lea r8, [rsp + 0x68]
mov edx, 0x2cc
lea rcx, [rdi + 0x10]
call fcn.140025310
mov rcx, qword [rdi]
mov rax, qword [rdi + 0x10]
mov byte [rdi + 8], 1
mov dword [rcx + rax], 0x10001f
mov rcx, rsi
mov rdx, qword [rdi]
add rdx, qword [rdi + 0x10]
call qword [sym.imp.KERNEL32.dll_Wow64GetThreadContext]
test eax, eax
jne 0x140073510
xor al, al
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x70]
add rsp, 0x40
pop r14
pop rdi
pop rsi
ret
mov ecx, 0x800
call fcn.140078550
test al, al
je 0x1400734d2
mov rax, qword gs:[0x58]
mov ecx, dword [0x140134780]
mov edx, 0x80
mov rcx, qword [rax + rcx*8]
mov eax, dword [rdx + rcx]
cmp dword [0x1401344e0], eax
jg 0x140073528
mov rax, qword [0x1401344d8]
test rax, rax
je 0x1400733e3
lea r9, [rsp + 0x30]
mov qword [rsp + 0x38], rbx
lea r8, [rsp + 0x38]
mov dword [rsp + 0x30], ebx
mov edx, 0x10005f
mov qword [rsp + 0x20], 0x800
xor ecx, ecx
call rax
test eax, eax
jne 0x140073475
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x1400733e3
mov edx, dword [rsp + 0x30]
lea r8, [rsp + 0x68]
lea rcx, [rdi + 0x10]
call fcn.140025310
mov rcx, qword [rdi + 0x10]
lea r9, [rsp + 0x30]
lea r8, [rsp + 0x38]
mov qword [rsp + 0x20], 0x800
mov edx, 0x10005f
call qword [0x1401344d8]
test eax, eax
je 0x1400733e3
mov rdx, qword [rsp + 0x38]
mov rcx, rsi
mov rax, rdx
mov byte [rdi + 8], 1
sub rax, qword [rdi + 0x10]
mov qword [rdi], rax
call qword [sym.imp.KERNEL32.dll_GetThreadContext]
jmp 0x1400733db
lea r8, [rsp + 0x68]
mov edx, 0x4d0
lea rcx, [rdi + 0x10]
call fcn.140025310
mov rcx, qword [rdi]
mov rax, qword [rdi + 0x10]
mov byte [rdi + 8], 1
mov dword [rcx + rax + 0x30], 0x10001f
mov rcx, rsi
mov rdx, qword [rdi]
add rdx, qword [rdi + 0x10]
call qword [sym.imp.KERNEL32.dll_GetThreadContext]
test eax, eax
je 0x1400733e3
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ResumeThread]
test eax, eax
je 0x1400733e3
mov al, 1
jmp 0x1400733e5
lea rcx, [0x1401344e0]
call fcn.1400cefb4
cmp dword [0x1401344e0], 0xffffffff
jne 0x140073431
xor r8d, r8d
lea rdx, str.::InitializeContext2
lea rcx, [0x1400d8c78]
call fcn.14003d580
lea rcx, [0x1401344e0]
mov qword [0x1401344d8], rax
call fcn.1400cef54
jmp 0x140073431
Function at 0x140077150
Capabilities:
Get system information on windows

Disassembly:
sub rsp, 0x58
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, 0xff
cmp dword [rsp + 0x40], eax
cmovbe eax, dword [rsp + 0x40]
add rsp, 0x58
ret

Function at 0x140077180
Capabilities:
Get system information on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
lea rcx, [rsp + 0x30]
mov r13, r8
mov r12, rdx
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov ecx, 0xff
cmp dword [rsp + 0x50], ecx
cmovbe ecx, dword [rsp + 0x50]
xor ebp, ebp
movzx r14d, cl
mov ebx, ebp
mov edi, ebp
mov r15d, ebp
test cl, cl
je 0x140077241
lea rax, [r14 + r14*2]
lea rsi, [rax*8]
cmp rsi, 0x1000
jb 0x140077214
lea rcx, [rsi + 0x27]
cmp rcx, rsi
jbe 0x14007736a
call fcn.1400ceac0
mov rcx, rax
test rax, rax
je 0x140077363
add rax, 0x27
and rax, 0xffffffffffffffe0
mov rbx, rax
mov qword [rax - 8], rcx
lea rdi, [rax + rsi]
jmp 0x140077231
test rsi, rsi
je 0x14007722a
mov rcx, rsi
call fcn.1400ceac0
mov rbx, rax
lea rdi, [rax + rsi]
jmp 0x140077231
mov rax, rbp
lea rdi, [rsi + rbp]
mov r8, rsi
xor edx, edx
mov rcx, rax
mov r15, rdi
call sub.VCRUNTIME140.dll_memset
xor edx, edx
lea eax, [r14 + r14*2]
shl eax, 3
mov r9, rbx
xor r8d, r8d
mov dword [rsp + 0x20], eax
lea ecx, [rdx + 0xb]
call sub.POWRPROF.dll_CallNtPowerInformation
test eax, eax
je 0x140077269
mov qword [r12], rbp
jmp 0x1400772ed
mov rcx, rbx
cmp rbx, rdi
je 0x1400772aa
lea rdx, [rbx + 0x18]
cmp rdx, rdi
je 0x1400772aa
nop word [rax + rax]
mov eax, dword [rdx + 8]
cmp dword [rcx + 8], eax
cmovb rcx, rdx
add rdx, 0x18
cmp rdx, rdi
jne 0x140077280
mov eax, dword [rcx + 8]
mov rdx, rbx
imul rcx, rax, 0xf4240
mov qword [r12], rcx
lea rcx, [rbx + 0x18]
jmp 0x1400772d0
mov eax, dword [rbx + 8]
mov rdx, rbx
imul rcx, rax, 0xf4240
mov qword [r12], rcx
cmp rbx, rdi
je 0x1400772e3
lea rcx, [rbx + 0x18]
cmp rcx, rdi
je 0x1400772e3
nop dword [rax]
mov eax, dword [rcx + 4]
cmp dword [rdx + 4], eax
cmovb rdx, rcx
add rcx, 0x18
cmp rcx, rdi
jne 0x1400772d0
mov eax, dword [rdx + 4]
imul rbp, rax, 0xf4240
mov qword [r13], rbp
test rbx, rbx
je 0x140077345
sub r15, rbx
movabs rax, 0x2aaaaaaaaaaaaaab
imul r15
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rdx, [rdx + rdx*2]
shl rdx, 3
cmp rdx, 0x1000
jb 0x14007733d
mov rcx, qword [rbx - 8]
add rdx, 0x27
sub rbx, rcx
lea rax, [rbx - 8]
cmp rax, 0x1f
ja 0x140077363
mov rbx, rcx
mov rcx, rbx
call fcn.1400ceafc
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140008170
int3
Function at 0x14007a5d0
Capabilities:
Parse pe header

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r14
sub rsp, 0x180
mov rax, qword [0x1400fe4a8]
xor rax, rsp
mov qword [rsp + 0x170], rax
cmp qword [rdx + 0x10], 8
mov rsi, r8
mov rdi, rdx
mov rbp, rcx
ja 0x14007a6d8
add rcx, 0x20
call fcn.1400d2ff0
lea r9, [rsp + 0x20]
mov r8d, 0x40
mov rdx, rax
mov rcx, rbp
call fcn.14007b330
test al, al
je 0x14007a6d8
mov eax, 0x5a4d
cmp word [rsp + 0x20], ax
jne 0x14007a6d8
lea rcx, [rbp + 0x20]
call fcn.1400d2ff0
movsxd rbx, dword [rsp + 0x5c]
lea r9, [rsp + 0x60]
add rbx, rax
mov r8d, 0x108
mov rdx, rbx
mov rcx, rbp
call fcn.14007b330
test al, al
je 0x14007a6d8
cmp dword [rsp + 0x60], 0x4550
jne 0x14007a6d8
movzx r14d, word [rsp + 0x74]
add r14, 0x18
add r14, rbx
xor ebx, ebx
cmp bx, word [rsp + 0x66]
jae 0x14007a6d8
nop word [rax + rax]
lea rcx, [rbx + rbx*4]
mov r9, rsi
lea rdx, [r14 + rcx*8]
mov r8d, 0x28
mov rcx, rbp
call fcn.14007b330
test al, al
je 0x14007a6d8
cmp qword [rdi + 0x18], 0x10
mov rdx, rdi
jb 0x14007a6ba
mov rdx, qword [rdi]
mov r8d, 8
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp]
test eax, eax
je 0x14007a6f8
movzx eax, word [rsp + 0x66]
inc ebx
cmp ebx, eax
jb 0x14007a690
xor al, al
mov rcx, qword [rsp + 0x170]
xor rcx, rsp
call fcn.1400cebd0
add rsp, 0x180
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov al, 1
jmp 0x14007a6da

Function at 0x14007a700
Capabilities:
Parse pe header

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r14
sub rsp, 0x170
mov rax, qword [0x1400fe4a8]
xor rax, rsp
mov qword [rsp + 0x160], rax
cmp qword [rdx + 0x10], 8
mov rsi, r8
mov rdi, rdx
mov rbp, rcx
ja 0x14007a808
add rcx, 0x20
call fcn.1400d2ff0
lea r9, [rsp + 0x20]
mov r8d, 0x40
mov rdx, rax
mov rcx, rbp
call fcn.14007b330
test al, al
je 0x14007a808
mov eax, 0x5a4d
cmp word [rsp + 0x20], ax
jne 0x14007a808
lea rcx, [rbp + 0x20]
call fcn.1400d2ff0
movsxd rbx, dword [rsp + 0x5c]
lea r9, [rsp + 0x60]
add rbx, rax
mov r8d, 0xf8
mov rdx, rbx
mov rcx, rbp
call fcn.14007b330
test al, al
je 0x14007a808
cmp dword [rsp + 0x60], 0x4550
jne 0x14007a808
movzx r14d, word [rsp + 0x74]
add r14, 0x18
add r14, rbx
xor ebx, ebx
cmp bx, word [rsp + 0x66]
jae 0x14007a808
nop word [rax + rax]
lea rcx, [rbx + rbx*4]
mov r9, rsi
lea rdx, [r14 + rcx*8]
mov r8d, 0x28
mov rcx, rbp
call fcn.14007b330
test al, al
je 0x14007a808
cmp qword [rdi + 0x18], 0x10
mov rdx, rdi
jb 0x14007a7ea
mov rdx, qword [rdi]
mov r8d, 8
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp]
test eax, eax
je 0x14007a828
movzx eax, word [rsp + 0x66]
inc ebx
cmp ebx, eax
jb 0x14007a7c0
xor al, al
mov rcx, qword [rsp + 0x160]
xor rcx, rsp
call fcn.1400cebd0
add rsp, 0x170
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov al, 1
jmp 0x14007a80a
Function at 0x14007ac40
Capabilities:
Parse pe header

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
sub rsp, 0x180
mov rax, qword [0x1400fe4a8]
xor rax, rsp
mov qword [rsp + 0x170], rax
cmp byte [rcx + 0x38], 0
mov rsi, r8
mov rbx, rdx
mov rdi, rcx
je 0x14007ad18
add rcx, 0x20
call fcn.1400d2ff0
lea r9, [rsp + 0x20]
mov r8d, 0x40
mov rdx, rax
mov rcx, rdi
call fcn.14007b330
test al, al
je 0x14007adb0
mov eax, 0x5a4d
cmp word [rsp + 0x20], ax
jne 0x14007adb0
lea rcx, [rdi + 0x20]
call fcn.1400d2ff0
movsxd rdx, dword [rsp + 0x5c]
lea r9, [rsp + 0x60]
add rdx, rax
mov r8d, 0x108
mov rcx, rdi
call fcn.14007b330
test al, al
je 0x14007adb0
cmp dword [rsp + 0x60], 0x4550
jne 0x14007adb0
movzx eax, word [rsp + 0x74]
lea rcx, [rbx*8 + 0x78]
cmp rax, rcx
jb 0x14007adb0
mov eax, dword [rsp + 0xe4]
cmp rax, rbx
jbe 0x14007adb0
mov rax, qword [rsp + rbx*8 + 0xe8]
jmp 0x14007ad9f
add rcx, 0x20
call fcn.1400d2ff0
lea r9, [rsp + 0x20]
mov r8d, 0x40
mov rdx, rax
mov rcx, rdi
call fcn.14007b330
test al, al
je 0x14007adb0
mov eax, 0x5a4d
cmp word [rsp + 0x20], ax
jne 0x14007adb0
lea rcx, [rdi + 0x20]
call fcn.1400d2ff0
movsxd rdx, dword [rsp + 0x5c]
lea r9, [rsp + 0x60]
add rdx, rax
mov r8d, 0xf8
mov rcx, rdi
call fcn.14007b330
test al, al
je 0x14007adb0
cmp dword [rsp + 0x60], 0x4550
jne 0x14007adb0
movzx eax, word [rsp + 0x74]
lea rcx, [rbx*8 + 0x68]
cmp rax, rcx
jb 0x14007adb0
mov eax, dword [rsp + 0xd4]
cmp rax, rbx
jbe 0x14007adb0
mov rax, qword [rsp + rbx*8 + 0xd8]
mov qword [rsi], rax
test eax, eax
je 0x14007adb0
cmp dword [rsi + 4], 0
je 0x14007adb0
mov al, 1
jmp 0x14007adb2
xor al, al
mov rcx, qword [rsp + 0x170]
xor rcx, rsp
call fcn.1400cebd0
mov rbx, qword [rsp + 0x1a8]
add rsp, 0x180
pop rdi
pop rsi
pop rbp
ret
Function at 0x14007d3a0
Capabilities:
Create thread

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
push rdi
push r14
push r15
sub rsp, 0x70
mov r15, rdx
mov rbx, 0xffffffffffffffff
lea rdx, [rax + 8]
mov qword [rax + 8], rbx
mov rbp, r9
mov r14, r8
mov rsi, rcx
call fcn.14007cc20
xorps xmm0, xmm0
lea rcx, [rsp + 0x58]
xor eax, eax
xor r9d, r9d
movups xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0x68], rax
xor r8d, r8d
xor edx, edx
mov dword [rsp + 0x58], 0x18
mov dword [rsp + 0x68], 1
call qword [sym.imp.KERNEL32.dll_CreateEventW]
xor r9d, r9d
lea rcx, [rsp + 0x58]
xor r8d, r8d
mov qword [0x1400fe0e0], rax
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
xor r9d, r9d
lea rcx, [rsp + 0x58]
xor r8d, r8d
mov qword [0x1400fe0e8], rax
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
lea rcx, [0x140134548]
mov qword [0x1400fe0f0], rax
call fcn.1400d3170
lea ecx, [rbx + 0x29]
call fcn.1400ceac0
mov rdi, rax
test rax, rax
je 0x14007d46b
mov rcx, rax
call fcn.14002bb40
jmp 0x14007d46d
xor edi, edi
lea rcx, [0x14007f0e0]
mov qword [0x140134528], rdi
call qword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
lea rdx, [0x14007d260]
mov ecx, 0x16
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_signal]
mov ecx, 0xe8
call fcn.1400ceac0
mov r10, rax
test rax, rax
je 0x14007d510
mov rcx, qword [rsp + 0x90]
lea rax, [rsp + 0x50]
mov qword [rsp + 0x48], rax
mov r9, rbp
mov rax, qword [rsp + 0xb8]
mov r8, r14
mov qword [rsp + 0x50], rcx
mov rdx, r15
mov rcx, qword [rsp + 0xd8]
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x38], rcx
mov rcx, qword [rsp + 0xc0]
mov qword [rsp + 0x30], rcx
mov rcx, r10
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x90], rbx
call fcn.14007c720
jmp 0x14007d518
mov rbx, qword [rsp + 0x90]
cmp byte [rsp + 0xd0], 0
je 0x14007d580
mov qword [rsp + 0x28], 0
lea r8, [0x14007cbf0]
mov r9, rax
mov dword [rsp + 0x20], 0
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov rcx, qword [rsi + 0x20]
mov rdi, rax
test rcx, rcx
je 0x14007d564
cmp rcx, rax
jne 0x14007d55f
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_abort]
int3
call fcn.14003d180
mov qword [rsi + 0x20], rdi
test rdi, rdi
jne 0x14007d57b
nop
mov qword [0x140134540], 2
jmp 0x14007d598
mov dil, 1
jmp 0x14007d598
lea rcx, [rsp + 0x90]
mov qword [rsp + 0x90], rax
call fcn.14007d5d0
movzx edi, al
cmp rbx, 0xffffffffffffffff
je 0x14007d5a6
mov rcx, rbx
call fcn.14003d170
lea r11, [rsp + 0x70]
movzx eax, dil
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rdi
ret
Function at 0x1400d3170
Capabilities:
Check os version

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
call qword [sym.imp.KERNEL32.dll_GetVersion]
movzx edx, ax
shr dx, 8
cmp al, 6
jb 0x1400d31d1
jne 0x1400d3192
cmp dx, 1
jbe 0x1400d31d1
mov rax, qword gs:[0x58]
mov ecx, dword [0x140134780]
mov edx, 0x80
mov rcx, qword [rax + rcx*8]
mov eax, dword [rdx + rcx]
cmp dword [0x140134d90], eax
jg 0x1400d31e2
xor edx, edx
mov r8d, 0x10000000
mov rcx, rbx
call qword [0x140134d88]
test eax, eax
setne al
add rsp, 0x20
pop rbx
ret
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov al, 1
add rsp, 0x20
pop rbx
ret
lea rcx, [0x140134d90]
call fcn.1400cefb4
cmp dword [0x140134d90], 0xffffffff
jne 0x1400d31b5
mov r8b, 1
lea rdx, str.::InitializeCriticalSectionEx
lea rcx, [0x1400d8c78]
call fcn.14003d580
lea rcx, [0x140134d90]
mov qword [0x140134d88], rax
call fcn.1400cef54
jmp 0x1400d31b5
Function at 0x180001930
Capabilities:
Terminate thread

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov r14, qword [rcx]
test r14, r14
je 0x1800019ff
mov rsi, rcx
lea rdi, [rsp + 0x20]
mov r15, qword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
mov r12, qword [sym.imp.KERNEL32.dll_CloseHandle]
mov r13, qword [sym.imp.KERNEL32.dll_QueueUserAPC]
mov rbp, qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rbx, qword [sym.imp.KERNEL32.dll_TerminateThread]
jmp 0x1800019b9
lea rcx, [0x180001a10]
xor r8d, r8d
call r13
mov rcx, qword [r14 + 8]
mov edx, 0xffffffff
call rbp
mov r14, qword [rsi]
mov rax, qword [r14 + 0x18]
mov qword [rsi], rax
mov rcx, qword [r14 + 8]
call r12
mov rcx, r14
call fcn.180028ae4
mov r14, qword [rsi]
test r14, r14
je 0x1800019ff
movdqu xmm0, xmmword [r14 + 8]
pshufd xmm0, xmm0, 0x4e
movdqa xmmword [rsp + 0x20], xmm0
mov ecx, 2
mov rdx, rdi
xor r8d, r8d
mov r9d, 0xffffffff
call r15
mov rcx, qword [r14 + 0x10]
call r12
mfence
mov eax, dword [0x1800ff420]
mov rdx, qword [r14 + 8]
test eax, eax
je 0x180001980
mov rcx, rdx
xor edx, edx
call rbx
jmp 0x180001998
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
Function at 0x1800097d0
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
sub rsp, 0x18
movdqa xmmword [rsp], xmm6
mov eax, dword [rcx]
cmp eax, 0x138
jne 0x18000986e
movq xmm0, qword [rcx + 8]
pshufd xmm3, xmm0, 0x44
mov rax, 0xfffffffffffffec8
movaps xmm0, xmmword [0x1800d42a0]
movaps xmm1, xmmword [0x1800d42b0]
movdqa xmm2, xmmword [0x1800d42c0]
nop dword [rax]
movups xmm4, xmmword [rcx + rax*8 + 0x9d0]
shufps xmm3, xmm4, 0x4e
andps xmm3, xmm0
movaps xmm5, xmm4
andps xmm5, xmm1
orps xmm5, xmm3
psrlq xmm5, 1
pshufd xmm3, xmm4, 0xa0
pslld xmm3, 0x1f
psrad xmm3, 0x1f
pand xmm3, xmm2
movdqu xmm6, xmmword [rcx + rax*8 + 0xea8]
pxor xmm6, xmm3
pxor xmm6, xmm5
movdqu xmmword [rcx + rax*8 + 0x1388], xmm6
movdqa xmm3, xmm4
add rax, 2
jne 0x180009810
mov eax, 0x138
jmp 0x1800099fb
cmp eax, 0x270
jb 0x1800099fb
movq xmm0, qword [rcx + 0x9c8]
pshufd xmm3, xmm0, 0x44
mov rax, 0xffffffffffffff64
movaps xmm0, xmmword [0x1800d42a0]
movaps xmm1, xmmword [0x1800d42b0]
movdqa xmm2, xmmword [0x1800d42c0]
nop word cs:[rax + rax]
movups xmm4, xmmword [rcx + rax*8 + 0xeb0]
shufps xmm3, xmm4, 0x4e
andps xmm3, xmm0
movaps xmm5, xmm4
andps xmm5, xmm1
orps xmm5, xmm3
psrlq xmm5, 1
pshufd xmm3, xmm4, 0xa0
pslld xmm3, 0x1f
psrad xmm3, 0x1f
pand xmm3, xmm2
movdqu xmm6, xmmword [rcx + rax*8 + 0x1388]
pxor xmm6, xmm3
pxor xmm6, xmm5
movdqu xmmword [rcx + rax*8 + 0x4e8], xmm6
movdqa xmm3, xmm4
add rax, 2
jne 0x1800098b0
movq xmm3, qword [rcx + 0xea8]
pshufd xmm3, xmm3, 0x44
xor eax, eax
nop word cs:[rax + rax]
movdqa xmm4, xmm3
movups xmm3, xmmword [rcx + rax*8 + 0xeb0]
shufps xmm4, xmm3, 0x4e
andps xmm4, xmm0
movaps xmm5, xmm3
andps xmm5, xmm1
orps xmm5, xmm4
psrlq xmm5, 1
pshufd xmm4, xmm3, 0xa0
pslld xmm4, 0x1f
psrad xmm4, 0x1f
pand xmm4, xmm2
movdqu xmm6, xmmword [rcx + rax*8 + 8]
pxor xmm6, xmm4
pxor xmm6, xmm5
movdqu xmmword [rcx + rax*8 + 0x4e8], xmm6
add rax, 2
cmp rax, 0x9a
jne 0x180009920
pshufd xmm0, xmm3, 0xee
movq rax, xmm0
and rax, 0xffffffff80000000
mov rdx, qword [rcx + 0x1380]
mov r8d, edx
and r8d, 0x7ffffffe
or r8, rax
shr r8, 1
mov eax, edx
and eax, 1
neg rax
movabs r9, 0xb5026f5aa96619e9
and rax, r9
xor rax, qword [rcx + 0x4d8]
xor rax, r8
mov qword [rcx + 0x9b8], rax
and rdx, 0xffffffff80000000
mov rax, qword [rcx + 8]
mov r8d, eax
and r8d, 0x7ffffffe
or r8, rdx
and eax, 1
neg rax
and rax, r9
xor rax, qword [rcx + 0x4e0]
shr r8, 1
xor rax, r8
mov qword [rcx + 0x9c0], rax
xor eax, eax
lea edx, [rax + 1]
mov dword [rcx], edx
mov eax, eax
mov rax, qword [rcx + rax*8 + 8]
mov rdx, rax
shr rdx, 0x1d
and rdx, qword [rcx + 0x1388]
xor rdx, rax
mov rax, rdx
shl rax, 0x11
movabs rcx, 0x71d67fffeda60000
and rcx, rax
xor rcx, rdx
mov edx, ecx
and edx, 0x7ffbf77
shl rdx, 0x25
xor rdx, rcx
mov rax, rdx
shr rax, 0x2b
xor rax, rdx
movaps xmm6, xmmword [rsp]
add rsp, 0x18
ret
Function at 0x18001def0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x20
mov rbx, r8
mov rdi, rdx
mov rsi, rcx
mov rdx, qword [rdx + 0x10]
mov r8, rdx
call fcn.180019fc0
cmp byte [rsi + 0x19], 0
mov rcx, rsi
jne 0x18001df19
mov rcx, qword [rsi + 8]
cmp byte [rdi + 0x19], 0
mov rdx, rdi
jne 0x18001df26
mov rdx, qword [rdi + 8]
mov eax, dword [rdx]
mov r8d, dword [rbx]
mov r9d, eax
sub r9d, r8d
jae 0x18001df55
cmp qword [rsi + 0x10], 1
jne 0x18001dfaa
sub r8d, eax
mov dword [rcx], r8d
movzx eax, byte [rdi + 0x18]
mov ecx, eax
xor cl, 1
mov byte [rsi + 0x18], cl
test al, al
je 0x18001df89
jmp 0x18001e05e
mov dword [rcx], r9d
cmp rsi, rdi
je 0x18001e045
add rcx, 4
mov rax, qword [rdi + 0x10]
add rdx, 4
lea r8, [rax*4 - 4]
call fcn.1800cf610
movzx eax, byte [rdi + 0x18]
mov byte [rsi + 0x18], al
test al, al
je 0x18001e05e
cmp qword [rsi + 0x10], 1
jne 0x18001e05e
cmp byte [rsi + 0x19], 0
mov rax, rsi
jne 0x18001e03a
mov rax, qword [rsi + 8]
jmp 0x18001e03a
mov dword [rcx], r9d
mov r8d, dword [rdx + 4]
mov eax, 1
test r8d, r8d
jne 0x18001dfd4
nop dword [rax + rax]
mov dword [rcx + rax*4], 0xffffffff
mov r8d, dword [rdx + rax*4 + 4]
inc rax
test r8d, r8d
je 0x18001dfc0
dec r8d
mov dword [rcx + rax*4], r8d
cmp rsi, rdi
je 0x18001e000
lea rcx, [rcx + rax*4]
add rcx, 4
mov r8, qword [rdi + 0x10]
lea r8, [rdx + r8*4]
lea rdx, [rdx + rax*4]
add rdx, 4
sub r8, rdx
call fcn.1800cf610
cmp byte [rsi + 0x19], 0
mov rax, rsi
jne 0x18001e00d
mov rax, qword [rsi + 8]
mov rcx, qword [rsi + 0x10]
dec rcx
je 0x18001e02f
nop word cs:[rax + rax]
cmp dword [rax + rcx*4], 0
jne 0x18001e057
mov qword [rsi + 0x10], rcx
dec rcx
jne 0x18001e020
movzx ecx, byte [rdi + 0x18]
mov byte [rsi + 0x18], cl
test cl, cl
je 0x18001e05e
cmp dword [rax], 0
jne 0x18001e05e
mov byte [rsi + 0x18], 0
jmp 0x18001e05e
cmp eax, r8d
jne 0x18001e05e
cmp qword [rdi + 0x10], 1
jne 0x18001e05e
mov byte [rdi + 0x18], 0
jmp 0x18001e05e
movzx eax, byte [rdi + 0x18]
mov byte [rsi + 0x18], al
add rsp, 0x20
pop rbx
pop rdi
pop rsi
ret