joyce8/EMBER2024-capa huggingface dataset:
Function at 0x180044a7c
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 0x180044aa7
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_SuspendThread]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret

Function at 0x180044ac4
Capabilities:
Allocate or change rwx memory

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 8], rcx
push rsi
push rdi
push r15
sub rsp, 0x40
mov rbp, rdx
mov rdi, rcx
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rcx], xmm0
mov qword [rcx + 0x10], rax
and qword [rcx], rax
and qword [rcx + 0x10], rax
mov r15d, 0x1000
mov qword [rcx + 8], r15
lea rbx, [rdx - 0x1000]
mov rsi, 0xffffffffffffeffb
mov r9d, 0x40
mov r8d, 0x3000
mov rdx, r15
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rcx, rax
test rax, rax
jne 0x180044b40
sub rsi, r15
lea rbx, [rbp + 5]
add rbx, rsi
movsxd rax, esi
cmp rsi, rax
je 0x180044b0c
jmp 0x180044b5d
sub rbx, rbp
sub rbx, 5
movsxd rax, ebx
cmp rbx, rax
je 0x180044b5f
xor edx, edx
mov r8d, 0x8000
call qword [sym.imp.KERNEL32.dll_VirtualFree]
xor ecx, ecx
mov qword [rdi], rcx
test rcx, rcx
je 0x180044b7d
mov rax, rdi
mov rbx, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x70]
add rsp, 0x40
pop r15
pop rdi
pop rsi
ret
lea rdx, str.Failed_to_allocate
lea rcx, [rsp + 0x20]
call fcn.18000f64c
lea rdx, [0x1801149a0]
lea rcx, [rsp + 0x20]
call fcn.180082068
int3

Function at 0x1800456bc
Capabilities:
Allocate or change rwx memory

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
and dword [rsp + 0x40], 0
lea r9, [rsp + 0x40]
mov r8d, 0x40
mov rbx, rdx
mov rdi, rcx
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov r8, rbx
mov edx, 0x90
mov rcx, rdi
call fcn.180081ce0
mov r8d, dword [rsp + 0x40]
lea r9, [rsp + 0x40]
mov rdx, rbx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov r8, rbx
mov rdx, rdi
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FlushInstructionCache]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret

Function at 0x180045728
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.180081630
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 0x180046578
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, 0xf0
mov rax, qword [0x1801170a0]
xor rax, rsp
mov qword [rbp + 0x27], rax
mov r14, r8
mov rbx, rdx
mov r12, rcx
xorps xmm0, xmm0
movups xmmword [rbp + 7], xmm0
movdqa xmm1, xmmword [0x180106c60]
movdqu xmmword [rbp + 0x17], xmm1
xor esi, esi
mov byte [rbp + 7], sil
lea rdx, [rbp + 7]
mov rcx, rbx
call fcn.18004828c
nop
mov rdx, qword [rbp + 0x1f]
cmp rdx, 0x10
jb 0x18004660f
inc rdx
mov rcx, qword [rbp + 7]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18004660a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18004673c
call fcn.18007f000
mov rcx, rbx
cmp qword [rbx + 0x18], 0x10
jb 0x18004661c
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x18004662c
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp qword [rbx + 0x18], 0x10
jb 0x180046636
mov rbx, qword [rbx]
mov rcx, rbx
call fcn.18006fb9c
mov qword [rbp - 0x19], rax
test rax, rax
je 0x180046714
lea rcx, [rbp - 0x19]
mov qword [rbp - 0x11], rcx
mov qword [rbp - 9], r14
mov r15b, 1
mov byte [rbp - 1], r15b
mov r12, qword [r12 + 8]
mov rbx, qword [r12]
cmp rbx, r12
je 0x1800466f2
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 0x180046691
mov rdx, qword [rdx]
mov dword [rsp + 0x90], ecx
mov rcx, rax
call fcn.18006ff20
test eax, eax
jne 0x1800466eb
lea rax, [rbp - 0x19]
mov qword [rbp + 7], rax
mov byte [rbp + 0xf], r15b
mov r8d, dword [rdi + 0x10]
cmp qword [rdi + 0x18], 0x10
jb 0x1800466be
mov rdi, qword [rdi]
mov rdx, rdi
mov rcx, qword [rbp - 0x19]
call fcn.180070370
mov edi, eax
mov rcx, qword [rbp - 0x19]
call fcn.1800704c8
nop
test edi, edi
jne 0x1800466eb
mov rax, qword [rbx]
mov rbx, rax
cmp rax, r12
mov rax, qword [rbp - 0x19]
jne 0x180046670
jmp 0x1800466f2
mov r15b, sil
mov rax, qword [rbp - 0x19]
cmp qword [r14 + 0x10], rsi
je 0x180046705
mov rsi, r14
cmp qword [r14 + 0x18], 0x10
jb 0x180046705
mov rsi, qword [r14]
mov rdx, rsi
mov rcx, rax
call fcn.180070be8
nop
mov al, r15b
mov rcx, qword [rbp + 0x27]
xor rcx, rsp
call fcn.18007efe0
lea r11, [rsp + 0xf0]
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.180085f74
int3
Function at 0x180046cd0
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 [0x1801170a0]
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.180081ce0
mov r8d, ebx
lea rcx, [rbp + 0x90]
xor edx, edx
call fcn.180081ce0
lea rdx, [rbp + 0x90]
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_GetTempPathA]
lea r9, [rbp - 0x80]
xor r8d, r8d
lea rdx, str.boiii_
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 0x180046d79
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x58]
call fcn.18000fa98
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 0x180046e0a
mov rcx, qword [rsp + 0x58]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x180046e05
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180046eae
call fcn.18007f000
movdqa xmm0, xmmword [0x180106c60]
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 0x180046e87
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.18007efe0
lea r11, [rsp + 0x2b0]
mov rbx, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov rsp, r11
pop rbp
ret
call fcn.180085f74
int3
Function at 0x180046eb4
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.1800801e0
sub rsp, rax
mov rax, qword [0x1801170a0]
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 [0x180106c60]
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 0x180046f7e
mov r8d, dword [rsp + 0x30]
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x40]
call fcn.18000f8d0
cmp dword [rsp + 0x30], 0x2000
je 0x180046f2a
movups xmm0, xmmword [rsp + 0x40]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [rsp + 0x50]
movups xmmword [rbx + 0x10], xmm1
jmp 0x180046fd2
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
and qword [rbx + 0x10], 0
and qword [rbx + 0x10], 0
mov qword [rbx + 0x18], send
mov byte [rbx], 0
mov rdx, qword [rsp + 0x58]
cmp rdx, 0x10
jb 0x180046fd2
inc rdx
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180046fcd
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180046ff9
call fcn.18007f000
mov rax, rbx
mov rcx, qword [rbp + 0x1f60]
xor rcx, rsp
call fcn.18007efe0
lea r11, [rsp + 0x2070]
mov rbx, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret
call fcn.180085f74
int3
Function at 0x18004a4dc
Capabilities:
Hash data using murmur3

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rdi
push rbp
mov rbp, rsp
sub rsp, 0x40
mov rax, qword [0x1801170a0]
xor rax, rsp
mov qword [rbp - 0x10], rax
xor r9d, r9d
mov r11, rcx
mov dword [rbp - 0x38], r9d
mov ecx, 0x24234428
mov dword [rbp - 0x40], ecx
mov ebx, 0x85ebca77
mov dword [rbp - 0x3c], ebx
mov edi, 0x61c8864f
mov dword [rbp - 0x34], edi
mov r10d, r9d
mov dword [rbp - 0x20], r9d
mov r8d, r9d
mov qword [rbp - 0x18], r9
test r11, r11
je 0x18004a5fd
test rdx, rdx
je 0x18004a5fd
mov qword [rbp - 0x18], rdx
cmp rdx, 0x10
jae 0x18004a56b
mov cl, byte [r11]
inc r11
mov eax, r8d
mov byte [rbp + rax - 0x30], cl
mov r8d, dword [rbp - 0x20]
inc r8d
mov dword [rbp - 0x20], r8d
sub rdx, 1
jne 0x18004a548
jmp 0x18004a5f9
lea r8, [r11 + rdx]
lea rdx, [r8 - 0x10]
jmp 0x18004a5c7
imul eax, dword [r11], 0x7a143589
sub ecx, eax
imul eax, dword [r11 + 4], 0x7a143589
rol ecx, 0xd
imul ecx, ecx, 0x9e3779b1
sub ebx, eax
imul eax, dword [r11 + 8], 0x7a143589
rol ebx, 0xd
imul ebx, ebx, 0x9e3779b1
sub r10d, eax
imul eax, dword [r11 + 0xc], 0x7a143589
rol r10d, 0xd
imul r10d, r10d, 0x9e3779b1
sub edi, eax
rol edi, 0xd
imul edi, edi, 0x9e3779b1
add r11, 0x10
cmp r11, rdx
jbe 0x18004a575
sub r8d, r11d
mov dword [rbp - 0x40], ecx
mov dword [rbp - 0x20], r8d
mov dword [rbp - 0x3c], ebx
mov dword [rbp - 0x38], r10d
mov dword [rbp - 0x34], edi
je 0x18004a5fd
mov ecx, r9d
inc r9d
mov al, byte [rcx + r11]
mov byte [rbp + rcx - 0x30], al
mov r8d, dword [rbp - 0x20]
cmp r9d, r8d
jb 0x18004a5e2
mov r10d, dword [rbp - 0x38]
cmp qword [rbp - 0x18], 0x10
jb 0x18004a625
mov ecx, dword [rbp - 0x34]
mov eax, dword [rbp - 0x3c]
mov edx, dword [rbp - 0x40]
rol eax, 7
add eax, dword [rbp - 0x18]
ror ecx, 0xe
rol r10d, 0xc
add ecx, r10d
rol edx, 1
add eax, ecx
add edx, eax
jmp 0x18004a631
mov edx, dword [rbp - 0x18]
add edx, 0x165667b1
add edx, r10d
mov eax, r8d
lea r9, [rbp - 0x30]
lea r8, [rbp - 0x30]
add r8, rax
lea rax, [rbp - 0x2c]
jmp 0x18004a65f
imul eax, dword [r9], 0x3d4d51c3
sub edx, eax
ror edx, 0xf
imul edx, edx, 0x27d4eb2f
add r9, 4
lea rax, [r9 + 4]
cmp rax, r8
jbe 0x18004a645
jmp 0x18004a67e
movzx eax, byte [r9]
imul ecx, eax, 0x165667b1
add ecx, edx
rol ecx, 0xb
imul edx, ecx, 0x9e3779b1
inc r9
cmp r9, r8
jne 0x18004a666
mov eax, edx
shr eax, 0xf
xor eax, edx
imul ecx, eax, 0x85ebca77
mov eax, ecx
shr eax, 0xd
xor eax, ecx
imul ecx, eax, 0xc2b2ae3d
mov eax, ecx
shr eax, 0x10
xor eax, ecx
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.18007efe0
mov rbx, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
add rsp, 0x40
pop rbp
ret

Function at 0x18004a95c
Capabilities:
Encode data using xor

Disassembly:
cmp qword [rcx + 0x18], 0x10
mov r8, qword [rcx + 0x10]
jb 0x18004a96a
mov rcx, qword [rcx]
xor edx, edx
mov r9d, edx
test r8, r8
je 0x18004a994
mov eax, edx
movsx eax, byte [rax + rcx]
inc r9d
add eax, edx
imul edx, eax, 0x401
mov eax, edx
shr eax, 6
xor edx, eax
mov eax, r9d
cmp rax, r8
jb 0x18004a976
lea eax, [rdx + rdx*8]
mov ecx, eax
shr ecx, 0xb
xor ecx, eax
imul eax, ecx, 0x8001
ret
Function at 0x18004b588
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 0x18], r8
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov rdi, rdx
mov rsi, rcx
mov r15, rdx
sub r15, qword [rcx]
mov rax, qword [rcx + 8]
sub rax, qword [rcx]
sar rax, 4
movabs r8, 0xfffffffffffffff
cmp rax, r8
je 0x18004b7f6
lea r12, [rax + 1]
mov rcx, qword [rcx + 0x10]
sub rcx, qword [rsi]
sar rcx, 4
mov rdx, rcx
shr rdx, 1
mov rax, r8
sub rax, rdx
cmp rcx, rax
jbe 0x18004b5fc
mov qword [rsp + 0x90], r8
mov rcx, 0xfffffffffffffff0
mov qword [rsp + 0x30], rcx
jmp 0x18004b630
lea rax, [rdx + rcx]
mov r14, r12
cmp rax, r12
cmovae r14, rax
cmp r14, r8
ja 0x18004b7fc
mov rcx, r14
shl rcx, 4
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x90], r14
cmp rcx, 0x1000
jb 0x18004b642
call fcn.18000fa5c
mov rbx, rax
mov qword [rsp + 0xa8], rax
jmp 0x18004b66b
test rcx, rcx
je 0x18004b659
call fcn.18007f008
mov rbx, rax
mov qword [rsp + 0xa8], rax
jmp 0x18004b663
xor ebx, ebx
mov qword [rsp + 0xa8], rbx
mov qword [rsp + 0x90], r14
and r15, 0xfffffffffffffff0
lea r13, [r15 + rbx]
lea r14, [r13 + 0x10]
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x98], r14
mov ecx, 0x28
call fcn.18007f008
mov rcx, qword [rsp + 0xa0]
movups xmm0, xmmword [rcx]
movups xmmword [rax], xmm0
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rax + 0x10], xmm1
movsd xmm0, qword [rcx + 0x20]
movsd qword [rax + 0x20], xmm0
mov qword [rsp + 0x40], rax
lea r15, [r13 + 8]
mov qword [rsp + 0x28], r15
and dword [rsp + 0x20], 0
mov r9, rax
lea r8, [0x18004bcfc]
xor edx, edx
xor ecx, ecx
call fcn.180086c20
mov qword [r13], rax
test rax, rax
je 0x18004b7e7
mov qword [rsp + 0x98], r13
mov rcx, qword [rsi + 8]
mov rax, qword [rsi]
cmp rdi, rcx
jne 0x18004b717
mov rdx, rbx
jmp 0x18004b710
xorps xmm0, xmm0
movups xmm1, xmmword [rax]
movdqu xmmword [rax], xmm0
movdqu xmmword [rdx], xmm1
lea rdx, [rdx + 0x10]
add rax, 0x10
cmp rax, rcx
jne 0x18004b6fa
jmp 0x18004b764
mov rcx, rbx
jmp 0x18004b732
xorps xmm0, xmm0
movups xmm1, xmmword [rax]
movdqu xmmword [rax], xmm0
movdqu xmmword [rcx], xmm1
lea rcx, [rcx + 0x10]
add rax, 0x10
cmp rax, rdi
jne 0x18004b71c
mov qword [rsp + 0x98], rbx
mov rax, qword [rsi + 8]
cmp rdi, rax
je 0x18004b764
sub r14, rdi
xorps xmm0, xmm0
movups xmm1, xmmword [rdi]
movdqu xmmword [rdi], xmm0
movdqu xmmword [r14 + rdi], xmm1
add rdi, 0x10
cmp rdi, rax
jne 0x18004b74b
mov rcx, qword [rsi]
test rcx, rcx
je 0x18004b7ba
mov rax, rcx
cmp rcx, qword [rsi + 8]
je 0x18004b789
cmp dword [rax + 8], 0
jne 0x18004b802
add rax, 0x10
cmp rax, qword [rsi + 8]
jne 0x18004b775
mov rdx, qword [rsi + 0x10]
sub rdx, rcx
and rdx, 0xfffffffffffffff0
cmp rdx, 0x1000
jb 0x18004b7b5
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x18004b808
mov rcx, r8
call fcn.18007f000
mov qword [rsi], rbx
shl r12, 4
add r12, rbx
mov qword [rsi + 8], r12
mov rcx, qword [rsp + 0x30]
add rcx, rbx
mov qword [rsi + 0x10], rcx
mov rax, r13
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
and dword [r15], 0
mov ecx, 6
call fcn.18007dbf8
nop
call fcn.1800142b4
int3
call fcn.18000fa3c
int3
call fcn.180086abc
int3
call fcn.180085f74
int3
Function at 0x18004be18
Capabilities:
Get session user name

Disassembly:
push rbx
sub rsp, 0x150
mov rax, qword [0x1801170a0]
xor rax, rsp
mov qword [rsp + 0x140], rax
mov qword [rsp + 0x20], rcx
lea rdx, [rsp + 0x20]
mov rbx, rcx
mov dword [rsp + 0x20], 0x101
lea rcx, [rsp + 0x30]
call qword [sym.imp.ADVAPI32.dll_GetUserNameA]
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
test eax, eax
jne 0x18004be84
mov qword [rbx + 0x10], 3
mov qword [rbx + 0x18], send
mov ecx, dword [0x1801010f8]
mov word [rbx], cx
mov cl, byte [0x1801010fa]
mov byte [rbx + 2], cl
mov byte [rbx + 3], al
jmp 0x18004bea3
and qword [rbx + 0x10], 0
lea rdx, [rsp + 0x30]
and qword [rbx + 0x18], 0
mov rcx, rbx
mov r8d, dword [rsp + 0x20]
dec r8d
call fcn.18000fa98
mov rax, rbx
mov rcx, qword [rsp + 0x140]
xor rcx, rsp
call fcn.18007efe0
add rsp, 0x150
pop rbx
ret
Function at 0x18005b22c
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.18008cd6c
xorps xmm0, xmm0
mov rbx, rax
mov edi, 1
movups xmmword [rsp + 0x20], xmm0
test rax, rax
je 0x18005b3ba
mov ecx, r13d
shl rcx, 4
call fcn.18008cd6c
and dword [rsp + 0x88], 0
mov r14, rax
test rax, rax
je 0x18005b3b2
test byte [r15], dil
je 0x18005b2d5
mov rdx, rbp
lea rcx, [rsp + 0x20]
call fcn.18005d0f4
mov rdx, qword [rsp + 0x28]
mov esi, eax
mov dword [rsp + 0x88], 4
jmp 0x18005b310
test rbp, rbp
jne 0x18005b2df
lea esi, [rbp + 2]
jmp 0x18005b306
mov r9d, 0x40
mov r8d, 0x3000
mov rdx, rbp
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
test rax, rax
jne 0x18005b2ff
mov esi, edi
jmp 0x18005b306
mov qword [rsp + 0x20], rax
xor esi, esi
mov rdx, qword [rsp + 0x20]
mov qword [rsp + 0x28], rdx
test esi, esi
jne 0x18005b3a8
mov eax, dword [r15]
shr eax, 2
test dil, al
je 0x18005b338
mov rcx, rbp
shr rcx, 2
test rcx, rcx
je 0x18005b338
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.180081ce0
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 0x18005b3bc
mov rcx, r14
call fcn.180086a6c
mov edi, esi
mov rcx, rbx
call fcn.180086a6c
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 0x1800640a4
Capabilities:
Hash data using sha256

Disassembly:
sub rsp, 0x28
test rcx, rcx
je 0x1800640f4
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.D:programmingcpp_shield_developmentdepslibtomcrypt_srchashes_sha2_sha256.c
lea rcx, str.md___NULL
call fcn.18006b1d0
int3
Function at 0x18006479c
Capabilities:
Encode data using xor
Encrypt data using des

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r14
mov r9d, dword [rcx + 4]
lea r14, [0x180000000]
mov rbx, rcx
mov eax, r9d
shr eax, 0x10
mov r8d, r9d
shr r8, 0x18
mov rdi, rdx
movzx edx, al
mov esi, 8
mov eax, dword [rcx]
shr rax, 0x18
mov r10, qword [r14 + r8*8 + 0xf1710]
xor r10, qword [r14 + rdx*8 + 0xf0f10]
xor r10, qword [r14 + rax*8 + 0xef710]
mov eax, r9d
shr eax, 8
movzx ecx, al
mov eax, dword [rbx]
shr eax, 0x10
xor r10, qword [r14 + rcx*8 + 0xf0710]
movzx ecx, al
mov eax, dword [rbx]
shr eax, 8
xor r10, qword [r14 + rcx*8 + 0xeef10]
movzx ecx, al
movzx eax, r9b
xor r10, qword [r14 + rcx*8 + 0xee710]
xor r10, qword [r14 + rax*8 + 0xeff10]
movzx eax, byte [rbx]
xor r10, qword [r14 + rax*8 + 0xedf10]
mov r11, r10
shr r11, 0x20
mov r9d, r10d
mov eax, r10d
xor eax, dword [rdi + 4]
mov r8d, eax
mov ecx, eax
shr rax, 0x10
and eax, 0x3f
ror r9d, 4
xor r9d, dword [rdi]
lea rdi, [rdi + 0x10]
shr rcx, 0x18
and ecx, 0x3f
mov edx, dword [r14 + rcx*4 + 0xf2040]
xor edx, dword [r14 + rax*4 + 0xe92c0]
mov eax, r8d
shr rax, 8
and r8d, 0x3f
and eax, 0x3f
xor edx, dword [r14 + rax*4 + 0xf1f40]
mov eax, r9d
shr rax, 0x18
and eax, 0x3f
xor edx, dword [r14 + rax*4 + 0xe93c0]
mov eax, r9d
shr rax, 0x10
and eax, 0x3f
xor edx, dword [r14 + rax*4 + 0xe96c0]
mov eax, r9d
shr rax, 8
and r9d, 0x3f
and eax, 0x3f
xor edx, dword [r14 + rax*4 + 0xf2190]
xor edx, dword [r14 + r8*4 + 0xe94c0]
xor edx, dword [r14 + r9*4 + 0xe97c0]
xor r11d, edx
mov r9d, r11d
mov eax, r11d
xor eax, dword [rdi - 4]
mov r8d, eax
mov ecx, eax
shr rax, 0x10
and eax, 0x3f
ror r9d, 4
xor r9d, dword [rdi - 8]
shr rcx, 0x18
and ecx, 0x3f
mov edx, dword [r14 + rcx*4 + 0xf2040]
xor edx, dword [r14 + rax*4 + 0xe92c0]
mov eax, r8d
shr rax, 8
and r8d, 0x3f
and eax, 0x3f
xor edx, dword [r14 + rax*4 + 0xf1f40]
mov eax, r9d
shr rax, 0x18
and eax, 0x3f
xor edx, dword [r14 + rax*4 + 0xe93c0]
mov eax, r9d
shr rax, 0x10
and eax, 0x3f
xor edx, dword [r14 + rax*4 + 0xe96c0]
mov eax, r9d
shr rax, 8
and r9d, 0x3f
and eax, 0x3f
xor edx, dword [r14 + rax*4 + 0xf2190]
xor edx, dword [r14 + r8*4 + 0xe94c0]
xor edx, dword [r14 + r9*4 + 0xe97c0]
xor r10d, edx
sub rsi, 1
jne 0x180064842
mov rsi, qword [rsp + 0x10]
mov eax, r10d
mov rdi, qword [rsp + 0x18]
shr eax, 0x10
movzx ecx, al
mov edx, r10d
shr rdx, 0x18
mov eax, r11d
shr rax, 0x18
mov r8, qword [r14 + rdx*8 + 0xed0c0]
xor r8, qword [r14 + rcx*8 + 0xec8c0]
xor r8, qword [r14 + rax*8 + 0xeb0c0]
mov eax, r10d
shr eax, 8
movzx ecx, al
mov eax, r11d
shr eax, 0x10
xor r8, qword [r14 + rcx*8 + 0xec0c0]
movzx ecx, al
mov eax, r11d
shr eax, 8
xor r8, qword [r14 + rcx*8 + 0xea8c0]
movzx ecx, al
movzx eax, r10b
xor r8, qword [r14 + rcx*8 + 0xea0c0]
xor r8, qword [r14 + rax*8 + 0xeb8c0]
movzx eax, r11b
xor r8, qword [r14 + rax*8 + 0xe98c0]
mov r14, qword [rsp + 0x20]
mov dword [rbx], r8d
shr r8, 0x20
mov dword [rbx + 4], r8d
mov rbx, qword [rsp + 8]
ret