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

Disassembly:
push rbp
push rbx
push rsi
push rdi
mov rbp, rsp
sub rsp, 0x68
mov qword [rbp - 0x30], 0xfffffffffffffffe
mov eax, dword [rcx + 0x22c]
shr eax, 0xc
cmp eax, 1
je 0x14000df66
add eax, 0xfffffffd
cmp eax, 2
jbe 0x14000df66
xor edi, edi
lea rax, [rbp - 0x38]
mov qword [rbp + 0x28], rax
call fcn.140001230
mov rcx, rax
test rax, rax
je 0x14000df76
mov rax, qword [rax]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rbp - 0x38], rax
lea rdx, str.SRSUI
lea rbx, [rdi - 1]
cmp rdx, 0x10000
jae 0x14000de5d
movzx edx, dx
lea rcx, [rbp - 0x38]
call fcn.140002e30
jmp 0x14000de77
mov rax, rbx
inc rax
cmp word [rdx + rax*2], 0
jne 0x14000de60
mov r8d, eax
lea rcx, [rbp - 0x38]
call fcn.1400030e0
nop
mov qword [rbp - 0x28], rdi
mov dword [rbp - 0x20], edi
mov qword [rbp - 0x18], rdi
mov dword [rbp + 0x28], edi
mov r9d, 1
lea r8, str.SOFTWARERealtekAudioGUI_INFORMATION
lea rcx, [rbp - 0x28]
call fcn.1400015b0
test eax, eax
je 0x14000ded8
mov rcx, qword [rbp - 0x28]
test rcx, rcx
je 0x14000deae
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rdx, qword [rbp - 0x38]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebx
sub ebx, 1
jg 0x14000df6b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, edi
add rsp, 0x68
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov dword [rbp + 0x30], 4
lea rax, [rbp + 0x30]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x28]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0x38]
xor r8d, r8d
mov rdx, qword [rbp - 0x38]
mov rsi, qword [rbp - 0x28]
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x14000df55
cmp dword [rbp + 0x38], 4
jne 0x14000df55
mov eax, dword [rbp + 0x28]
mov dword [rbp + 0x40], eax
test rsi, rsi
je 0x14000df27
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rdx, qword [rbp - 0x38]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebx
sub ebx, 1
jg 0x14000df42
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
cmp dword [rbp + 0x40], 0
setne dil
mov eax, edi
add rsp, 0x68
pop rdi
pop rsi
pop rbx
pop rbp
ret
test rsi, rsi
je 0x14000deae
mov rcx, rsi
jmp 0x14000dea8
mov edi, 1
mov eax, edi
add rsp, 0x68
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ecx, 0x80004005
call fcn.1400014c0
int3
Function at 0x1400103d0
Capabilities:
Create thread

Disassembly:
push rdi
sub rsp, 0x30
mov rdi, rcx
xor edx, edx
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitializeEx]
test eax, eax
jns 0x1400103ee
mov edx, 0x5e
jmp 0x140010421
cmp qword [rdi + 0x40], 0
lea rax, [rdi + 0x40]
jne 0x140010468
xor edx, edx
mov qword [rsp + 0x20], rax
lea r9, [0x140031c80]
lea rcx, [0x140031c40]
lea r8d, [rdx + 0x17]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jns 0x140010468
mov edx, 0x65
mov r9d, eax
lea r8, str.f:proj_20210312_backgroundprocess_huawei_rtkaudservice_modifymmdeviceapilibmmdeviceapibase.cpp
lea rcx, str._MMDevAPILib__EXIT_ON_ERROR:_Line___d__File___s__hr__0x_X_n
call fcn.14000ef30
mov rcx, qword [rdi + 0x40]
test rcx, rcx
je 0x14001044e
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [rdi + 0x40], 0
call qword [sym.imp.ole32.dll_CoUninitialize]
lea rcx, str.CMMDeviceAPIBase::Init___failed_n
call fcn.14000ef30
xor al, al
add rsp, 0x30
pop rdi
ret
mov qword [rsp + 0x40], rbx
lea rbx, [rdi + 8]
mov qword [rsp + 0x48], rsi
mov esi, 3
nop dword [rax + rax]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [rbx], rax
lea rbx, [rbx + 8]
sub rsi, 1
jne 0x140010480
lea rbx, [rdi + 0x28]
mov esi, 2
nop word [rax + rax]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [rbx], rax
lea rbx, [rbx + 8]
sub rsi, 1
jne 0x1400104b0
lea rax, [rdi + 0x38]
mov r9, rdi
mov qword [rsp + 0x28], rax
lea r8, [0x140010580]
xor edx, edx
mov dword [rsp + 0x20], esi
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov rsi, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x40]
mov qword [rdi + 0x20], rax
mov al, 1
add rsp, 0x30
pop rdi
ret
Function at 0x140001000
Capabilities:
Contain obfuscated stackstrings

Disassembly:
sub rsp, 0x48
mov dword [rsp + 0x20], 0
mov byte [rsp + 0x30], 0x45
mov byte [rsp + 0x31], 0x74
mov byte [rsp + 0x32], 0x77
mov byte [rsp + 0x33], 0x45
mov byte [rsp + 0x34], 0x76
mov byte [rsp + 0x35], 0x65
mov byte [rsp + 0x36], 0x6e
mov byte [rsp + 0x37], 0x74
mov byte [rsp + 0x38], 0x57
mov byte [rsp + 0x39], 0x72
mov byte [rsp + 0x3a], 0x69
mov byte [rsp + 0x3b], 0x74
mov byte [rsp + 0x3c], 0x65
mov byte [rsp + 0x3d], 0
lea rcx, [0x1400042a8]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
lea rdx, [rsp + 0x30]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x20]
mov r8d, 0x40
mov edx, 0x1000
mov rcx, qword [rsp + 0x28]
call qword [0x1400066c0]
mov rax, qword [rsp + 0x28]
mov ecx, dword [0x1400042bc]
mov dword [rax], ecx
lea r9, [rsp + 0x20]
mov r8d, dword [rsp + 0x20]
mov edx, 0x1000
mov rcx, qword [rsp + 0x28]
call qword [0x1400066c0]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov r8d, 0x1000
mov rdx, qword [rsp + 0x28]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FlushInstructionCache]
add rsp, 0x48
ret
Function at 0x140001550
Capabilities:
Enumerate pe sections

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rsi
push rdi
sub rsp, 0x48
mov dword [rsp + 0x20], 0
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x38]
movsxd rax, dword [rax + 0x3c]
mov rcx, qword [rsp + 0x68]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x24], 0
jmp 0x14000159f
mov eax, dword [rsp + 0x24]
inc eax
mov dword [rsp + 0x24], eax
mov rax, qword [rsp + 0x30]
movzx eax, word [rax + 6]
cmp dword [rsp + 0x24], eax
jge 0x1400016c5
mov rax, qword [rsp + 0x30]
movzx eax, word [rax + 0x14]
mov rcx, qword [rsp + 0x30]
lea rax, [rcx + rax + 0x18]
movsxd rcx, dword [rsp + 0x24]
imul rcx, rcx, 0x28
add rax, rcx
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x28]
mov rax, qword [rsp + 0x28]
lea rcx, str..text
sub rcx, rax
movzx edx, byte [rax]
cmp dl, byte [rax + rcx]
jne 0x1400015fd
inc rax
test dl, dl
jne 0x1400015ea
xor eax, eax
jmp 0x140001602
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1400016c0
mov rax, qword [rsp + 0x28]
mov eax, dword [rax + 8]
mov rcx, qword [rsp + 0x28]
mov ecx, dword [rcx + 0xc]
mov rdx, qword [rsp + 0x60]
add rdx, rcx
mov rcx, rdx
lea r9, [rsp + 0x20]
mov r8d, 0x40
mov edx, eax
call qword [0x1400066c0]
cmp dword [rsp + 0x20], 0
jne 0x140001649
mov eax, 0xffffffff
jmp 0x1400016ca
mov rax, qword [rsp + 0x28]
mov eax, dword [rax + 8]
mov rcx, qword [rsp + 0x28]
mov ecx, dword [rcx + 0xc]
mov rdx, qword [rsp + 0x68]
add rdx, rcx
mov rcx, rdx
mov rdx, qword [rsp + 0x28]
mov edx, dword [rdx + 0xc]
mov r8, qword [rsp + 0x60]
add r8, rdx
mov rdx, r8
mov rdi, rdx
mov rsi, rcx
mov ecx, eax
rep movsb byte [rdi], byte [rsi]
mov rax, qword [rsp + 0x28]
mov eax, dword [rax + 8]
mov rcx, qword [rsp + 0x28]
mov ecx, dword [rcx + 0xc]
mov rdx, qword [rsp + 0x60]
add rdx, rcx
mov rcx, rdx
lea r9, [rsp + 0x20]
mov r8d, dword [rsp + 0x20]
mov edx, eax
call qword [0x1400066c0]
cmp dword [rsp + 0x20], 0
jne 0x1400016bc
mov eax, 0xffffffff
jmp 0x1400016ca
xor eax, eax
jmp 0x1400016ca
jmp 0x140001595
mov eax, 0xffffffff
add rsp, 0x48
pop rdi
pop rsi
ret

Function at 0x140001760
Capabilities:
Allocate or change rwx memory

Disassembly:
sub rsp, 0x48
mov qword [rsp + 0x38], 0
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0x40
mov r9d, 0x3000
mov r8d, 0x3e8
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_VirtualAllocExNuma]
mov qword [rsp + 0x38], rax
cmp qword [rsp + 0x38], 0
jne 0x1400017ab
xor eax, eax
jmp 0x1400017c7
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_FlsAlloc]
mov dword [rsp + 0x30], eax
cmp dword [rsp + 0x30], 0xffffffff
jne 0x1400017c2
xor eax, eax
jmp 0x1400017c7
call fcn.1400010e0
add rsp, 0x48
ret
Function at 0x140001850
Capabilities:
Parse pe header

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x28
cmp qword [rsp + 0x30], 0
jne 0x140001865
xor eax, eax
jmp 0x1400018cc
mov rax, qword [rsp + 0x30]
mov qword [rsp + 8], rax
mov rax, qword [rsp + 8]
movzx eax, word [rax]
cmp eax, 0x5a4d
je 0x140001882
xor eax, eax
jmp 0x1400018cc
mov dword [rsp + 4], 0x400
mov rax, qword [rsp + 8]
mov eax, dword [rax + 0x3c]
mov dword [rsp], eax
cmp dword [rsp], 0x400
jle 0x1400018a2
xor eax, eax
jmp 0x1400018cc
movsxd rax, dword [rsp]
mov rcx, qword [rsp + 0x30]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x10], rax
mov rax, qword [rsp + 0x10]
cmp dword [rax], 0x4550
je 0x1400018c7
xor eax, eax
jmp 0x1400018cc
mov rax, qword [rsp + 0x10]
add rsp, 0x28
ret
Function at 0x140001180
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov rbx, rcx
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov edx, 8
mov rcx, rax
lea r8d, [rdx + 6]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
xor r11d, r11d
lea rsi, [0x14000f040]
mov r10, rax
sub rbx, rax
movabs rdi, 0x621b97c2aec12653
lea r9, [rax + 1]
nop dword [rax + rax]
movsxd r8, r11d
mov rax, rdi
mul r8
mov rcx, r8
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 1]
xor al, byte [rbx + r9 - 1]
mov byte [r9 - 1], al
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 2]
xor al, byte [rbx + r9]
mov byte [r9], al
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 3]
xor al, byte [rbx + r9 + 1]
mov byte [r9 + 1], al
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 4]
xor al, byte [rbx + r9 + 2]
mov byte [r9 + 2], al
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 5]
xor al, byte [rbx + r9 + 3]
mov byte [r9 + 3], al
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 6]
xor al, byte [rbx + r9 + 4]
mov byte [r9 + 4], al
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 7]
xor al, byte [rbx + r9 + 5]
mov byte [r9 + 5], al
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 8]
xor al, byte [rbx + r9 + 6]
mov byte [r9 + 6], al
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
xor al, byte [rbx + r9 + 7]
mov byte [r9 + 7], al
lea rcx, [r8 + 9]
mov rax, rdi
lea r9, [r9 + 0xe]
mul rcx
add r11d, 0xe
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 0xa]
xor al, byte [rbx + r9 - 6]
mov byte [r9 - 6], al
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 0xb]
xor al, byte [rbx + r9 - 5]
mov byte [r9 - 5], al
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 0xc]
xor al, byte [rbx + r9 - 4]
mov byte [r9 - 4], al
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 0xd]
xor al, byte [rbx + r9 - 3]
mov byte [r9 - 3], al
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
xor al, byte [rbx + r9 - 2]
mov byte [r9 - 2], al
cmp r11d, 0xe
jb 0x1400011d0
mov rbx, qword [rsp + 0x30]
mov rax, r10
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x140001400
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov rbx, rcx
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov edx, 8
mov rcx, rax
lea r8d, [rdx + 0x72]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
xor r10d, r10d
lea rsi, [0x14000f040]
mov r11, rax
sub rbx, rax
movabs rdi, 0x621b97c2aec12653
lea r9, [rax + 1]
nop dword [rax + rax]
movsxd r8, r10d
lea r9, [r9 + 2]
mov rax, rdi
mov rcx, r8
mul r8
add r10d, 2
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 1]
xor al, byte [rbx + r9 - 3]
mov byte [r9 - 3], al
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
xor al, byte [rbx + r9 - 2]
mov byte [r9 - 2], al
cmp r10d, 0x7a
jb 0x140001450
mov rbx, qword [rsp + 0x30]
mov rax, r11
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x1400014c0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov rbx, rcx
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov edx, 8
mov rcx, rax
lea r8d, [rdx + 3]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
xor r11d, r11d
lea rsi, [0x14000f040]
mov r10, rax
sub rbx, rax
movabs rdi, 0x621b97c2aec12653
lea r9, [rax + 1]
nop dword [rax + rax]
movsxd r8, r11d
mov rax, rdi
mul r8
mov rcx, r8
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 1]
xor al, byte [rbx + r9 - 1]
mov byte [r9 - 1], al
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 2]
xor al, byte [rbx + r9]
mov byte [r9], al
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 3]
xor al, byte [rbx + r9 + 1]
mov byte [r9 + 1], al
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 4]
xor al, byte [rbx + r9 + 2]
mov byte [r9 + 2], al
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 5]
xor al, byte [rbx + r9 + 3]
mov byte [r9 + 3], al
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 6]
xor al, byte [rbx + r9 + 4]
mov byte [r9 + 4], al
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 7]
xor al, byte [rbx + r9 + 5]
mov byte [r9 + 5], al
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 8]
xor al, byte [rbx + r9 + 6]
mov byte [r9 + 6], al
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
xor al, byte [rbx + r9 + 7]
mov byte [r9 + 7], al
lea rcx, [r8 + 9]
mov rax, rdi
lea r9, [r9 + 0xb]
mul rcx
add r11d, 0xb
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 0xa]
xor al, byte [rbx + r9 - 3]
mov byte [r9 - 3], al
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
xor al, byte [rbx + r9 - 2]
mov byte [r9 - 2], al
cmp r11d, 0xb
jb 0x140001510
mov rbx, qword [rsp + 0x30]
mov rax, r10
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x140001770
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov rbx, rcx
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov edx, 8
mov rcx, rax
lea r8d, [rdx - 6]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
xor r10d, r10d
lea rsi, [0x14000f190]
mov r11, rax
sub rbx, rax
movabs rdi, 0x621b97c2aec12653
lea r9, [rax + 1]
nop dword [rax + rax]
movsxd r8, r10d
lea r9, [r9 + 2]
mov rax, rdi
mov rcx, r8
mul r8
add r10d, 2
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 1]
xor al, byte [rbx + r9 - 3]
mov byte [r9 - 3], al
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
xor al, byte [rbx + r9 - 2]
mov byte [r9 - 2], al
cmp r10d, 2
jb 0x1400017c0
mov rbx, qword [rsp + 0x30]
mov rax, r11
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x140001830
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov rbx, rcx
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov edx, 8
mov rcx, rax
lea r8d, [rdx + 0x39]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
xor r11d, r11d
lea rsi, [0x14000f190]
mov r10, rax
sub rbx, rax
movabs rdi, 0x621b97c2aec12653
lea r9, [rax + 1]
nop dword [rax + rax]
movsxd r8, r11d
mov rax, rdi
mul r8
mov rcx, r8
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 1]
xor al, byte [rbx + r9 - 1]
mov byte [r9 - 1], al
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 2]
xor al, byte [rbx + r9]
mov byte [r9], al
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 3]
xor al, byte [rbx + r9 + 1]
mov byte [r9 + 1], al
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 4]
xor al, byte [rbx + r9 + 2]
mov byte [r9 + 2], al
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 5]
xor al, byte [rbx + r9 + 3]
mov byte [r9 + 3], al
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 6]
xor al, byte [rbx + r9 + 4]
mov byte [r9 + 4], al
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 7]
xor al, byte [rbx + r9 + 5]
mov byte [r9 + 5], al
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 8]
xor al, byte [rbx + r9 + 6]
mov byte [r9 + 6], al
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
xor al, byte [rbx + r9 + 7]
mov byte [r9 + 7], al
lea rcx, [r8 + 9]
mov rax, rdi
lea r9, [r9 + 0xd]
mul rcx
add r11d, 0xd
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 0xa]
xor al, byte [rbx + r9 - 5]
mov byte [r9 - 5], al
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 0xb]
xor al, byte [rbx + r9 - 4]
mov byte [r9 - 4], al
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 0xc]
xor al, byte [rbx + r9 - 3]
mov byte [r9 - 3], al
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
xor al, byte [rbx + r9 - 2]
mov byte [r9 - 2], al
cmp r11d, 0x41
jb 0x140001880
mov rbx, qword [rsp + 0x30]
mov rax, r10
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x140001df0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov rbx, rcx
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov edx, 8
mov rcx, rax
lea r8d, [rdx + 6]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
xor r11d, r11d
lea rsi, [0x14000f430]
mov r10, rax
sub rbx, rax
movabs rdi, 0x621b97c2aec12653
lea r9, [rax + 2]
nop dword [rax + rax]
movsxd r8, r11d
lea r9, [r9 + 0xe]
mov rax, rdi
mov rcx, r8
mul r8
add r11d, 7
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 1]
xor al, byte [r9 + rbx - 0x10]
movsx eax, al
mov word [r9 - 0x10], ax
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 2]
xor al, byte [r9 + rbx - 0xe]
movsx eax, al
mov word [r9 - 0xe], ax
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 3]
xor al, byte [r9 + rbx - 0xc]
movsx eax, al
mov word [r9 - 0xc], ax
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 4]
xor al, byte [r9 + rbx - 0xa]
movsx eax, al
mov word [r9 - 0xa], ax
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 5]
xor al, byte [r9 + rbx - 8]
movsx eax, al
mov word [r9 - 8], ax
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 6]
xor al, byte [r9 + rbx - 6]
movsx eax, al
mov word [r9 - 6], ax
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
xor al, byte [r9 + rbx - 4]
movsx eax, al
mov word [r9 - 4], ax
cmp r11d, 7
jb 0x140001e40
mov rbx, qword [rsp + 0x30]
mov rax, r10
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x140001f90
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov rbx, rcx
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov edx, 8
mov rcx, rax
lea r8d, [rdx + 8]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
xor r11d, r11d
lea rsi, [0x14000f430]
mov r10, rax
sub rbx, rax
movabs rdi, 0x621b97c2aec12653
lea r9, [rax + 2]
nop dword [rax + rax]
movsxd r8, r11d
mov rax, rdi
mul r8
mov rcx, r8
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 1]
xor al, byte [rbx + r9 - 2]
movsx eax, al
mov word [r9 - 2], ax
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 2]
xor al, byte [rbx + r9]
movsx eax, al
mov word [r9], ax
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 3]
xor al, byte [rbx + r9 + 2]
movsx eax, al
mov word [r9 + 2], ax
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 4]
xor al, byte [rbx + r9 + 4]
movsx eax, al
mov word [r9 + 4], ax
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 5]
xor al, byte [rbx + r9 + 6]
movsx eax, al
mov word [r9 + 6], ax
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 6]
xor al, byte [rbx + r9 + 8]
movsx eax, al
mov word [r9 + 8], ax
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 7]
xor al, byte [rbx + r9 + 0xa]
movsx eax, al
mov word [r9 + 0xa], ax
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
xor al, byte [rbx + r9 + 0xc]
movsx eax, al
mov word [r9 + 0xc], ax
add r11d, 8
lea r9, [r9 + 0x10]
cmp r11d, 8
jb 0x140001fe0
mov rbx, qword [rsp + 0x30]
mov rax, r10
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x140002150
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov rbx, rcx
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov edx, 8
mov rcx, rax
lea r8d, [rdx + 2]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
xor r11d, r11d
lea rsi, [0x14000f430]
mov r10, rax
sub rbx, rax
movabs rdi, 0x621b97c2aec12653
lea r9, [rax + 2]
nop dword [rax + rax]
movsxd r8, r11d
lea r9, [r9 + 0xa]
mov rax, rdi
mov rcx, r8
mul r8
add r11d, 5
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 1]
xor al, byte [rbx + r9 - 0xc]
movsx eax, al
mov word [r9 - 0xc], ax
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 2]
xor al, byte [r9 + rbx - 0xa]
movsx eax, al
mov word [r9 - 0xa], ax
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 3]
xor al, byte [rbx + r9 - 8]
movsx eax, al
mov word [r9 - 8], ax
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
lea rcx, [r8 + 4]
xor al, byte [rbx + r9 - 6]
movsx eax, al
mov word [r9 - 6], ax
mov rax, rdi
mul rcx
shr rdx, 7
imul rax, rdx, 0x14e
sub rcx, rax
movzx eax, byte [rcx + rsi]
xor al, byte [rbx + r9 - 4]
movsx eax, al
mov word [r9 - 4], ax
cmp r11d, 5
jb 0x1400021a0
mov rbx, qword [rsp + 0x30]
mov rax, r10
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret