joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14000a281
Capabilities:
Hash data using fnv

Disassembly:
jmp 0x1400ec060
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
sub rsp, 0x68
movabs rax, 0xcbf29ce484222325
mov qword [rsp + 0x48], rax
movabs rax, 0x100000001b3
mov qword [rsp + 0x50], rax
movabs rax, 0xcbf29ce484222325
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], 0
jmp 0x1400ec0b2
mov rax, qword [rsp + 0x38]
inc rax
mov qword [rsp + 0x38], rax
cmp qword [rsp + 0x38], 8
jae 0x1400ec0fa
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x70]
add rcx, rax
mov rax, rcx
movzx eax, byte [rax]
mov rcx, qword [rsp + 0x30]
xor rcx, rax
mov rax, rcx
mov qword [rsp + 0x30], rax
movabs rax, 0x100000001b3
mov rcx, qword [rsp + 0x30]
imul rcx, rax
mov rax, rcx
mov qword [rsp + 0x30], rax
jmp 0x1400ec0a5
cmp dword [rsp + 0x78], 0
jg 0x1400ec13b
lea rax, str.the_size___0
mov qword [rsp + 0x28], rax
lea rax, [0x1402441f0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r8d, 0x3d2
lea rdx, [0x140252bb0]
mov ecx, 2
call fcn.140003f6c
cmp eax, 1
jne 0x1400ec13b
int3
xor eax, eax
test eax, eax
jne 0x1400ec0fa
xor eax, eax
test eax, eax
jne 0x1400ec0fa
movsxd rax, dword [rsp + 0x78]
mov qword [rsp + 0x40], rax
xor edx, edx
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x40]
div rcx
mov rax, rdx
add rsp, 0x68
ret
Function at 0x140037d80
Capabilities:
Generate random numbers using a mersenne twister

Disassembly:
jmp 0x140037d80
mov qword [rsp + 8], rcx
push rbp
push rdi
sub rsp, 0x108
lea rbp, [rsp + 0x20]
mov rdi, rsp
mov ecx, 0x42
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0x128]
lea rcx, [0x1402ef0a0]
call fcn.14000236f
mov rax, qword [rbp + 0x100]
cmp dword [rax], 0x270
jne 0x140037dd3
mov rcx, qword [rbp + 0x100]
call fcn.140002a36
jmp 0x140037dee
mov rax, qword [rbp + 0x100]
cmp dword [rax], 0x4e0
jb 0x140037dee
mov rcx, qword [rbp + 0x100]
call fcn.140008c7e
mov rax, qword [rbp + 0x100]
mov eax, dword [rax]
mov rcx, qword [rbp + 0x100]
mov eax, dword [rcx + rax*4 + 4]
mov dword [rbp + 4], eax
mov rax, qword [rbp + 0x100]
mov eax, dword [rax]
inc eax
mov rcx, qword [rbp + 0x100]
mov dword [rcx], eax
mov eax, dword [rbp + 4]
shr eax, 0xb
mov rcx, qword [rbp + 0x100]
and eax, dword [rcx + 0x1384]
mov ecx, dword [rbp + 4]
xor ecx, eax
mov eax, ecx
mov dword [rbp + 4], eax
mov eax, dword [rbp + 4]
shl eax, 7
and eax, 0x9d2c5680
mov ecx, dword [rbp + 4]
xor ecx, eax
mov eax, ecx
mov dword [rbp + 4], eax
mov eax, dword [rbp + 4]
shl eax, 0xf
and eax, 0xefc60000
mov ecx, dword [rbp + 4]
xor ecx, eax
mov eax, ecx
mov dword [rbp + 4], eax
mov eax, dword [rbp + 4]
shr eax, 0x12
mov ecx, dword [rbp + 4]
xor ecx, eax
mov eax, ecx
mov dword [rbp + 4], eax
mov eax, dword [rbp + 4]
lea rsp, [rbp + 0xe8]
pop rdi
pop rbp
ret
Function at 0x14003a310
Capabilities:
Enumerate processes

Disassembly:
jmp 0x14003a310
mov qword [rsp + 8], rcx
push rbp
push rdi
sub rsp, 0x6c8
lea rbp, [rsp + 0x20]
mov rdi, rsp
mov ecx, 0x1b2
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0x6e8]
mov qword [rbp + 0x668], 0xfffffffffffffffe
mov rax, qword [0x1402c80b8]
xor rax, rbp
mov qword [rbp + 0x690], rax
mov dword [rbp + 0x644], 0
lea rcx, [0x1402ef0b0]
call fcn.14000236f
mov edx, 0x20
lea rcx, [rbp + 8]
call fcn.14000305d
lea rcx, [rbp + 8]
call fcn.1400098e5
nop
xor edx, edx
mov ecx, 2
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov qword [rbp + 0x48], rax
cmp qword [rbp + 0x48], 0xffffffffffffffff
jne 0x14003a3f1
lea rdx, str.Failed_to_create_process_snapshot.
lea rcx, [0x1402cd080]
call fcn.140003a67
lea rdx, [0x14000347c]
mov rcx, rax
call fcn.140005afb
lea rdx, [rbp + 8]
mov rcx, qword [rbp + 0x6c0]
call fcn.14000135c
mov eax, dword [rbp + 0x644]
or eax, 1
mov dword [rbp + 0x644], eax
lea rcx, [rbp + 8]
call fcn.1400031d9
mov rax, qword [rbp + 0x6c0]
jmp 0x14003a521
mov dword [rbp + 0x70], 0x238
lea rdx, [rbp + 0x70]
mov rcx, qword [rbp + 0x48]
call sub.KERNEL32.dll_Process32FirstW
test eax, eax
je 0x14003a4e8
lea rdx, [rbp + 0x9c]
lea rcx, [rbp + 0x2c8]
call fcn.140001c8f
nop
lea rax, [rbp + 0x5a8]
mov qword [rbp + 0x5d8], rax
lea rax, [rbp + 0x5f8]
mov qword [rbp + 0x628], rax
lea rcx, [rbp + 0x584]
call fcn.140007b26
mov qword [rbp + 0x678], rax
mov rdx, qword [rbp + 0x5d8]
lea rcx, [rbp + 0x2c8]
call fcn.1400034fe
mov qword [rbp + 0x680], rax
mov rdx, qword [rbp + 0x628]
lea rcx, [rbp + 0x2c8]
call fcn.140007c5c
mov qword [rbp + 0x688], rax
mov rax, qword [rbp + 0x678]
mov r9, rax
mov r8, qword [rbp + 0x680]
mov rdx, qword [rbp + 0x688]
lea rcx, [rbp + 0x308]
call fcn.140009c1e
nop
lea rdx, [rbp + 0x308]
lea rcx, [rbp + 8]
call fcn.1400054fc
nop
lea rcx, [rbp + 0x308]
call fcn.140004ee4
nop
lea rcx, [rbp + 0x2c8]
call fcn.140007dba
lea rdx, [rbp + 0x70]
mov rcx, qword [rbp + 0x48]
call sub.KERNEL32.dll_Process32NextW
test eax, eax
jne 0x14003a40d
mov rcx, qword [rbp + 0x48]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rdx, [rbp + 8]
mov rcx, qword [rbp + 0x6c0]
call fcn.14000135c
mov eax, dword [rbp + 0x644]
or eax, 1
mov dword [rbp + 0x644], eax
lea rcx, [rbp + 8]
call fcn.1400031d9
mov rax, qword [rbp + 0x6c0]
mov rdi, rax
lea rcx, [rbp - 0x20]
lea rdx, [0x14023cc20]
call fcn.1400092b9
mov rax, rdi
mov rcx, qword [rbp + 0x690]
xor rcx, rbp
call fcn.140002fd1
lea rsp, [rbp + 0x6a8]
pop rdi
pop rbp
ret
Function at 0x14003b150
Capabilities:
Allocate or change rwx memory

Disassembly:
jmp 0x14003b150
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rdi
sub rsp, 0x1b8
lea rbp, [rsp + 0x20]
mov rdi, rsp
mov ecx, WSAGetLastError
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0x1d8]
mov rax, qword [0x1402c80b8]
xor rax, rbp
mov qword [rbp + 0x188], rax
lea rcx, [0x1402ef0b0]
call fcn.14000236f
mov rcx, qword [rbp + 0x1b0]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov qword [rbp + 8], rax
cmp qword [rbp + 8], 0
jne 0x14003b1c5
xor eax, eax
jmp 0x14003b2ce
mov rdx, qword [rbp + 0x1b8]
mov rcx, qword [rbp + 8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbp + 0x28], rax
cmp qword [rbp + 0x28], 0
jne 0x14003b1e8
xor eax, eax
jmp 0x14003b2ce
mov byte [rbp + 0x48], 0x48
mov byte [rbp + 0x49], 0xb8
mov byte [rbp + 0x4a], 0
mov byte [rbp + 0x4b], 0
mov byte [rbp + 0x4c], 0
mov byte [rbp + 0x4d], 0
mov byte [rbp + 0x4e], 0
mov byte [rbp + 0x4f], 0
mov byte [rbp + 0x50], 0
mov byte [rbp + 0x51], 0
mov byte [rbp + 0x52], 0xff
mov byte [rbp + 0x53], 0xe0
mov dword [rbp + 0x74], reloc.WS2_32.dll_inet_ntoa
mov rax, qword [rbp + 0x1c8]
mov ecx, dword [rbp + 0x74]
mov dword [rax + 0xc], ecx
mov rax, qword [rbp + 0x1c0]
mov qword [rbp + 0x98], rax
mov eax, 1
imul rax, rax, 2
lea rax, [rbp + rax + 0x48]
mov r8d, 8
lea rdx, [rbp + 0x98]
mov rcx, rax
call fcn.1400081fc
mov dword [rbp + 0xb4], 0
mov eax, dword [rbp + 0x74]
lea r9, [rbp + 0xb4]
mov r8d, 0x40
mov edx, eax
mov rcx, qword [rbp + 0x28]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov eax, dword [rbp + 0x74]
mov rcx, qword [rbp + 0x1c8]
mov r8d, eax
mov rdx, qword [rbp + 0x28]
call fcn.1400081fc
mov eax, dword [rbp + 0x74]
mov r8d, eax
lea rdx, [rbp + 0x48]
mov rcx, qword [rbp + 0x28]
call fcn.1400081fc
mov eax, dword [rbp + 0x74]
lea r9, [rbp + 0xb4]
mov r8d, dword [rbp + 0xb4]
mov edx, eax
mov rcx, qword [rbp + 0x28]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov eax, 1
mov rdi, rax
lea rcx, [rbp - 0x20]
lea rdx, [0x14023b720]
call fcn.1400092b9
mov rax, rdi
mov rcx, qword [rbp + 0x188]
xor rcx, rbp
call fcn.140002fd1
lea rsp, [rbp + 0x198]
pop rdi
pop rbp
ret
Function at 0x14003c3c0
Capabilities:
Allocate or change rwx memory

Disassembly:
jmp 0x14003c3c0
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rdi
sub rsp, 0x168
lea rbp, [rsp + 0x20]
mov rdi, rsp
mov ecx, 0x5a
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0x188]
mov rax, qword [0x1402c80b8]
xor rax, rbp
mov qword [rbp + 0x138], rax
lea rcx, [0x1402ef0b0]
call fcn.14000236f
mov rcx, qword [rbp + 0x160]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov qword [rbp + 8], rax
cmp qword [rbp + 8], 0
jne 0x14003c42d
xor eax, eax
jmp 0x14003c4a9
mov rdx, qword [rbp + 0x168]
mov rcx, qword [rbp + 8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbp + 0x28], rax
cmp qword [rbp + 0x28], 0
jne 0x14003c44d
xor eax, eax
jmp 0x14003c4a9
mov dword [rbp + 0x44], reloc.WS2_32.dll_inet_ntoa
mov dword [rbp + 0x64], 0
mov eax, dword [rbp + 0x44]
lea r9, [rbp + 0x64]
mov r8d, 0x40
mov edx, eax
mov rcx, qword [rbp + 0x28]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov eax, dword [rbp + 0x44]
mov rcx, qword [rbp + 0x170]
mov r8d, eax
mov rdx, rcx
mov rcx, qword [rbp + 0x28]
call fcn.1400081fc
mov eax, dword [rbp + 0x44]
lea r9, [rbp + 0x64]
mov r8d, dword [rbp + 0x64]
mov edx, eax
mov rcx, qword [rbp + 0x28]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov eax, 1
mov rdi, rax
lea rcx, [rbp - 0x20]
lea rdx, [0x14023b7c0]
call fcn.1400092b9
mov rax, rdi
mov rcx, qword [rbp + 0x138]
xor rcx, rbp
call fcn.140002fd1
lea rsp, [rbp + 0x148]
pop rdi
pop rbp
ret
Function at 0x140044df0
Capabilities:
Generate random numbers using a mersenne twister

Disassembly:
jmp 0x140044df0
mov qword [rsp + 8], rcx
push rbp
push rdi
sub rsp, 0x168
lea rbp, [rsp + 0x20]
mov rdi, rsp
mov ecx, 0x5a
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0x188]
lea rcx, [0x1402ef0a0]
call fcn.14000236f
mov dword [rbp + 4], 0
jmp 0x140044e37
mov eax, dword [rbp + 4]
inc eax
mov dword [rbp + 4], eax
cmp dword [rbp + 4], 0xe3
jge 0x140044ed4
mov eax, dword [rbp + 4]
add eax, 0x270
cdqe
mov rcx, qword [rbp + 0x160]
mov eax, dword [rcx + rax*4 + 4]
and eax, 0x80000000
mov ecx, dword [rbp + 4]
add ecx, 0x271
movsxd rcx, ecx
mov rdx, qword [rbp + 0x160]
mov ecx, dword [rdx + rcx*4 + 4]
btr ecx, 0x1f
or eax, ecx
mov dword [rbp + 0x24], eax
mov eax, dword [rbp + 0x24]
and eax, 1
test eax, eax
je 0x140044e94
mov dword [rbp + 0x134], 0x9908b0df
jmp 0x140044e9e
mov dword [rbp + 0x134], 0
mov eax, dword [rbp + 0x24]
shr eax, 1
xor eax, dword [rbp + 0x134]
mov ecx, dword [rbp + 4]
add ecx, 0x3fd
movsxd rcx, ecx
mov rdx, qword [rbp + 0x160]
xor eax, dword [rdx + rcx*4 + 4]
movsxd rcx, dword [rbp + 4]
mov rdx, qword [rbp + 0x160]
mov dword [rdx + rcx*4 + 4], eax
jmp 0x140044e2f
jmp 0x140044ede
mov eax, dword [rbp + 4]
inc eax
mov dword [rbp + 4], eax
cmp dword [rbp + 4], 0x26f
jge 0x140044f7b
mov eax, dword [rbp + 4]
add eax, 0x270
cdqe
mov rcx, qword [rbp + 0x160]
mov eax, dword [rcx + rax*4 + 4]
and eax, 0x80000000
mov ecx, dword [rbp + 4]
add ecx, 0x271
movsxd rcx, ecx
mov rdx, qword [rbp + 0x160]
mov ecx, dword [rdx + rcx*4 + 4]
btr ecx, 0x1f
or eax, ecx
mov dword [rbp + 0x44], eax
mov eax, dword [rbp + 0x44]
and eax, 1
test eax, eax
je 0x140044f3b
mov dword [rbp + 0x134], 0x9908b0df
jmp 0x140044f45
mov dword [rbp + 0x134], 0
mov eax, dword [rbp + 0x44]
shr eax, 1
xor eax, dword [rbp + 0x134]
mov ecx, dword [rbp + 4]
sub ecx, 0xe3
movsxd rcx, ecx
mov rdx, qword [rbp + 0x160]
xor eax, dword [rdx + rcx*4 + 4]
movsxd rcx, dword [rbp + 4]
mov rdx, qword [rbp + 0x160]
mov dword [rdx + rcx*4 + 4], eax
jmp 0x140044ed6
mov eax, dword [rbp + 4]
add eax, 0x270
cdqe
mov rcx, qword [rbp + 0x160]
mov eax, dword [rcx + rax*4 + 4]
and eax, 0x80000000
mov ecx, 4
imul rcx, rcx, 0
mov rdx, qword [rbp + 0x160]
mov ecx, dword [rdx + rcx + 4]
btr ecx, 0x1f
or eax, ecx
mov dword [rbp + 0x64], eax
mov eax, dword [rbp + 0x64]
and eax, 1
test eax, eax
je 0x140044fc8
mov dword [rbp + 0x134], 0x9908b0df
jmp 0x140044fd2
mov dword [rbp + 0x134], 0
mov eax, dword [rbp + 0x64]
shr eax, 1
xor eax, dword [rbp + 0x134]
mov ecx, 4
imul rcx, rcx, 0x18c
mov rdx, qword [rbp + 0x160]
xor eax, dword [rdx + rcx + 4]
movsxd rcx, dword [rbp + 4]
mov rdx, qword [rbp + 0x160]
mov dword [rdx + rcx*4 + 4], eax
mov rax, qword [rbp + 0x160]
mov dword [rax], 0
lea rsp, [rbp + 0x148]
pop rdi
pop rbp
ret
Function at 0x140053080
Capabilities:
Self delete using alternate data streams

Disassembly:
jmp 0x140053080
push rbp
push rdi
sub rsp, 0x4b8
lea rbp, [rsp + 0x40]
mov rdi, rsp
mov ecx, 0x12e
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rax, qword [0x1402c80b8]
xor rax, rbp
mov qword [rbp + 0x468], rax
lea rcx, [0x1402ef0b0]
call fcn.14000236f
mov edx, 0x20a
lea rcx, [rbp + 0x10]
call fcn.140009a02
mov r8d, 0x104
lea rdx, [rbp + 0x10]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor r8d, r8d
mov edx, 0x10000
lea rcx, [rbp + 0x10]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [rbp + 0x238], rax
lea rax, str.:myname
mov qword [rbp + 0x278], rax
mov rcx, qword [rbp + 0x278]
call fcn.140007f86
shl rax, 1
mov dword [rbp + 0x294], eax
mov eax, dword [rbp + 0x294]
add rax, 0x18
mov dword [rbp + 0x2b4], eax
mov eax, dword [rbp + 0x2b4]
mov ecx, eax
call fcn.14000703b
mov qword [rbp + 0x258], rax
mov eax, dword [rbp + 0x2b4]
mov r8d, eax
xor edx, edx
mov rcx, qword [rbp + 0x258]
call fcn.140005a97
mov rax, qword [rbp + 0x258]
mov ecx, dword [rbp + 0x294]
mov dword [rax + 0x10], ecx
mov eax, dword [rbp + 0x294]
mov rcx, qword [rbp + 0x258]
add rcx, 0x14
mov r8d, eax
mov rdx, qword [rbp + 0x278]
call fcn.1400081fc
mov rax, qword [rbp + 0x258]
add rax, 0x14
mov r9, rax
mov rax, qword [rbp + 0x258]
mov r8d, dword [rax + 0x10]
mov edx, dword [rbp + 0x2b4]
lea rcx, str.bsfRename:__d__FileNameLength:__d__FileName:__ls_n
call fcn.140005051
mov r9d, dword [rbp + 0x2b4]
mov r8, qword [rbp + 0x258]
mov edx, 3
mov rcx, qword [rbp + 0x238]
call qword [sym.imp.KERNEL32.dll_SetFileInformationByHandle]
mov rcx, qword [rbp + 0x238]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor r8d, r8d
mov edx, 0x10000
lea rcx, [rbp + 0x10]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [rbp + 0x238], rax
mov edx, 1
lea rcx, [rbp + 0x2d4]
call fcn.140009a02
mov byte [rbp + 0x2d4], 1
mov r9d, 1
lea r8, [rbp + 0x2d4]
mov edx, 4
mov rcx, qword [rbp + 0x238]
call qword [sym.imp.KERNEL32.dll_SetFileInformationByHandle]
mov rcx, qword [rbp + 0x238]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rcx, [rbp - 0x40]
lea rdx, [0x14023d5f0]
call fcn.1400092b9
mov rcx, qword [rbp + 0x468]
xor rcx, rbp
call fcn.140002fd1
lea rsp, [rbp + 0x478]
pop rdi
pop rbp
ret
Function at 0x1400bc0e0
Capabilities:
Create thread

Disassembly:
jmp 0x1400bc0e0
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x38
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0x20], eax
mov r9, qword [rsp + 0x58]
mov r8, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_CreateThread]
add rsp, 0x38
ret

Function at 0x1400bcc20
Capabilities:
Get thread local storage value

Disassembly:
jmp 0x1400bcc20
mov dword [rsp + 8], ecx
sub rsp, 0x28
mov ecx, dword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
add rsp, 0x28
ret

Function at 0x1400e6540
Capabilities:
Set thread local storage value

Disassembly:
jmp 0x1400e6540
mov qword [rsp + 8], rcx
sub rsp, 0x28
mov rdx, qword [rsp + 0x30]
mov ecx, dword [0x1402ce6c0]
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
add rsp, 0x28
ret
Function at 0x180015030
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], rbp
push rsi
push r12
push r14
sub rsp, 0x20
mov eax, r9d
xor r14d, r14d
shr eax, 4
mov r12, r8
mov rsi, rdx
mov rbp, rcx
test r9b, 0xf
je 0x180015069
lea eax, [r14 - 1]
mov rbp, qword [rsp + 0x58]
add rsp, 0x20
pop r14
pop r12
pop rsi
ret
test eax, eax
je 0x180015151
mov qword [rsp + 0x40], rbx
lea rbx, [rcx + 0x1e4]
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x50], r15
mov r15d, eax
nop word [rax + rax]
movzx eax, byte [r14 + rsi]
mov r8, rbx
xor byte [rbx], al
mov rdx, rbx
movzx eax, byte [r14 + rsi + 1]
mov rcx, rbp
xor byte [rbx + 1], al
movzx eax, byte [r14 + rsi + 2]
xor byte [rbx + 2], al
movzx eax, byte [r14 + rsi + 3]
xor byte [rbx + 3], al
movzx eax, byte [r14 + rsi + 4]
xor byte [rbx + 4], al
movzx eax, byte [r14 + rsi + 5]
xor byte [rbx + 5], al
movzx eax, byte [r14 + rsi + 6]
xor byte [rbx + 6], al
movzx eax, byte [r14 + rsi + 7]
xor byte [rbx + 7], al
movzx eax, byte [r14 + rsi + 8]
xor byte [rbx + 8], al
movzx eax, byte [r14 + rsi + 9]
xor byte [rbx + 9], al
movzx eax, byte [r14 + rsi + 0xa]
xor byte [rbx + 0xa], al
movzx eax, byte [r14 + rsi + 0xb]
xor byte [rbx + 0xb], al
movzx eax, byte [r14 + rsi + 0xc]
xor byte [rbx + 0xc], al
movzx eax, byte [r14 + rsi + 0xd]
xor byte [rbx + 0xd], al
movzx eax, byte [r14 + rsi + 0xe]
xor byte [rbx + 0xe], al
movzx eax, byte [r14 + rsi + 0xf]
xor byte [rbx + 0xf], al
call fcn.1800142c0
movups xmm0, xmmword [rbx]
movups xmmword [r14 + r12], xmm0
lea r14d, [r14 + 0x10]
sub r15, 1
jne 0x180015090
mov r15, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x58]
xor eax, eax
add rsp, 0x20
pop r14
pop r12
pop rsi
ret

Function at 0x180015170
Capabilities:
Encode data using xor

Disassembly:
push rdi
push r12
push r14
push r15
sub rsp, 0x58
mov rax, qword [0x18014a010]
xor rax, rsp
mov qword [rsp + 0x30], rax
mov eax, r9d
xor edi, edi
shr eax, 4
mov r12, r8
mov r15, rdx
mov r14, rcx
test r9b, 0xf
je 0x1800151aa
lea eax, [rdi - 1]
jmp 0x180015277
test eax, eax
je 0x180015275
mov qword [rsp + 0x88], rbx
mov qword [rsp + 0x98], rbp
mov qword [rsp + 0x50], rsi
movaps xmmword [rsp + 0x40], xmm6
mov esi, eax
nop
movups xmm6, xmmword [r14 + 0x1e4]
lea rbx, [rdi + r12]
mov rcx, r14
movups xmm0, xmmword [rdi + r15]
mov r8, rbx
lea rdx, [r14 + 0x1e4]
movdqu xmmword [rsp + 0x20], xmm6
movups xmmword [r14 + 0x1e4], xmm0
call fcn.1800148c0
lea rcx, [rsp + 0x2f]
lea rax, [rbx + 0xf]
cmp rbx, rcx
ja 0x180015242
lea rcx, [rsp + 0x20]
cmp rax, rcx
jb 0x180015242
lea rdx, [rsp + 0x20]
mov ecx, select
sub rdx, rbx
nop word [rax + rax]
movzx eax, byte [rdx + rbx]
xor byte [rbx], al
lea rbx, [rbx + 1]
sub rcx, 1
jne 0x180015230
jmp 0x18001524e
movdqu xmm0, xmmword [rbx]
pxor xmm0, xmm6
movdqu xmmword [rbx], xmm0
add edi, 0x10
sub rsi, 1
jne 0x1800151d0
movaps xmm6, xmmword [rsp + 0x40]
mov rsi, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x98]
mov rbx, qword [rsp + 0x88]
xor eax, eax
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.180096010
add rsp, 0x58
pop r15
pop r14
pop r12
pop rdi
ret
Function at 0x180015290
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 8
xor r11d, r11d
mov r10, rcx
test r9d, r9d
je 0x18001539a
mov qword [rsp + 0x10], rbx
cmp r9d, 0x40
jb 0x180015362
lea eax, [r9 - 1]
mov ecx, eax
lea rbx, [rax + r8]
add rax, rdx
cmp r8, rax
ja 0x1800152cd
cmp rbx, rdx
jae 0x180015362
lea rax, [rcx + r10]
cmp r8, rax
ja 0x1800152df
cmp rbx, r10
jae 0x180015362
mov ebx, r9d
mov qword [rsp], rdi
and ebx, 0xffffffc0
mov edi, 0x20
nop
movdqu xmm0, xmmword [r11 + rdx]
lea eax, [rdi - 0x10]
movdqu xmm1, xmmword [r11 + r10]
pxor xmm1, xmm0
movdqu xmm0, xmmword [rax + rdx]
movdqu xmmword [r11 + r8], xmm1
add r11d, 0x40
movdqu xmm1, xmmword [rax + r10]
pxor xmm1, xmm0
movdqu xmmword [rax + r8], xmm1
mov eax, edi
movdqu xmm0, xmmword [rax + rdx]
movdqu xmm1, xmmword [rax + r10]
pxor xmm1, xmm0
movdqu xmmword [rax + r8], xmm1
lea eax, [rdi + 0x10]
add edi, 0x40
movdqu xmm1, xmmword [rax + r10]
movdqu xmm0, xmmword [rax + rdx]
pxor xmm1, xmm0
movdqu xmmword [rax + r8], xmm1
cmp r11d, ebx
jb 0x1800152f0
mov rdi, qword [rsp]
cmp r11d, r9d
jae 0x180015395
sub r10, rdx
mov eax, r11d
add rax, rdx
sub r8, rdx
sub r9d, r11d
mov edx, r9d
nop dword [rax]
nop dword [rax + rax]
movzx ecx, byte [r10 + rax]
xor cl, byte [rax]
mov byte [r8 + rax], cl
lea rax, [rax + 1]
sub rdx, 1
jne 0x180015380
mov rbx, qword [rsp + 0x10]
add rsp, 8
ret
Function at 0x180016370
Capabilities:
Hash data with md5

Disassembly:
push rbp
push rbx
push rdi
lea rbp, [rsp - 0x47]
sub rsp, 0xd0
mov rax, qword [0x18014a010]
xor rax, rsp
mov qword [rbp + 0x37], rax
mov eax, edx
mov dword [rbp - 0x61], 0x67452301
and eax, 0x1fffffff
mov dword [rbp - 0x5d], 0xefcdab89
mov dword [rbp - 0x69], eax
mov rdi, r8
mov eax, edx
mov dword [rbp - 0x59], 0x98badcfe
shr eax, 0x1d
mov ebx, edx
mov dword [rbp - 0x55], 0x10325476
mov dword [rbp - 0x65], eax
cmp edx, 0x40
jb 0x1800163e3
mov r8d, edx
mov eax, 0xffffffc0
mov rdx, rcx
and r8, rax
lea rcx, [rbp - 0x69]
call fcn.1800158a0
mov rcx, rax
and ebx, 0x3f
mov rdx, rcx
mov r8d, ebx
lea rcx, [rbp - 0x51]
call fcn.1800c1d10
mov ecx, dword [rbp - 0x69]
mov eax, 0x40
and ecx, 0x3f
mov byte [rbp + rcx - 0x51], pe_nt_image_headers64
inc ecx
sub eax, ecx
cmp eax, 8
jae 0x180016438
mov r8d, eax
xor edx, edx
mov eax, ecx
lea rcx, [rbp - 0x51]
add rcx, rax
call fcn.1800c1ae0
mov r8d, 0x40
lea rdx, [rbp - 0x51]
lea rcx, [rbp - 0x69]
call fcn.1800158a0
xor ecx, ecx
mov eax, 0x40
add eax, 0xfffffff8
xor edx, edx
mov r8d, eax
mov eax, ecx
lea rcx, [rbp - 0x51]
add rcx, rax
call fcn.1800c1ae0
mov eax, dword [rbp - 0x69]
lea rdx, [rbp - 0x51]
mov r8d, 0x40
lea ecx, [rax*8]
movzx eax, cl
mov dword [rbp - 0x69], ecx
mov eax, ecx
mov byte [rbp - 0x19], cl
shr eax, 8
mov byte [rbp - 0x18], al
mov eax, ecx
shr eax, 0x10
mov byte [rbp - 0x17], al
movzx eax, byte [rbp - 0x65]
shr ecx, 0x18
mov byte [rbp - 0x15], al
mov byte [rbp - 0x16], cl
mov ecx, dword [rbp - 0x65]
mov eax, ecx
shr eax, 8
mov byte [rbp - 0x14], al
mov eax, ecx
shr ecx, 0x18
mov byte [rbp - 0x12], cl
lea rcx, [rbp - 0x69]
shr eax, 0x10
mov byte [rbp - 0x13], al
call fcn.1800158a0
mov ecx, dword [rbp - 0x61]
movzx eax, byte [rbp - 0x61]
mov byte [rdi], al
mov eax, ecx
shr eax, 8
mov byte [rdi + 1], al
mov eax, ecx
shr eax, 0x10
mov byte [rdi + 2], al
movzx eax, byte [rbp - 0x5d]
mov byte [rdi + 4], al
shr ecx, 0x18
mov byte [rdi + 3], cl
mov ecx, dword [rbp - 0x5d]
mov eax, ecx
shr eax, 8
mov byte [rdi + 5], al
mov eax, ecx
shr eax, 0x10
mov byte [rdi + 6], al
movzx eax, byte [rbp - 0x59]
mov byte [rdi + 8], al
shr ecx, 0x18
mov byte [rdi + 7], cl
mov ecx, dword [rbp - 0x59]
mov eax, ecx
shr eax, 8
mov byte [rdi + 9], al
mov eax, ecx
shr eax, 0x10
mov byte [rdi + 0xa], al
movzx eax, byte [rbp - 0x55]
mov byte [rdi + 0xc], al
shr ecx, 0x18
mov byte [rdi + 0xb], cl
mov ecx, dword [rbp - 0x55]
mov eax, ecx
shr eax, 8
mov byte [rdi + 0xd], al
mov eax, ecx
shr eax, 0x10
shr ecx, 0x18
mov byte [rdi + 0xf], cl
mov byte [rdi + 0xe], al
mov rcx, qword [rbp + 0x37]
xor rcx, rsp
call fcn.180096010
add rsp, 0xd0
pop rdi
pop rbx
pop rbp
ret
Function at 0x180017840
Capabilities:
Enumerate pe sections

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push r14
sub rsp, 0x20
mov eax, dword [rcx + 0x14]
mov rsi, rcx
mov ecx, eax
mov r14, rdx
shr ecx, 3
mov ebp, r8d
and ecx, 0x3f
mov edx, dword [rsi + 0x18]
lea r9d, [rax + r8*8]
lea eax, [r8*8]
mov dword [rsi + 0x14], r9d
cmp r9d, eax
jae 0x180017883
inc edx
mov eax, ebp
shr eax, 0x1d
add eax, edx
mov dword [rsi + 0x18], eax
lea eax, [rcx + r8]
cmp eax, 0x3f
jbe 0x1800178f0
mov eax, ecx
mov ebx, 0x40
sub ebx, ecx
mov qword [rsp + 0x30], rdi
lea rcx, [rsi + 0x1c]
mov r8d, ebx
add rcx, rax
mov rdx, r14
call fcn.1800c1d10
lea rdx, [rsi + 0x1c]
mov rcx, rsi
call fcn.180016540
lea edi, [rbx + 0x3f]
cmp edi, ebp
jae 0x1800178e7
nop dword [rax]
mov edx, ebx
mov rcx, rsi
add rdx, r14
call fcn.180016540
add ebx, 0x40
add edi, 0x40
cmp edi, ebp
jb 0x1800178d0
mov rdi, qword [rsp + 0x30]
xor ecx, ecx
jmp 0x1800178f2
xor ebx, ebx
mov eax, ecx
sub ebp, ebx
lea rcx, [rsi + 0x1c]
mov edx, ebx
add rcx, rax
mov r8d, ebp
add rdx, r14
mov rbx, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
jmp fcn.1800c1d10