joyce8/EMBER2024-capa huggingface dataset:
Function at 0x160020380
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rdi
lea r10, [rcx + 0x9c8]
mov r9, rcx
mov rax, qword [r10]
mov r11d, 0x9c
mov ebx, 0x7fffffff
movabs rdi, 0xb5026f5aa96619e9
lea r8, [r10 + 8]
mov rdx, qword [r8]
xor rdx, rax
and rdx, rbx
xor rdx, rax
mov al, dl
and al, 1
neg al
mov rax, qword [r8]
sbb rcx, rcx
shr rdx, 1
and rcx, rdi
xor rcx, qword [r10 + 0x4e0]
xor rcx, rdx
mov qword [r10 - 0x9c0], rcx
lea r10, [r8]
sub r11, 1
jne 0x1600203ac
lea r10, [r9 + 0xea8]
mov r11d, 0x9b
mov rax, qword [r10]
lea r8, [r10 + 8]
mov rdx, qword [r8]
xor rdx, rax
and rdx, rbx
xor rdx, rax
mov al, dl
and al, 1
neg al
mov rax, qword [r8]
sbb rcx, rcx
shr rdx, 1
and rcx, rdi
xor rcx, qword [r10 - 0xea0]
xor rcx, rdx
mov qword [r10 - 0x9c0], rcx
lea r10, [r8]
sub r11, 1
jne 0x1600203f8
mov edx, dword [r9 + 0x1380]
xor edx, dword [r9 + 8]
and rdx, rbx
mov rbx, qword [rsp + 8]
xor rdx, qword [r9 + 0x1380]
mov al, dl
and al, 1
neg al
sbb rcx, rcx
and dword [r9], 0
and rcx, rdi
shr rdx, 1
xor rcx, qword [r9 + 0x4e0]
mov rdi, qword [rsp + 0x10]
xor rcx, rdx
mov qword [r9 + 0x9c0], rcx
ret

Function at 0x160020478
Capabilities:
Check if file exists

Disassembly:
push rbx
sub rsp, 0x80
mov rax, qword [0x1600ef078]
xor rax, rsp
mov qword [rsp + 0x70], rax
mov eax, dword [0x1600dbed0]
mov rbx, rcx
movups xmm0, xmmword [str._pipediscord_ipc_0]
mov dword [rsp + 0x68], eax
movzx eax, word [0x1600dbed4]
movups xmm1, xmmword [0x1600dbeb8]
mov word [rsp + 0x6c], ax
mov eax, 0x30
movups xmmword [rsp + 0x40], xmm0
movsd xmm0, qword [0x1600dbec8]
movsd qword [rsp + 0x60], xmm0
movups xmmword [rsp + 0x50], xmm1
jmp 0x1600204ef
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
jne 0x1600204f6
movzx eax, word [rsp + 0x6a]
cmp ax, 0x39
jae 0x16002055f
inc ax
mov word [rsp + 0x6a], ax
jmp 0x160020511
cmp eax, 0xe7
jne 0x16002055f
mov edx, 0x2710
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_WaitNamedPipeW]
test eax, eax
je 0x16002055f
and qword [rsp + 0x30], 0
lea rcx, [rsp + 0x40]
and dword [rsp + 0x28], 0
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x20], 3
mov edx, 0xc0000000
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [rbx + 8], rax
cmp rax, 0xffffffffffffffff
je 0x1600204d6
mov byte [rbx], 1
mov al, 1
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.160056220
add rsp, 0x80
pop rbx
ret
xor al, al
jmp 0x160020549

Function at 0x160020564
Capabilities:
Write file on windows

Disassembly:
push rbx
sub rsp, 0x30
mov rbx, r8
test r8, r8
jne 0x160020578
lea eax, [r8 + 1]
jmp 0x1600205b9
test rcx, rcx
je 0x1600205b7
mov rcx, qword [rcx + 8]
cmp rcx, 0xffffffffffffffff
je 0x1600205b7
test rdx, rdx
je 0x1600205b7
and dword [rsp + 0x50], 0
lea r9, [rsp + 0x50]
and qword [rsp + 0x20], 0
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov ecx, 1
cmp eax, ecx
jne 0x1600205b1
cmp dword [rsp + 0x50], ebx
je 0x1600205b3
xor cl, cl
mov al, cl
jmp 0x1600205b9
xor al, al
add rsp, 0x30
pop rbx
ret
Function at 0x1600205c0
Capabilities:
Read file on windows
Read pipe

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rsi
push rdi
sub rsp, 0x30
mov rdi, r8
mov rsi, rdx
mov rbx, rcx
test rdx, rdx
je 0x160020653
test rcx, rcx
je 0x160020653
mov rcx, qword [rcx + 8]
cmp rcx, 0xffffffffffffffff
je 0x160020653
and qword [rax - 0x10], 0
xor r9d, r9d
and dword [rax + 0x10], 0
lea rax, [rax + 0x10]
xor r8d, r8d
mov qword [rsp + 0x20], rax
xor edx, edx
call qword [sym.imp.KERNEL32.dll_PeekNamedPipe]
test eax, eax
je 0x160020641
mov eax, dword [rsp + 0x48]
cmp rax, rdi
jb 0x160020653
mov rcx, qword [rbx + 8]
lea r9, [rsp + 0x58]
and dword [rsp + 0x58], 0
mov r8d, edi
and qword [rsp + 0x20], 0
mov rdx, rsi
call qword [sym.imp.KERNEL32.dll_ReadFile]
cmp eax, 1
jne 0x160020641
jmp 0x160020655
mov rcx, qword [rbx + 8]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
or qword [rbx + 8], 0xffffffffffffffff
mov byte [rbx], 0
xor al, al
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret

Function at 0x1600240d8
Capabilities:
Set registry value

Disassembly:
mov r11, rsp
mov qword [r11 + 0x10], rbx
mov qword [r11 + 0x18], rsi
push rdi
sub rsp, 0x50
xor esi, esi
mov rdi, r8
mov qword [r11 + 8], rsi
mov rbx, rcx
test rdx, rdx
je 0x16002412f
cmp word [rdx], si
je 0x16002412f
mov qword [r11 - 0x18], rsi
lea rax, [r11 + 8]
mov qword [r11 - 0x20], rax
xor r9d, r9d
mov qword [r11 - 0x28], rsi
xor r8d, r8d
mov dword [rsp + 0x28], 0xf003f
mov dword [rsp + 0x20], esi
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x160024172
mov rcx, qword [rsp + 0x60]
mov eax, dword [rsp + 0x88]
mov r9d, 1
mov dword [rsp + 0x28], eax
xor r8d, r8d
mov rax, qword [rsp + 0x80]
mov rdx, rdi
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rsp + 0x60]
mov edi, eax
test rcx, rcx
je 0x160024170
cmp rcx, rbx
je 0x160024170
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, edi
mov rbx, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
add rsp, 0x50
pop rdi
ret

Function at 0x1600248e8
Capabilities:
Allocate or change rwx memory

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
push rdi
sub rsp, 0x20
and dword [rax + 0x20], 0
lea r9, [rax + 0x20]
mov rsi, r8
mov rbx, rdx
mov rdx, rsi
mov r8d, 0x40
mov rdi, rcx
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov r8, rsi
mov rdx, rbx
mov rcx, rdi
call fcn.1600588f0
mov r8d, dword [rsp + 0x48]
lea r9, [rsp + 0x48]
mov rdx, rsi
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov r8, rsi
mov rdx, rdi
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FlushInstructionCache]
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x160025150
Capabilities:
Enumerate threads

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0x90
mov rax, qword [0x1600ef078]
xor rax, rsp
mov qword [rbp + 0x37], rax
mov r15, rcx
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov edx, eax
mov ecx, 4
call qword [sym.imp.KERNEL32.dll_CreateToolhelp32Snapshot]
mov rdi, rax
cmp rax, 0xffffffffffffffff
jne 0x1600251af
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x11], xmm0
xor ebx, ebx
mov qword [rbp - 1], rbx
jmp 0x160025280
mov qword [rbp + 7], rdi
mov byte [rbp + 0xf], 1
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x1b], xmm0
and qword [rbp + 0x2b], 0
mov r14d, 0x1c
mov dword [rbp + 0x17], r14d
lea rdx, [rbp + 0x17]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_Thread32First]
xorps xmm0, xmm0
test eax, eax
jne 0x1600251fb
movdqu xmmword [rbp - 0x11], xmm0
xor ebx, ebx
mov qword [rbp - 1], rbx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x160025280
movdqu xmmword [rbp - 0x29], xmm0
xor esi, esi
mov qword [rbp - 0x19], rsi
mov rbx, qword [rbp - 0x21]
cmp dword [rbp + 0x17], 0x10
setb al
mov dword [rbp + 0x17], r14d
test al, al
je 0x160025250
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
cmp dword [rbp + 0x23], eax
jne 0x160025250
cmp rbx, rsi
je 0x160025238
mov eax, dword [rbp + 0x1f]
mov dword [rbx], eax
add rbx, 4
mov qword [rbp - 0x21], rbx
jmp 0x160025250
lea r8, [rbp + 0x1f]
mov rdx, rbx
lea rcx, [rbp - 0x29]
call fcn.160025364
mov rsi, qword [rbp - 0x19]
mov rbx, qword [rbp - 0x21]
lea rdx, [rbp + 0x17]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_Thread32Next]
test eax, eax
jne 0x16002520a
movups xmm0, xmmword [rbp - 0x29]
movups xmmword [rbp - 0x11], xmm0
movsd xmm1, qword [rbp - 0x19]
movsd qword [rbp - 1], xmm1
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rbx, qword [rbp - 1]
mov rdi, qword [rbp - 0x11]
mov rsi, rdi
cmp rdi, qword [rbp - 9]
je 0x1600252df
mov r8d, dword [rsi]
xor edx, edx
mov ecx, 0x1fffff
call qword [sym.imp.KERNEL32.dll_OpenThread]
mov r14, rax
test rax, rax
je 0x1600252d5
mov qword [rbp - 0x29], rax
mov byte [rbp - 0x21], 1
mov qword [rbp + 7], rax
mov rcx, qword [r15 + 0x38]
test rcx, rcx
je 0x160025346
mov rdx, qword [rcx]
mov rax, qword [rdx + 0x10]
lea rdx, [rbp + 7]
call rax
nop
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
add rsi, 4
cmp rsi, qword [rbp - 9]
jmp 0x16002528b
test rdi, rdi
je 0x160025317
sub rbx, rdi
and rbx, 0xfffffffffffffffc
mov rax, rdi
cmp rbx, 0x1000
jb 0x16002530c
add rbx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x160025340
mov rdx, rbx
mov rcx, rdi
call fcn.160056240
mov rcx, qword [rbp + 0x37]
xor rcx, rsp
call fcn.160056220
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
call fcn.16005d234
nop
call fcn.1600544b8
nop
sub rsp, 0x28
cmp byte [rcx + 8], 0
je 0x16002535f
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
add rsp, 0x28
ret
Function at 0x1600254e4
Capabilities:
Suspend thread

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov rdi, qword [rdx]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetThreadId]
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp ebx, eax
je 0x16002550f
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_SuspendThread]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret

Function at 0x160026e2c
Capabilities:
Delete file

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0xe0
mov rax, qword [0x1600ef078]
xor rax, rsp
mov qword [rbp + 0x2f], rax
mov r14, r8
mov rbx, rdx
mov r12, rcx
xorps xmm0, xmm0
movups xmmword [rbp + 0xf], xmm0
movdqa xmm1, xmmword [0x1600e2670]
movdqu xmmword [rbp + 0x1f], xmm1
xor esi, esi
mov byte [rbp + 0xf], sil
lea rdx, [rbp + 0xf]
mov rcx, rbx
call fcn.160027b50
nop
mov rdx, qword [rbp + 0x27]
cmp rdx, 0x10
jb 0x160026ec3
inc rdx
mov rcx, qword [rbp + 0xf]
mov rax, rcx
cmp rdx, 0x1000
jb 0x160026ebe
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x160026fe6
call fcn.160056240
mov rcx, rbx
cmp qword [rbx + 0x18], 0x10
jb 0x160026ed0
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_DeleteFileA]
cmp qword [rbx + 0x18], 0x10
jb 0x160026ee0
mov rbx, qword [rbx]
mov rcx, rbx
call fcn.1600470b8
mov qword [rbp - 9], rax
test rax, rax
je 0x160026fbe
lea rcx, [rbp - 9]
mov qword [rbp + 0xf], rcx
mov qword [rbp + 0x17], r14
mov r15b, 1
mov byte [rbp + 0x1f], r15b
mov r12, qword [r12 + 8]
mov rbx, qword [r12]
cmp rbx, r12
je 0x160026f9c
lea rdx, [rbx + 0x10]
lea rdi, [rdx + 0x20]
mov ecx, esi
mov r8d, 0xffffffff
cmp qword [rdi + 0x10], r8
seta cl
cmp qword [rdx + 0x18], 0x10
jb 0x160026f3b
mov rdx, qword [rdx]
mov dword [rsp + 0x90], ecx
mov rcx, rax
call fcn.16004743c
test eax, eax
jne 0x160026f95
lea rax, [rbp - 9]
mov qword [rbp - 1], rax
mov byte [rbp + 7], r15b
mov r8d, dword [rdi + 0x10]
cmp qword [rdi + 0x18], 0x10
jb 0x160026f68
mov rdi, qword [rdi]
mov rdx, rdi
mov rcx, qword [rbp - 9]
call fcn.16004788c
mov edi, eax
mov rcx, qword [rbp - 9]
call fcn.1600479e8
nop
test edi, edi
jne 0x160026f95
mov rax, qword [rbx]
mov rbx, rax
cmp rax, r12
mov rax, qword [rbp - 9]
jne 0x160026f1a
jmp 0x160026f9c
mov r15b, sil
mov rax, qword [rbp - 9]
cmp qword [r14 + 0x10], rsi
je 0x160026faf
mov rsi, r14
cmp qword [r14 + 0x18], 0x10
jb 0x160026faf
mov rsi, qword [r14]
mov rdx, rsi
mov rcx, rax
call fcn.160048108
nop
mov al, r15b
mov rcx, qword [rbp + 0x2f]
xor rcx, rsp
call fcn.160056220
lea r11, [rsp + 0xe0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
call fcn.16005d234
int3
Function at 0x16002755c
Capabilities:
Create process memory minidump
Get common file path
Terminate process

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rdi
push rbp
lea rbp, [rsp - 0x1b0]
sub rsp, 0x2b0
mov rax, qword [0x1600ef078]
xor rax, rsp
mov qword [rbp + 0x1a0], rax
mov rbx, rcx
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
and dword [rsp + 0x54], 0
lea rcx, [rbp - 0x80]
mov qword [rsp + 0x4c], rbx
xor edx, edx
mov ebx, 0x104
mov dword [rsp + 0x48], eax
mov r8d, ebx
call fcn.160058fa0
mov r8d, ebx
lea rcx, [rbp + 0x90]
xor edx, edx
call fcn.160058fa0
lea rdx, [rbp + 0x90]
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_GetTempPathA]
lea r9, [rbp - 0x80]
xor r8d, r8d
lea rdx, str.H2_Mod_
lea rcx, [rbp + 0x90]
call qword [sym.imp.KERNEL32.dll_GetTempFileNameA]
xorps xmm0, xmm0
lea rax, [rbp - 0x80]
xorps xmm1, xmm1
or r8, 0xffffffffffffffff
movups xmmword [rsp + 0x58], xmm0
movdqu xmmword [rsp + 0x68], xmm1
inc r8
cmp byte [rax + r8], 0
jne 0x160027605
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x58]
call fcn.160002ee8
cmp qword [rsp + 0x70], 0x10
lea rcx, [rsp + 0x58]
mov edx, 0xc0000000
cmovae rcx, qword [rsp + 0x58]
xor r9d, r9d
and qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x4000100
mov dword [rsp + 0x20], 4
lea r8d, [r9 + 3]
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rdx, qword [rsp + 0x70]
mov rdi, rax
cmp rdx, 0x10
jb 0x160027696
mov rcx, qword [rsp + 0x58]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x160027691
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x16002773a
call fcn.160056240
movdqa xmm0, xmmword [0x1600e2670]
movdqu xmmword [rsp + 0x68], xmm0
mov byte [rsp + 0x58], 0
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
and qword [rsp + 0x30], 0
lea rcx, [rsp + 0x48]
and qword [rsp + 0x28], 0
mov r9d, 0x21934
mov qword [rsp + 0x20], rcx
mov r8, rdi
mov rcx, rax
mov edx, ebx
call qword [sym.imp.dbghelp.dll_MiniDumpWriteDump]
test eax, eax
jne 0x160027713
lea r9d, [rax + 0x10]
xor ecx, ecx
lea r8, str.Minidump_Error
lea rdx, str.There_was_an_error_creating_the_minidump__Hit_OK_to_close_the_program.
call qword [sym.imp.USER32.dll_MessageBoxA]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rcx, rax
mov edx, 0x7b
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
mov rax, rdi
mov rcx, qword [rbp + 0x1a0]
xor rcx, rsp
call fcn.160056220
lea r11, [rsp + 0x2b0]
mov rbx, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov rsp, r11
pop rbp
ret
call fcn.16005d234
int3
Function at 0x160027740
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rdi
push rbp
lea rbp, [rsp - 0x1f70]
mov eax, 0x2070
call fcn.160057490
sub rsp, rax
mov rax, qword [0x1600ef078]
xor rax, rsp
mov qword [rbp + 0x1f60], rax
mov rdi, rdx
mov rbx, rcx
mov qword [rsp + 0x30], rcx
mov rcx, rdx
call qword [sym.imp.KERNEL32.dll_FlushFileBuffers]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
movdqa xmm1, xmmword [0x1600e2670]
movdqu xmmword [rsp + 0x50], xmm1
mov byte [rsp + 0x40], 0
and dword [rsp + 0x30], 0
and qword [rsp + 0x20], 0
lea r9, [rsp + 0x30]
mov r8d, 0x2000
lea rdx, [rsp + 0x60]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x16002780a
mov r8d, dword [rsp + 0x30]
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x40]
call fcn.160004850
cmp dword [rsp + 0x30], 0x2000
je 0x1600277b6
movups xmm0, xmmword [rsp + 0x40]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [rsp + 0x50]
movups xmmword [rbx + 0x10], xmm1
jmp 0x16002785e
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
and qword [rbx + 0x10], 0
and qword [rbx + 0x10], 0
mov qword [rbx + 0x18], 0xf
mov byte [rbx], 0
mov rdx, qword [rsp + 0x58]
cmp rdx, 0x10
jb 0x16002785e
inc rdx
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x160027859
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x160027885
call fcn.160056240
mov rax, rbx
mov rcx, qword [rbp + 0x1f60]
xor rcx, rsp
call fcn.160056220
lea r11, [rsp + 0x2070]
mov rbx, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret
call fcn.16005d234
int3
Function at 0x1600284fc
Capabilities:
Read file on windows

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r14
sub rsp, 0x20
mov rbp, r8
mov r14, rdx
mov rdi, rcx
test r8, r8
jg 0x16002852a
xor eax, eax
jmp 0x160028610
cmp qword [rcx + 0x68], 0
je 0x16002853b
call fcn.1600260f0
jmp 0x160028610
mov rax, qword [rcx + 0x38]
mov rsi, rbp
mov rdx, qword [rax]
test rdx, rdx
je 0x160028552
mov rax, qword [rcx + 0x50]
mov ecx, dword [rax]
jmp 0x160028554
xor ecx, ecx
movsxd rax, ecx
test ecx, ecx
je 0x160028586
cmp rax, rbp
mov rbx, rbp
mov rcx, r14
cmovb rbx, rax
mov r8, rbx
call fcn.1600588f0
mov rax, qword [rdi + 0x50]
add r14, rbx
sub rsi, rbx
sub dword [rax], ebx
mov rcx, qword [rdi + 0x38]
movsxd rax, ebx
add qword [rcx], rax
cmp qword [rdi + 0x80], 0
je 0x16002860a
mov r8, qword [rdi + 0x18]
lea rax, [rdi + 0x70]
cmp qword [r8], rax
jne 0x1600285bd
mov rcx, qword [rdi + 0x88]
mov rdx, qword [rdi + 0x90]
mov qword [r8], rcx
sub edx, ecx
mov rax, qword [rdi + 0x38]
mov qword [rax], rcx
mov rax, qword [rdi + 0x50]
mov dword [rax], edx
mov ebx, 0xfff
jmp 0x1600285e6
mov r9, qword [rdi + 0x80]
mov r8, rbx
mov edx, 1
mov rcx, r14
call fcn.16006900c
add r14, rax
sub rsi, rax
cmp rax, rbx
jne 0x16002860a
cmp rsi, rbx
ja 0x1600285c4
test rsi, rsi
je 0x16002860a
mov r9, qword [rdi + 0x80]
mov r8, rsi
mov edx, 1
mov rcx, r14
call fcn.16006900c
sub rsi, rax
sub rbp, rsi
mov rax, rbp
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret

Function at 0x160029ec8
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rdi
xor edi, edi
mov rbx, r8
mov r11, rdx
mov r10, rcx
cmp dword [rcx], edi
jbe 0x160029f3b
mov r9d, dword [r10 + rdi*4 + 4]
inc edi
xor dword [r11], r9d
mov r8d, dword [r11]
mov eax, r8d
shr rax, 0x10
movzx ecx, al
mov eax, r8d
shr rax, 0x18
mov edx, dword [r10 + rcx*4 + 0x44c]
add edx, dword [r10 + rax*4 + 0x4c]
mov eax, r8d
shr rax, 8
movzx ecx, al
movzx eax, r8b
xor edx, dword [r10 + rcx*4 + 0x84c]
add edx, dword [r10 + rax*4 + 0xc4c]
xor dword [rbx], edx
mov eax, dword [rbx]
mov ecx, dword [r11]
mov dword [r11], eax
mov dword [rbx], ecx
cmp edi, dword [r10]
jb 0x160029ee1
mov eax, dword [rbx]
mov ecx, dword [r11]
mov rdi, qword [rsp + 0x10]
mov dword [r11], eax
mov dword [rbx], ecx
mov eax, dword [r10]
xor ecx, dword [r10 + rax*4 + 4]
mov dword [rbx], ecx
mov eax, dword [r10]
mov rbx, qword [rsp + 8]
inc eax
mov ecx, dword [r10 + rax*4 + 4]
xor dword [r11], ecx
ret
Function at 0x160029f68
Capabilities:
Encrypt data using blowfish

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x20
lea rdi, [rcx + 0x4c]
mov r15, r8
mov r12, rdx
mov rsi, rcx
mov rcx, rdi
lea rdx, [0x1600b5cd0]
mov r8d, 0x1000
call fcn.1600588f0
xor edx, edx
lea rcx, [rsi + 4]
lea r8d, [rdx + 0x48]
call fcn.160058fa0
mov ecx, dword [rsi]
xor ebx, ebx
mov r11d, ebx
mov r10d, ebx
lea eax, [rcx + 2]
lea ebp, [rbx + 4]
test eax, eax
je 0x16002a01b
mov r9d, ebx
mov r8d, ebx
mov r14, rbp
movzx eax, byte [r9 + r12]
lea edx, [r11 + 1]
shl r8d, 8
or r8d, eax
movsxd rcx, edx
cmp rcx, r15
lea rax, [r9 + 1]
sbb r9, r9
and r9, rax
cmp rcx, r15
sbb r11d, r11d
and r11d, edx
sub r14, 1
jne 0x160029fcc
mov eax, r10d
lea rcx, [0x1600b6cd0]
inc r10d
xor r8d, dword [rcx + rax*4]
mov dword [rsi + rax*4 + 4], r8d
mov ecx, dword [rsi]
lea eax, [rcx + 2]
cmp r10d, eax
jb 0x160029fc6
lea eax, [rcx + 2]
mov dword [rsp + 0x50], ebx
mov dword [rsp + 0x68], ebx
test eax, eax
je 0x16002a05d
lea r8, [rsp + 0x68]
mov rcx, rsi
lea rdx, [rsp + 0x50]
call fcn.160029ec8
mov eax, dword [rsp + 0x50]
mov ecx, ebx
mov dword [rsi + rcx*4 + 4], eax
lea ecx, [rbx + 1]
mov eax, dword [rsp + 0x68]
add ebx, 2
mov dword [rsi + rcx*4 + 4], eax
mov eax, dword [rsi]
add eax, 2
cmp ebx, eax
jb 0x16002a02a
mov ebx, 0x80
lea r8, [rsp + 0x68]
mov rcx, rsi
lea rdx, [rsp + 0x50]
call fcn.160029ec8
mov eax, dword [rsp + 0x50]
mov dword [rdi], eax
mov eax, dword [rsp + 0x68]
mov dword [rdi + 4], eax
add rdi, 8
sub rbx, 1
jne 0x16002a062
sub rbp, 1
jne 0x16002a05d
mov rbx, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x60]
add rsp, 0x20
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret
Function at 0x160033aa4
Capabilities:
Allocate or change rwx memory

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
movzx eax, word [r8 + 0x1c]
lea r12, [r9 - 1]
mov r15, rcx
add r12, rax
mov cl, byte [r8 + 0x1e]
mov rbp, r9
shr r12, cl
mov ecx, 0x68
lea r13d, [r12 + 0x3f]
shr r13d, 6
call fcn.160067b54
xorps xmm0, xmm0
mov rbx, rax
mov edi, 1
movups xmmword [rsp + 0x20], xmm0
test rax, rax
je 0x160033c32
mov ecx, r13d
shl rcx, 4
call fcn.160067b54
and dword [rsp + 0x88], 0
mov r14, rax
test rax, rax
je 0x160033c2a
test byte [r15], dil
je 0x160033b4d
mov rdx, rbp
lea rcx, [rsp + 0x20]
call fcn.16003597c
mov rdx, qword [rsp + 0x28]
mov esi, eax
mov dword [rsp + 0x88], 4
jmp 0x160033b88
test rbp, rbp
jne 0x160033b57
lea esi, [rbp + 2]
jmp 0x160033b7e
mov r9d, 0x40
mov r8d, 0x3000
mov rdx, rbp
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
test rax, rax
jne 0x160033b77
mov esi, edi
jmp 0x160033b7e
mov qword [rsp + 0x20], rax
xor esi, esi
mov rdx, qword [rsp + 0x20]
mov qword [rsp + 0x28], rdx
test esi, esi
jne 0x160033c20
mov eax, dword [r15]
shr eax, 2
test dil, al
je 0x160033bb0
mov rcx, rbp
shr rcx, 2
test rcx, rcx
je 0x160033bb0
mov eax, dword [r15 + 0xc]
mov rdi, rdx
rep stosd dword [rdi], eax
mov r8d, r13d
xor edx, edx
shl r8, 4
mov rcx, r14
call fcn.160058fa0
mov rax, qword [rsp + 0x80]
xor ecx, ecx
movups xmm0, xmmword [rsp + 0x20]
mov qword [rbx + 0x10], rcx
mov qword [rbx + 0x18], rcx
mov qword [rbx + 0x20], rax
mov eax, dword [rsp + 0x88]
mov dword [rbx + 0x40], eax
lea rax, [r14 + r13*8]
mov qword [rbx + 0x60], rax
mov rax, qword [rsp + 0x78]
mov qword [rbx], rcx
mov qword [rbx + 8], rcx
movdqu xmmword [rbx + 0x28], xmm0
mov qword [rax], rbx
xor eax, eax
mov qword [rbx + 0x38], rbp
mov dword [rbx + 0x44], r12d
mov dword [rbx + 0x48], ecx
mov dword [rbx + 0x4c], r12d
mov dword [rbx + 0x50], ecx
mov dword [rbx + 0x54], r12d
mov qword [rbx + 0x58], r14
jmp 0x160033c34
mov rcx, r14
call fcn.1600636d0
mov edi, esi
mov rcx, rbx
call fcn.1600636d0
mov eax, edi
mov rbx, qword [rsp + 0x70]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
Function at 0x16003c92c
Capabilities:
Hash data using sha256

Disassembly:
sub rsp, 0x28
test rcx, rcx
je 0x16003c97c
and dword [rcx + 0x28], 0
and qword [rcx], 0
xor eax, eax
mov dword [rcx + 8], 0x6a09e667
mov dword [rcx + 0xc], 0xbb67ae85
mov dword [rcx + 0x10], 0x3c6ef372
mov dword [rcx + 0x14], 0xa54ff53a
mov dword [rcx + 0x18], 0x510e527f
mov dword [rcx + 0x1c], 0x9b05688c
mov dword [rcx + 0x20], 0x1f83d9ab
mov dword [rcx + 0x24], 0x5be0cd19
add rsp, 0x28
ret
mov r8d, 0xc6
lea rdx, str.C:Users_fedecDocumentsGitHub_tpp_moddepslibtomcrypt_srchashes_sha2_sha256.c
lea rcx, str.md___NULL
call fcn.1600428f0
int3