joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1400bc5a8
Capabilities:
Encrypt data using rc4 prga

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, 0x20
mov rbx, rcx
mov ebp, 0x7ff
movzx ecx, word [rcx + 6]
mov esi, edx
shr cx, 4
and cx, bp
cmp cx, bp
jne 0x1400bc609
test byte [rbx + 6], 0xf
jne 0x1400bc5fc
xor edi, edi
cmp word [rbx + 4], di
jne 0x1400bc5fc
cmp word [rbx + 2], di
jne 0x1400bc5fc
cmp word [rbx], di
jne 0x1400bc5fc
lea esi, [rdi + 1]
jmp 0x1400bc601
mov esi, 2
movzx eax, si
jmp 0x1400bc806
xor edi, edi
test cx, cx
jne 0x1400bc624
mov rcx, rbx
call fcn.1400bde88
movzx ecx, ax
cmp di, ax
jl 0x1400bc803
movsx edx, cx
test esi, esi
jle 0x1400bc654
sub ebp, edx
cmp ebp, esi
jg 0x1400bc654
movsd xmm0, qword [0x140121c50]
cmp word [rbx + 6], di
jge 0x1400bc646
xorps xmm0, xmmword [0x1400e7fd0]
movsd qword [rbx], xmm0
mov eax, 1
jmp 0x1400bc806
movzx r11d, word [rbx + 6]
mov eax, edx
neg eax
cmp eax, esi
jge 0x1400bc681
add si, cx
mov eax, 0x800f
shl si, 4
and r11w, ax
or si, r11w
mov word [rbx + 6], si
or eax, 0xffffffff
jmp 0x1400bc806
movzx r15d, r11w
lea ebp, [rsi - 1]
and r11w, 0xf
mov r13d, 0x8000
mov r12d, 0x10
and r15w, r13w
or r11w, r12w
add ebp, edx
cmp ebp, 0xffffffcb
jl 0x1400bc7f8
test ebp, ebp
jns 0x1400bc7f8
lea esi, [r12 - 0xf]
movzx r14d, di
cmp bp, 0xfff0
jg 0x1400bc71c
movzx ecx, word [rbx + 4]
mov eax, 0xfff0
movzx edx, word [rbx + 2]
sub ax, bp
shr ax, 4
movzx r9d, r11w
add ax, si
movzx r8d, ax
movzx eax, r8w
shl ax, 4
add bp, ax
test r14w, r14w
mov eax, edi
setne al
movzx r14d, ax
or r14w, word [rbx]
mov word [rbx], dx
movzx edx, cx
movzx ecx, r9w
mov r9d, edi
sub r8, rsi
jne 0x1400bc6ed
mov word [rbx + 4], cx
movzx r11d, di
mov word [rbx + 2], dx
neg bp
je 0x1400bc79b
movzx r8d, word [rbx]
mov eax, edi
movzx r9d, word [rbx + 2]
movzx edx, r8w
movsx r10d, bp
sub r12d, r10d
mov ecx, r12d
shl dx, cl
test r14w, r14w
movzx r14d, dx
movzx edx, word [rbx + 4]
setne al
or r14w, ax
movzx eax, r9w
shl ax, cl
movzx ecx, bp
shr r8w, cl
mov ecx, r12d
or ax, r8w
mov word [rbx], ax
movzx eax, dx
shl ax, cl
movzx ecx, bp
shr r9w, cl
mov ecx, r12d
or ax, r9w
mov word [rbx + 2], ax
movzx eax, r11w
shl ax, cl
movzx ecx, bp
shr dx, cl
mov ecx, r10d
or ax, dx
mov word [rbx + 4], ax
shr r11w, cl
or r11w, r15w
mov word [rbx + 6], r11w
cmp r13w, r14w
jb 0x1400bc7b1
jne 0x1400bc7d0
test byte [rbx], sil
je 0x1400bc7d0
add word [rbx], si
jne 0x1400bc7d0
add word [rbx + 2], si
jne 0x1400bc7d0
add word [rbx + 4], si
jne 0x1400bc7d0
add r11w, si
mov word [rbx + 6], r11w
jmp 0x1400bc679
cmp r11w, r15w
jne 0x1400bc679
cmp word [rbx + 4], di
jne 0x1400bc679
cmp word [rbx + 2], di
jne 0x1400bc679
cmp word [rbx], di
je 0x1400bc803
jmp 0x1400bc679
mov word [rbx + 6], r15w
mov dword [rbx + 2], edi
mov word [rbx], di
movzx eax, di
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
Function at 0x1400be390
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 [0x140123a28], rbx
je 0x1400be3dc
cmp rax, rbx
jne 0x1400be3cf
mov ebx, 1
mov esi, ebx
jmp 0x1400be3e1
mov ecx, 0x3e8
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x1400be3b4
mov ebx, 1
mov eax, dword [0x140123a30]
cmp eax, ebx
jne 0x1400be3f7
mov ecx, 0x1f
call sub.msvcrt.dll__amsg_exit
jmp 0x1400be45c
mov eax, dword [0x140123a30]
test eax, eax
jne 0x1400be456
mov dword [0x140123a30], ebx
lea r15, [0x1400d28e8]
lea rdi, [0x1400d28d0]
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], eax
cmp rdi, r15
jae 0x1400be448
test eax, eax
jne 0x1400be44c
cmp qword [rdi], 0
je 0x1400be43d
mov rax, qword [rdi]
mov rcx, qword [0x1400d22d8]
call rcx
mov dword [rsp + 0x20], eax
add rdi, 8
mov qword [rsp + 0x28], rdi
jmp 0x1400be41e
test eax, eax
je 0x1400be45c
mov eax, 0xff
jmp 0x1400be538
mov dword [0x140122618], ebx
mov eax, dword [0x140123a30]
cmp eax, ebx
jne 0x1400be483
lea rdx, [0x1400d28c8]
lea rcx, [0x1400d22e0]
call sub.msvcrt.dll__initterm
mov dword [0x140123a30], 2
test esi, esi
jne 0x1400be490
xor eax, eax
xchg qword [0x140123a28], rax
cmp qword [0x140123a48], 0
je 0x1400be4c4
lea rcx, [0x140123a48]
call fcn.1400beb60
test eax, eax
je 0x1400be4c4
xor r8d, r8d
lea edx, [r8 + 2]
xor ecx, ecx
mov rax, qword [0x140123a48]
mov r9, qword [0x1400d22d8]
call r9
mov r8, qword [0x140122630]
mov rdx, qword [0x140122628]
mov ecx, dword [0x140122620]
call fcn.140003a90
mov dword [0x140122614], eax
cmp dword [0x140122638], 0
jne 0x1400be4f4
mov ecx, eax
call qword [sym.imp.msvcrt.dll_exit]
cmp dword [0x140122618], 0
jne 0x1400be509
call qword [sym.imp.msvcrt.dll__cexit]
mov eax, dword [0x140122614]
jmp 0x1400be538
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 fcn.1401bb000
add rsp, 0x28
jmp 0x1400be390

Function at 0x1400bea5c
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x18
xor edx, edx
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x1400beaa8
mov eax, 0x5a4d
cmp word [rcx], ax
jne 0x1400beaa0
cmp dword [rcx + 0x3c], edx
jl 0x1400beaa0
cmp dword [rcx + 0x3c], 0x10000000
jae 0x1400beaa0
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 0x1400beaa8
mov rax, rdx
add rsp, 0x18
ret
Function at 0x140014020
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x1050
call fcn.140005f40
sub rsp, rax
mov rax, qword [0x14002e040]
xor rax, rsp
mov qword [rsp + 0x1040], rax
mov r15, r8
mov rbp, rdx
mov rbx, rcx
call fcn.140012c00
xor edi, edi
movsxd r14, eax
cmp dword [rbx + 0x10], edi
jne 0x14001406f
mov rax, rbp
jmp 0x140014177
mov rax, qword [rbx]
mov rcx, r14
sub rax, qword [rbx + 8]
and ecx, 0x3f
cqo
mov rbx, r14
sub rax, rdx
sar rbx, 6
sar rax, 1
mov r9, r15
lea r12, [rcx + rcx*8]
mov rsi, rax
lea rax, [0x140000000]
xor r8d, r8d
mov rdx, qword [rax + rbx*8 + 0xb338d0]
mov ecx, r14d
mov rdx, qword [rdx + r12*8 + 0x30]
call fcn.140015140
mov r13, rax
lea rax, [0x140000000]
mov rcx, qword [rax + rbx*8 + 0xb338d0]
cmp r13, qword [rcx + r12*8 + 0x30]
jne 0x140014173
mov rcx, qword [rcx + r12*8 + 0x28]
lea r9, [rsp + 0x30]
mov r8d, 0x1000
mov qword [rsp + 0x20], rdi
lea rdx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x140014173
mov r9, r15
xor r8d, r8d
mov rdx, rbp
mov ecx, r14d
call fcn.140015140
test rax, rax
js 0x140014173
mov eax, dword [rsp + 0x30]
cmp rsi, rax
jg 0x140014173
lea rdx, [rsp + 0x40]
add rdx, rax
lea rcx, [rsp + 0x40]
test rsi, rsi
je 0x140014165
lea r8, [0x140000000]
cmp rcx, rdx
jae 0x140014165
cmp byte [rcx], 0xd
jne 0x14001414b
lea rax, [rdx - 1]
cmp rcx, rax
jae 0x14001415a
cmp byte [rcx + 1], 0xa
jne 0x14001415a
inc rcx
jmp 0x14001415a
movzx eax, byte [rcx]
movsx rax, byte [rax + r8 + 0x2e480]
add rcx, rax
inc rdi
inc rcx
cmp rdi, rsi
jne 0x14001412d
lea rax, [rsp + 0x40]
sub rcx, rax
lea rax, [rcx + r13]
jmp 0x140014177
or rax, 0xffffffffffffffff
mov rcx, qword [rsp + 0x1040]
xor rcx, rsp
call fcn.140005b50
mov rbx, qword [rsp + 0x1090]
add rsp, 0x1050
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret

Function at 0x140014398
Capabilities:
Get file size

Disassembly:
push rbx
sub rsp, 0x20
mov edx, dword [rcx + 0x14]
nop
shr edx, 3
test dl, 1
je 0x1400143ae
mov al, 1
jmp 0x14001440e
mov eax, dword [rcx + 0x14]
nop
test al, 0xc0
je 0x1400143bf
mov rax, qword [rcx + 8]
cmp qword [rcx], rax
je 0x14001440c
mov ecx, dword [rcx + 0x18]
nop
call fcn.140018af4
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x14001440c
mov r9d, 1
lea r8, [rsp + 0x38]
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x14001440c
lea rdx, [rsp + 0x30]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
je 0x14001440c
mov rax, qword [rsp + 0x30]
cmp qword [rsp + 0x38], rax
sete al
jmp 0x14001440e
xor al, al
add rsp, 0x20
pop rbx
ret
Function at 0x1400144e0
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
movsxd r15, ecx
lea r9, [0x140b338d0]
mov rax, r15
mov rbp, r15
and eax, 0x3f
sar rbp, 6
mov ecx, 4
xor esi, esi
mov r14, rdx
lea rdi, [rax + rax*8]
mov rax, qword [r9 + rbp*8]
lea r13d, [rcx + 6]
mov r10, qword [rax + rdi*8 + 0x28]
test r8, r8
je 0x140014537
cmp word [rdx], r13w
jne 0x140014537
or byte [rax + rdi*8 + 0x38], cl
jmp 0x14001453c
and byte [rax + rdi*8 + 0x38], 0xfb
lea r8, [rdx + r8*2]
mov rbx, r14
cmp r14, r8
jae 0x140014661
mov r11d, 0xd
lea r12d, [r11 - 0xb]
movzx ecx, word [rdx]
cmp cx, 0x1a
je 0x140014682
lea r9, [rdx + 2]
cmp cx, r11w
je 0x140014575
mov rdx, r9
mov word [rbx], cx
jmp 0x14001459c
cmp r9, r8
jae 0x1400145ac
cmp word [r9], r13w
mov rax, r12
mov ecx, 4
cmove rax, rcx
add rdx, rax
mov eax, r13d
cmp word [r9], r13w
cmovne ax, r11w
mov word [rbx], ax
mov rax, r12
add rbx, rax
cmp rdx, r8
jb 0x140014556
jmp 0x140014661
lea r9, [rsp + 0x80]
mov qword [rsp + 0x20], rsi
mov r8d, r12d
lea rdx, [rsp + 0x70]
mov rcx, r10
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x140014656
cmp dword [rsp + 0x80], esi
je 0x140014656
lea r8, [0x140b338d0]
mov rax, qword [r8 + rbp*8]
test byte [rax + rdi*8 + 0x38], 0x48
je 0x14001462e
movzx eax, word [rsp + 0x70]
cmp ax, r13w
jne 0x1400145fe
mov word [rbx], r13w
jmp 0x14001465e
mov ecx, 0xd
mov word [rsp + 0x78], ax
mov word [rbx], cx
mov rax, qword [r8 + rbp*8]
lea rcx, [rax + rdi*8]
mov al, byte [rsp + rsi + 0x78]
mov byte [rcx + rsi + 0x3a], al
inc rsi
cmp rsi, r12
jl 0x14001460b
mov rax, qword [r8 + rbp*8]
mov byte [rax + rdi*8 + 0x3c], r13b
jmp 0x14001465e
cmp word [rsp + 0x70], r13w
jne 0x14001463b
cmp rbx, r14
je 0x1400145f8
mov rdx, 0xfffffffffffffffe
mov ecx, r15d
lea r8d, [rdx + 3]
call fcn.140015148
cmp word [rsp + 0x70], r13w
je 0x140014661
mov ecx, 0xd
mov word [rbx], cx
add rbx, r12
sub rbx, r14
sar rbx, 1
lea eax, [rbx + rbx]
mov rbx, qword [rsp + 0x88]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea r8, [0x140b338d0]
mov rdx, qword [r8 + rbp*8]
mov al, byte [rdx + rdi*8 + 0x38]
test al, 0x40
jne 0x14001465b
or al, r12b
mov byte [rdx + rdi*8 + 0x38], al
jmp 0x140014661
Function at 0x1400111f4
Capabilities:
Terminate process

Disassembly:
jmp 0x140012ed0
mov qword [rsp + 8], rcx
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_UnhandledExceptionFilter]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov edx, 0xc0000409
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
nop
add rsp, 0x28
ret

Function at 0x14001127b
Capabilities:
Parse pe header

Disassembly:
jmp 0x140014220
sub rsp, 0x38
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0
jne 0x140014240
xor al, al
jmp 0x1400142c1
mov rax, qword [rsp + 0x20]
movzx eax, word [rax]
cmp eax, 0x5a4d
je 0x140014253
xor al, al
jmp 0x1400142c1
mov rax, qword [rsp + 0x20]
movsxd rax, dword [rax + 0x3c]
mov rcx, qword [rsp + 0x20]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x28]
cmp dword [rax], 0x4550
je 0x14001427d
xor al, al
jmp 0x1400142c1
mov rax, qword [rsp + 0x28]
movzx eax, word [rax + 0x18]
cmp eax, 0x20b
je 0x140014291
xor al, al
jmp 0x1400142c1
mov rax, qword [rsp + 0x28]
cmp dword [rax + 0x84], 0xe
ja 0x1400142a3
xor al, al
jmp 0x1400142c1
mov eax, 8
imul rax, rax, 0xe
mov rcx, qword [rsp + 0x28]
cmp dword [rcx + rax + 0x88], 0
jne 0x1400142bf
xor al, al
jmp 0x1400142c1
mov al, 1
add rsp, 0x38
ret
Function at 0x140012110
Capabilities:
Terminate process

Disassembly:
sub rsp, 0x68
mov ecx, 1
call fcn.140011398
movzx eax, al
test eax, eax
jne 0x140012130
mov ecx, 7
call fcn.140011316
nop
mov byte [rsp + 0x20], 0
call fcn.14001132a
mov byte [rsp + 0x21], al
cmp dword [0x14001d868], 1
jne 0x140012154
mov ecx, 7
call fcn.140011316
nop
jmp 0x1400121ac
cmp dword [0x14001d868], 0
jne 0x1400121a7
mov dword [0x14001d868], 1
lea rdx, [0x14001a660]
lea rcx, [0x14001a330]
call fcn.14001119f
test eax, eax
je 0x140012188
mov eax, 0xff
jmp 0x1400122b1
lea rdx, [0x14001a220]
lea rcx, [section..rdata]
call fcn.140011320
mov dword [0x14001d868], 2
jmp 0x1400121ac
mov byte [rsp + 0x20], 1
movzx ecx, byte [rsp + 0x21]
call fcn.140011302
call fcn.14001129e
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
cmp qword [rax], 0
je 0x140012209
mov rcx, qword [rsp + 0x30]
call fcn.140011154
movzx eax, al
test eax, eax
je 0x140012209
mov rax, qword [rsp + 0x30]
mov rax, qword [rax]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x50], rax
xor r8d, r8d
mov edx, 2
xor ecx, ecx
mov rax, qword [rsp + 0x50]
call qword [0x140023020]
nop
call fcn.1400112d0
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x38]
cmp qword [rax], 0
je 0x14001223d
mov rcx, qword [rsp + 0x38]
call fcn.140011154
movzx eax, al
test eax, eax
je 0x14001223d
mov rax, qword [rsp + 0x38]
mov rcx, qword [rax]
call fcn.140011357
nop
call fcn.140012360
mov dword [rsp + 0x28], eax
call fcn.14001127b
movzx eax, al
test eax, eax
jne 0x14001225c
mov ecx, dword [rsp + 0x28]
call fcn.140011055
nop
movzx eax, byte [rsp + 0x20]
test eax, eax
jne 0x14001226b
call fcn.140011361
nop
xor edx, edx
mov cl, 1
call fcn.140011145
mov eax, dword [rsp + 0x28]
jmp 0x1400122b1
add rsp, 0x68
ret
Function at 0x140005130
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 0x140005187
mov ebx, eax
lea rcx, [rsp + 0x20]
mov edx, 0x20
call qword [sym.imp.ADVAPI32.dll_SystemFunction036]
test al, al
je 0x140005238
movaps xmm0, xmmword [rsp + 0x20]
movaps xmm1, xmmword [rsp + 0x30]
movaps xmmword [rsp + 0x50], xmm1
movaps xmmword [rsp + 0x40], xmm0
mov rax, qword [0x141d019d8]
test rax, rax
je 0x14000526c
and eax, 0x4000
xor ecx, ecx
lea rbx, [rsp + 0x70]
or rax, rcx
je 0x1400051d2
lea r8, [0x141cf36f0]
lea rdx, [rsp + 0x40]
mov rcx, rbx
call fcn.140026270
jmp 0x1400051f4
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.140026290
nop
add rsp, 0xa0
pop rbx
pop rdi
pop rsi
ret
movzx eax, byte [0x141d019e8]
mov edx, 4
xor ecx, ecx
call fcn.14003c8f0
test rax, rax
je 0x140005276
and ebx, 0x7fffffff
mov dword [rax], ebx
mov rcx, qword [0x141d019d0]
xor edx, edx
mov r8, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x14000520a
call fcn.140055700
jmp 0x1400051ab
ud2

Function at 0x1400074c0
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 [0x141d019e8]
mov edx, 4
xor ecx, ecx
call fcn.14003c8f0
test rax, rax
je 0x14000759d
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.140007ac0
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
pop rax
invalid
je 0x140007569
mov rcx, qword [0x141d019d0]
ud2
Function at 0x140028cc0
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 [0x141d019e8]
mov edx, 0x5f0
xor ecx, ecx
call fcn.14003c8f0
test rax, rax
je 0x140028f1c
mov rbx, rax
lea r15, [rsi + 0x38]
movabs r12, 0x800000000000000
mov r8d, 0x5f0
mov rcx, rax
xor edx, edx
call fcn.140048bc0
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 [0x141d01938], 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 0x140028d60
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 0x140028ef8
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 [0x141d019d0]
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 0x14002caf0
Capabilities:
Write file on windows

Disassembly:
push rsi
sub rsp, 0xa0
mov rsi, rcx
movups xmm0, xmmword [0x141cf3b88]
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 0x14002cb5c
mov rcx, rsi
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [rsp + 0x60]
cmp eax, 0x103
je 0x14002cb90
test eax, eax
js 0x14002cb70
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, [0x141cf3be8]
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.14002c430
mov rcx, rax
call fcn.140031990
mov ecx, 7
int 0x29
ud2

Function at 0x14002e110
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 0x140030770
Capabilities:
Create directory

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x70
mov r8, rdx
ror byte [rax - 0x77], 1
invalid
Function at 0x1400390f0
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.14002e750
mov rax, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
mov rcx, rax
neg rcx
jo 0x140039156
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.140039210
mov rbx, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x30]
cmp rbx, r14
jne 0x1400391bd
mov eax, edi
and eax, 3
cmp eax, 1
jne 0x1400391ae
mov rbx, qword [rdi - 1]
mov r15, qword [rdi + 7]
mov rax, qword [r15]
test rax, rax
je 0x140039175
mov rcx, rbx
call rax
dec rdi
cmp qword [r15 + 8], 0
je 0x14003919c
cmp qword [r15 + 0x10], 0x11
jb 0x14003918a
mov rbx, qword [rbx - 8]
mov rcx, qword [0x141d019d0]
xor edx, edx
mov r8, rbx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, qword [0x141d019d0]
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 0x1400391dd
mov qword [rsi], rbx
mov qword [rsi + 8], rdi
mov qword [rsi + 0x10], r15
jmp 0x1400391b1
mov qword [rsi], r14
test rbx, rbx
je 0x1400391b1
mov rcx, qword [0x141d019d0]
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 0x14003abb0
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 [0x141d019e8]
mov edx, 0x10
xor ecx, ecx
call fcn.14003c8f0
test rax, rax
je 0x14003ac84
mov rsi, rax
mov qword [rax], r14
mov qword [rax + 8], rbx
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0x10000
lea r8, [0x14003add0]
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 0x14003ac77
mov rdi, qword [rsi]
mov rbx, qword [rsi + 8]
mov rax, qword [rbx]
test rax, rax
je 0x14003ac2c
mov rcx, rdi
call rax
cmp qword [rbx + 8], 0
je 0x14003ac50
cmp qword [rbx + 0x10], 0x11
jb 0x14003ac3e
mov rdi, qword [rdi - 8]
mov rcx, qword [0x141d019d0]
xor edx, edx
mov r8, rdi
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, qword [0x141d019d0]
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