joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1801607f0
Capabilities:
Read file on windows

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x88
lea rbp, [rsp + 0xc0]
xor eax, eax
mov qword [rbp - 0x48], rax
mov qword [rbp + 0x10], rcx
mov rdi, rdx
mov ebx, r8d
mov rsi, r9
xor edx, edx
mov dword [rbp - 0x40], edx
lea rdx, [rbp - 0x40]
cmp dword [rcx], ecx
call fcn.18013c210
mov rcx, qword [rbp + 0x10]
mov r14, qword [rcx + 8]
mov qword [rbp - 0x48], rsi
xor ecx, ecx
call sub.KERNEL32.dll_SetLastError
mov r15, qword [rbp + 0x30]
mov qword [rsp + 0x20], r15
mov rcx, r14
mov qword [rbp - 0x54], rcx
mov rdx, rdi
mov qword [rbp - 0x5c], rdx
mov r8d, ebx
mov dword [rbp - 0x4c], r8d
mov r9, rsi
mov qword [rbp - 0x64], r9
lea rcx, [rbp - 0x90]
call fcn.180004c50
mov rcx, qword [rbp - 0x54]
mov rdx, qword [rbp - 0x5c]
mov r8d, dword [rbp - 0x4c]
mov r9, qword [rbp - 0x64]
call sub.KERNEL32.dll_ReadFile
mov esi, eax
lea rcx, [rbp - 0x90]
call fcn.180004ca0
call sub.KERNEL32.dll_GetLastError
mov edi, eax
xor ecx, ecx
mov qword [rbp - 0x48], rcx
cmp byte [rbp - 0x40], 0
je 0x1801608b3
mov rcx, qword [rbp + 0x10]
xor edx, edx
call fcn.18013c2a0
call fcn.1800032d9
mov dword [rax + 8], edi
mov eax, esi
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret

Function at 0x180160ba0
Capabilities:
Write file on windows

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x78
lea rbp, [rsp + 0xb0]
xor eax, eax
mov qword [rbp - 0x40], rax
mov rsi, rcx
mov rdi, rdx
mov ebx, r8d
mov qword [rbp - 0x40], r9
mov r14, r9
xor ecx, ecx
call sub.KERNEL32.dll_SetLastError
mov r15, qword [rbp + 0x30]
mov qword [rsp + 0x20], r15
mov rcx, rsi
mov qword [rbp - 0x4c], rcx
mov rdx, rdi
mov qword [rbp - 0x54], rdx
mov r8d, ebx
mov dword [rbp - 0x44], r8d
mov r9, r14
mov qword [rbp - 0x5c], r9
lea rcx, [rbp - 0x88]
call fcn.180004c50
mov rcx, qword [rbp - 0x4c]
mov rdx, qword [rbp - 0x54]
mov r8d, dword [rbp - 0x44]
mov r9, qword [rbp - 0x5c]
call sub.KERNEL32.dll_WriteFile
mov esi, eax
lea rcx, [rbp - 0x88]
call fcn.180004ca0
call sub.KERNEL32.dll_GetLastError
mov edi, eax
xor eax, eax
mov qword [rbp - 0x40], rax
call fcn.1800032d9
mov dword [rax + 8], edi
mov eax, esi
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
Function at 0x180161010
Capabilities:
Query environment variable

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x78
lea rbp, [rsp + 0xb0]
xor eax, eax
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x48], rax
mov esi, r8d
test rcx, rcx
je 0x180161043
add rcx, 0xc
mov rdi, rcx
jmp 0x180161045
xor edi, edi
mov qword [rbp - 0x40], rdi
mov qword [rbp - 0x48], rdx
mov rbx, rdx
xor ecx, ecx
call sub.KERNEL32.dll_SetLastError
mov rcx, rdi
mov qword [rbp - 0x54], rcx
mov rdx, rbx
mov qword [rbp - 0x5c], rdx
mov r8d, esi
mov dword [rbp - 0x4c], r8d
lea rcx, [rbp - 0x88]
call fcn.180004c50
mov rcx, qword [rbp - 0x54]
mov rdx, qword [rbp - 0x5c]
mov r8d, dword [rbp - 0x4c]
call sub.KERNEL32.dll_GetEnvironmentVariableW
mov esi, eax
lea rcx, [rbp - 0x88]
call fcn.180004ca0
call sub.KERNEL32.dll_GetLastError
mov edi, eax
xor eax, eax
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x40], rax
call fcn.1800032d9
mov dword [rax + 8], edi
mov eax, esi
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret

Function at 0x180161460
Capabilities:
Create thread

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x98
lea rbp, [rsp + 0xd0]
xor eax, eax
mov qword [rbp - 0x58], rax
mov qword [rbp - 0x50], rax
mov rsi, rcx
mov rdi, rdx
mov rbx, r8
mov r14, r9
mov r15, qword [rbp + 0x38]
xor ecx, ecx
mov dword [rbp - 0x3c], ecx
mov qword [rbp - 0x48], rcx
lea rcx, [0x18029fb00]
call fcn.180004820
xor ecx, ecx
mov qword [rax + 8], rcx
mov dword [rax + 0x10], 4
mov byte [rax + 0x14], 1
mov byte [rax + 0x15], 1
mov qword [rbp - 0x58], rax
mov qword [rbp - 0x50], r15
mov rcx, rsi
mov rdx, rdi
mov r8, rbx
mov r9, r14
mov esi, dword [rbp + 0x30]
mov qword [rbp - 0x60], rcx
mov qword [rbp - 0x68], rdx
mov qword [rbp - 0x70], r8
mov qword [rbp - 0x78], r9
mov dword [rsp + 0x20], esi
mov qword [rsp + 0x28], r15
lea rcx, [rbp - 0xa0]
call fcn.180004c50
mov rcx, qword [rbp - 0x60]
mov rdx, qword [rbp - 0x68]
mov r8, qword [rbp - 0x70]
mov r9, qword [rbp - 0x78]
call sub.KERNEL32.dll_CreateThread
mov rsi, rax
lea rcx, [rbp - 0xa0]
call fcn.180004ca0
mov qword [rbp - 0x48], rsi
xor eax, eax
mov qword [rbp - 0x50], rax
mov dword [rbp - 0x3c], 1
mov rax, qword [rbp - 0x48]
mov rdx, qword [rbp - 0x58]
mov qword [rdx + 8], rax
mov rax, rdx
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret

Function at 0x1801615b0
Capabilities:
Resume thread

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x58
lea rbp, [rsp + 0x90]
mov qword [rbp + 0x10], rcx
xor edx, edx
mov dword [rbp - 0x40], edx
lea rdx, [rbp - 0x40]
cmp dword [rcx], ecx
call fcn.18013c210
mov rcx, qword [rbp + 0x10]
mov rax, qword [rcx + 8]
mov rcx, rax
mov qword [rbp - 0x48], rcx
lea rcx, [rbp - 0x70]
call fcn.180004c50
mov rcx, qword [rbp - 0x48]
call sub.KERNEL32.dll_ResumeThread
mov esi, eax
lea rcx, [rbp - 0x70]
call fcn.180004ca0
nop
cmp byte [rbp - 0x40], 0
je 0x18016161a
mov rcx, qword [rbp + 0x10]
xor edx, edx
call fcn.18013c2a0
mov eax, esi
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
Function at 0x180162340
Capabilities:
Query or enumerate registry key

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0xc8
lea rbp, [rsp + 0x100]
xorps xmm4, xmm4
movaps xmmword [rbp - 0x70], xmm4
movaps xmmword [rbp - 0x60], xmm4
movaps xmmword [rbp - 0x50], xmm4
mov qword [rbp + 0x10], rcx
mov ebx, edx
mov rdi, r8
mov rsi, r9
mov r14, qword [rbp + 0x30]
mov r15, qword [rbp + 0x38]
mov r12, qword [rbp + 0x40]
mov r13, qword [rbp + 0x48]
xor edx, edx
mov dword [rbp - 0x40], edx
lea rdx, [rbp - 0x40]
cmp dword [rcx], ecx
call fcn.18013c210
mov rcx, qword [rbp + 0x10]
mov rdx, qword [rcx + 8]
test rdi, rdi
jne 0x1801623a8
xor r8d, r8d
jmp 0x1801623ac
lea r8, [rdi + 0x10]
mov qword [rbp - 0x48], r8
mov qword [rbp - 0x50], rsi
mov r9, rsi
test r14, r14
jne 0x1801623c0
xor eax, eax
jmp 0x1801623c4
lea rax, [r14 + 0x10]
mov qword [rbp - 0x58], rax
test r15, r15
jne 0x1801623d2
xor r10d, r10d
jmp 0x1801623d6
lea r10, [r15 + 0x10]
mov qword [rbp - 0x60], r10
test r12, r12
jne 0x1801623e4
xor r11d, r11d
jmp 0x1801623e9
lea r11, [r12 + 0x10]
mov qword [rbp - 0x68], r11
test r13, r13
jne 0x1801623f6
xor esi, esi
jmp 0x1801623fa
lea rsi, [r13 + 0x10]
mov qword [rbp - 0x70], rsi
mov rcx, rdx
mov qword [rbp - 0x7c], rcx
mov edx, ebx
mov dword [rbp - 0x74], edx
mov qword [rbp - 0x84], r8
mov qword [rbp - 0x8c], r9
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], r10
mov qword [rsp + 0x30], r11
mov qword [rsp + 0x38], rsi
lea rcx, [rbp - 0xb8]
call fcn.180004c50
mov rcx, qword [rbp - 0x7c]
mov edx, dword [rbp - 0x74]
mov r8, qword [rbp - 0x84]
mov r9, qword [rbp - 0x8c]
call sub.ADVAPI32.dll_RegEnumKeyExW
mov esi, eax
lea rcx, [rbp - 0xb8]
call fcn.180004ca0
nop
xor ecx, ecx
mov qword [rbp - 0x70], rcx
xor ecx, ecx
mov qword [rbp - 0x68], rcx
xor ecx, ecx
mov qword [rbp - 0x60], rcx
xor ecx, ecx
mov qword [rbp - 0x58], rcx
xor ecx, ecx
mov qword [rbp - 0x50], rcx
xor ecx, ecx
mov qword [rbp - 0x48], rcx
cmp byte [rbp - 0x40], 0
je 0x180162496
mov rcx, qword [rbp + 0x10]
xor edx, edx
call fcn.18013c2a0
mov eax, esi
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
Function at 0x1801625d0
Capabilities:
Query or enumerate registry value

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0xb8
lea rbp, [rsp + 0xf0]
xor eax, eax
mov qword [rbp - 0x68], rax
xorps xmm4, xmm4
movaps xmmword [rbp - 0x60], xmm4
movaps xmmword [rbp - 0x50], xmm4
mov qword [rbp + 0x10], rcx
mov ebx, edx
mov rdi, r8
mov rsi, r9
mov r14, qword [rbp + 0x38]
mov r15, qword [rbp + 0x40]
mov r12, qword [rbp + 0x48]
xor edx, edx
mov dword [rbp - 0x40], edx
lea rdx, [rbp - 0x40]
cmp dword [rcx], ecx
call fcn.18013c210
mov rcx, qword [rbp + 0x10]
mov rdx, qword [rcx + 8]
test rdi, rdi
jne 0x180162636
xor r8d, r8d
jmp 0x18016263a
lea r8, [rdi + 0x10]
mov qword [rbp - 0x48], r8
mov qword [rbp - 0x50], rsi
mov r9, rsi
test r14, r14
jne 0x18016264e
xor eax, eax
jmp 0x180162652
lea rax, [r14 + 0x10]
mov qword [rbp - 0x58], rax
test r15, r15
jne 0x180162660
xor r10d, r10d
jmp 0x180162664
lea r10, [r15 + 0x10]
mov qword [rbp - 0x60], r10
test r12, r12
jne 0x180162672
xor r11d, r11d
jmp 0x180162677
lea r11, [r12 + 0x10]
mov qword [rbp - 0x68], r11
mov rsi, qword [rbp + 0x30]
mov rcx, rdx
mov qword [rbp - 0x74], rcx
mov edx, ebx
mov dword [rbp - 0x6c], edx
mov qword [rbp - 0x7c], r8
mov qword [rbp - 0x84], r9
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], r10
mov qword [rsp + 0x38], r11
lea rcx, [rbp - 0xb0]
call fcn.180004c50
mov rcx, qword [rbp - 0x74]
mov edx, dword [rbp - 0x6c]
mov r8, qword [rbp - 0x7c]
mov r9, qword [rbp - 0x84]
call sub.ADVAPI32.dll_RegEnumValueW
mov esi, eax
lea rcx, [rbp - 0xb0]
call fcn.180004ca0
nop
xor ecx, ecx
mov qword [rbp - 0x68], rcx
xor ecx, ecx
mov qword [rbp - 0x60], rcx
xor ecx, ecx
mov qword [rbp - 0x58], rcx
xor ecx, ecx
mov qword [rbp - 0x50], rcx
xor ecx, ecx
mov qword [rbp - 0x48], rcx
cmp byte [rbp - 0x40], 0
je 0x18016270b
mov rcx, qword [rbp + 0x10]
xor edx, edx
call fcn.18013c2a0
mov eax, esi
add rsp, 0xb8
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
Function at 0x1801629d0
Capabilities:
Query or enumerate registry value

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x88
lea rbp, [rsp + 0xc0]
xor eax, eax
mov qword [rbp - 0x48], rax
mov qword [rbp + 0x10], rcx
mov rsi, rdx
mov rdi, r8
mov rbx, r9
xor edx, edx
mov dword [rbp - 0x40], edx
lea rdx, [rbp - 0x40]
cmp dword [rcx], ecx
call fcn.18013c210
mov rcx, qword [rbp + 0x10]
mov rdx, qword [rcx + 8]
test rsi, rsi
je 0x180162a21
add rsi, 0xc
jmp 0x180162a23
xor esi, esi
mov qword [rbp - 0x48], rsi
mov r14, qword [rbp + 0x30]
mov qword [rsp + 0x20], r14
mov r14, qword [rbp + 0x38]
mov qword [rsp + 0x28], r14
mov rcx, rdx
mov qword [rbp - 0x50], rcx
mov rdx, rsi
mov qword [rbp - 0x58], rdx
mov r8, rdi
mov qword [rbp - 0x60], r8
mov r9, rbx
mov qword [rbp - 0x68], r9
lea rcx, [rbp - 0x90]
call fcn.180004c50
mov rcx, qword [rbp - 0x50]
mov rdx, qword [rbp - 0x58]
mov r8, qword [rbp - 0x60]
mov r9, qword [rbp - 0x68]
call sub.ADVAPI32.dll_RegQueryValueExW
mov esi, eax
lea rcx, [rbp - 0x90]
call fcn.180004ca0
nop
xor ecx, ecx
mov qword [rbp - 0x48], rcx
cmp byte [rbp - 0x40], 0
je 0x180162a9c
mov rcx, qword [rbp + 0x10]
xor edx, edx
call fcn.18013c2a0
mov eax, esi
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret

Function at 0x180165d80
Capabilities:
Encode data using xor

Disassembly:
mov rax, qword [rcx + 8]
mov rdx, qword [rcx + 0x10]
mov r8, qword [rcx + 0x18]
mov r9, qword [rcx + 0x20]
lea r10, [rdx + rdx*4]
rol r10, 7
lea r10, [r10 + r10*8]
mov r11, rdx
shl r11, 0x11
xor r8, rax
xor r9, rdx
xor rdx, r8
xor rax, r9
xor r8, r11
rol r9, 0x2d
mov qword [rcx + 8], rax
mov qword [rcx + 0x10], rdx
mov qword [rcx + 0x18], r8
mov qword [rcx + 0x20], r9
mov rax, r10
shr rax, 0x21
cmp rax, 0x7fffffff
je fcn.180165d80
ret

Function at 0x18017e770
Capabilities:
Check for debugger via api

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x68
lea rbp, [rsp + 0xa0]
mov rsi, rdx
mov qword [rbp + 0x18], rsi
movzx edi, byte [rsi]
xor edx, edx
test edi, edi
setne dl
mov dword [rbp - 0x40], edx
lea rdx, [rbp - 0x40]
mov qword [rbp - 0x48], rdx
mov qword [rbp - 0x50], rcx
lea rcx, [rbp - 0x78]
call fcn.180004c50
mov rdx, qword [rbp - 0x48]
mov rcx, qword [rbp - 0x50]
call sub.KERNEL32.dll_CheckRemoteDebuggerPresent
mov edi, eax
lea rcx, [rbp - 0x78]
call fcn.180004ca0
xor eax, eax
test edi, edi
setne al
mov edx, dword [rbp - 0x40]
movzx edi, dl
mov rsi, qword [rbp + 0x18]
mov byte [rsi], dil
movzx eax, al
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
Function at 0x18017eb80
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r14
push rdi
push rsi
push rbx
sub rsp, 0x50
lea rbp, [rsp + 0x70]
xorps xmm4, xmm4
movups xmmword [rbp - 0x38], xmm4
xor eax, eax
mov qword [rbp - 0x28], rax
mov rsi, rcx
call fcn.18017ea00
test eax, eax
je 0x18017ebaf
xor ecx, ecx
call fcn.1800ac760
mov rcx, rsi
call fcn.1800bcfe0
mov rsi, rax
call fcn.180002833
mov rdi, rax
mov rcx, qword [rdi + 8]
call fcn.1800bcfe0
mov rbx, rax
mov rcx, qword [rdi + 0x10]
call fcn.1800bcfe0
mov rdi, rax
lea rcx, [0x1802ba328]
call fcn.1800047e0
mov r14, rax
mov rcx, r14
call fcn.180180ca0
mov rcx, r14
mov qword [rbp - 0x28], rcx
mov rdx, rbx
call fcn.180184bb0
mov rcx, qword [rbp - 0x28]
mov rdx, rdi
call fcn.180184af0
mov rcx, qword [rbp - 0x28]
mov edx, 1
call fcn.180184d30
mov rcx, qword [rbp - 0x28]
mov edx, 2
call fcn.180184d90
lea rcx, [0x1802a9be0]
call fcn.1800047e0
mov rdi, rax
mov rcx, rdi
xor edx, edx
call fcn.18012a010
mov qword [rbp - 0x30], rdi
mov rcx, qword [rbp - 0x28]
call fcn.180184b80
mov rbx, rax
mov rcx, qword [rbp - 0x28]
call fcn.180184ac0
mov r8, rax
mov rdx, rbx
mov rcx, qword [rbp - 0x28]
call fcn.180180df0
mov qword [rbp - 0x38], rax
lea rcx, [0x1802ba4e0]
call fcn.1800047e0
mov rbx, rax
xor ecx, ecx
mov dword [rsp + 0x20], ecx
mov rcx, rbx
mov rdx, rdi
mov r8, qword [rbp - 0x38]
mov r9d, 1
call fcn.1801812f0
mov rcx, rbx
mov qword [rbp - 0x40], rcx
mov r9d, dword [rsi + 8]
mov rdx, rsi
xor r8d, r8d
call fcn.180181e80
mov rcx, qword [rbp - 0x40]
call fcn.180181570
mov rcx, rdi
call fcn.18012ab60
mov rsi, rax
mov rcx, qword [rbp - 0x40]
mov edx, 1
call fcn.1801820a0
mov rcx, qword [rbp - 0x40]
call fcn.1800ad070
nop
mov r8, qword [rbp - 0x38]
test r8, r8
je 0x18017ecf0
mov rcx, r8
lea r10, [0x180382660]
call qword [r10]
nop
mov byte [rdi + 0x2b], 0
mov byte [rdi + 0x29], 0
mov byte [rdi + 0x28], 0
xor ecx, ecx
mov qword [rdi + 0x30], rcx
mov rcx, rdi
call fcn.1800ad070
nop
mov rcx, qword [rbp - 0x28]
call fcn.180184de0
mov edi, dword [rsi + 8]
mov ecx, edi
call fcn.18017eab0
xor edx, edx
test edi, edi
jle 0x18017ed9c
test rax, rax
je 0x18017ed62
cmp dword [rax + 8], edi
jl 0x18017ed62
mov ecx, edx
lea r8, [rsi + rcx + 0x10]
mov ecx, dword [rax + rcx*4 + 0x10]
mov r9d, ecx
sar r9d, 0x1f
and r9d, 0xff
add r9d, ecx
and r9d, 0xffffff00
sub ecx, r9d
movzx ecx, cl
xor byte [r8], cl
inc edx
cmp edi, edx
jg 0x18017ed2e
jmp 0x18017ed9c
mov r8d, edx
lea r8, [rsi + r8 + 0x10]
cmp edx, dword [rax + 8]
jae 0x18017edbd
mov ecx, edx
mov ecx, dword [rax + rcx*4 + 0x10]
mov r9d, ecx
sar r9d, 0x1f
and r9d, 0xff
add r9d, ecx
and r9d, 0xffffff00
sub ecx, r9d
movzx ecx, cl
xor byte [r8], cl
inc edx
cmp edi, edx
jg 0x18017ed62
call fcn.180002026
mov rcx, qword [rax + 8]
mov rdx, rsi
mov rax, qword [rcx]
call qword [rax + 0xe0]
nop
add rsp, 0x50
pop rbx
pop rsi
pop rdi
pop r14
pop rbp
ret
call fcn.18015ec70
int3
Function at 0x18017f4a0
Capabilities:
Encrypt or decrypt data via bcrypt

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0xb8
lea rbp, [rsp + 0xf0]
xor eax, eax
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x50], rax
mov qword [rbp + 0x10], rcx
mov rsi, rdx
mov edi, r8d
mov rbx, r9
mov r15, qword [rbp + 0x30]
mov r14, qword [rbp + 0x50]
xor edx, edx
mov dword [rbp - 0x40], edx
lea rdx, [rbp - 0x40]
cmp dword [rcx], ecx
call fcn.18013c210
mov rcx, qword [rbp + 0x10]
mov rdx, qword [rcx + 8]
test r15, r15
jne 0x18017f4fb
xor eax, eax
jmp 0x18017f4ff
lea rax, [r15 + 0x10]
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x50], r14
mov r8d, edi
mov r9, rbx
mov edi, dword [rbp + 0x38]
mov rbx, qword [rbp + 0x40]
mov r15d, dword [rbp + 0x48]
mov r12d, dword [rbp + 0x58]
mov dword [rsp + 0x48], r12d
mov rcx, rdx
mov qword [rbp - 0x5c], rcx
mov rdx, rsi
mov qword [rbp - 0x64], rdx
mov dword [rbp - 0x54], r8d
mov qword [rbp - 0x6c], r9
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x38], r15d
mov qword [rsp + 0x40], r14
lea rcx, [rbp - 0x98]
call fcn.180004c50
mov rcx, qword [rbp - 0x5c]
mov rdx, qword [rbp - 0x64]
mov r8d, dword [rbp - 0x54]
mov r9, qword [rbp - 0x6c]
call sub.bcrypt.dll_BCryptEncrypt
mov esi, eax
lea rcx, [rbp - 0x98]
call fcn.180004ca0
nop
xor ecx, ecx
mov qword [rbp - 0x50], rcx
xor ecx, ecx
mov qword [rbp - 0x48], rcx
cmp byte [rbp - 0x40], 0
je 0x18017f59c
mov rcx, qword [rbp + 0x10]
xor edx, edx
call fcn.18013c2a0
mov eax, esi
add rsp, 0xb8
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
Function at 0x18017f640
Capabilities:
Encrypt or decrypt data via bcrypt

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0xb8
lea rbp, [rsp + 0xf0]
xor eax, eax
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x50], rax
mov qword [rbp + 0x10], rcx
mov rsi, rdx
mov edi, r8d
mov rbx, r9
mov r15, qword [rbp + 0x30]
mov r14, qword [rbp + 0x50]
xor edx, edx
mov dword [rbp - 0x40], edx
lea rdx, [rbp - 0x40]
cmp dword [rcx], ecx
call fcn.18013c210
mov rcx, qword [rbp + 0x10]
mov rdx, qword [rcx + 8]
test r15, r15
jne 0x18017f69b
xor eax, eax
jmp 0x18017f69f
lea rax, [r15 + 0x10]
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x50], r14
mov r8d, edi
mov r9, rbx
mov edi, dword [rbp + 0x38]
mov rbx, qword [rbp + 0x40]
mov r15d, dword [rbp + 0x48]
mov r12d, dword [rbp + 0x58]
mov dword [rsp + 0x48], r12d
mov rcx, rdx
mov qword [rbp - 0x5c], rcx
mov rdx, rsi
mov qword [rbp - 0x64], rdx
mov dword [rbp - 0x54], r8d
mov qword [rbp - 0x6c], r9
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x38], r15d
mov qword [rsp + 0x40], r14
lea rcx, [rbp - 0x98]
call fcn.180004c50
mov rcx, qword [rbp - 0x5c]
mov rdx, qword [rbp - 0x64]
mov r8d, dword [rbp - 0x54]
mov r9, qword [rbp - 0x6c]
call sub.bcrypt.dll_BCryptDecrypt
mov esi, eax
lea rcx, [rbp - 0x98]
call fcn.180004ca0
nop
xor ecx, ecx
mov qword [rbp - 0x50], rcx
xor ecx, ecx
mov qword [rbp - 0x48], rcx
cmp byte [rbp - 0x40], 0
je 0x18017f73c
mov rcx, qword [rbp + 0x10]
xor edx, edx
call fcn.18013c2a0
mov eax, esi
add rsp, 0xb8
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret

Function at 0x180184a10
Capabilities:
Generate random numbers via winapi

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x68
lea rbp, [rsp + 0xa0]
mov r8d, edx
mov dword [rbp - 0x3c], r8d
mov rdx, rcx
mov qword [rbp - 0x48], rdx
xor ecx, ecx
mov qword [rbp - 0x50], rcx
mov r9d, 2
mov dword [rbp - 0x40], r9d
lea rcx, [rbp - 0x78]
call fcn.180004c50
mov r8d, dword [rbp - 0x3c]
mov rdx, qword [rbp - 0x48]
mov rcx, qword [rbp - 0x50]
mov r9d, dword [rbp - 0x40]
call sub.bcrypt.dll_BCryptGenRandom
mov esi, eax
lea rcx, [rbp - 0x78]
call fcn.180004ca0
mov ecx, esi
test ecx, ecx
jne 0x180184a86
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
or ecx, 0x1000000
call fcn.1801807f0
mov rcx, rax
call fcn.1800052c0
int3
Function at 0x1801867d0
Capabilities:
Read file on windows

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x78
lea rbp, [rsp + 0xb0]
xor eax, eax
mov qword [rbp - 0x40], rax
mov rsi, rcx
mov rdi, rdx
mov ebx, r8d
mov qword [rbp - 0x40], r9
mov r14, r9
xor ecx, ecx
call sub.KERNEL32.dll_SetLastError
mov r15, qword [rbp + 0x30]
mov qword [rsp + 0x20], r15
mov rcx, rsi
mov qword [rbp - 0x4c], rcx
mov rdx, rdi
mov qword [rbp - 0x54], rdx
mov r8d, ebx
mov dword [rbp - 0x44], r8d
mov r9, r14
mov qword [rbp - 0x5c], r9
lea rcx, [rbp - 0x88]
call fcn.180004c50
mov rcx, qword [rbp - 0x4c]
mov rdx, qword [rbp - 0x54]
mov r8d, dword [rbp - 0x44]
mov r9, qword [rbp - 0x5c]
call sub.KERNEL32.dll_ReadFile
mov esi, eax
lea rcx, [rbp - 0x88]
call fcn.180004ca0
call sub.KERNEL32.dll_GetLastError
mov edi, eax
xor eax, eax
mov qword [rbp - 0x40], rax
call fcn.1800032d9
mov dword [rax + 8], edi
mov eax, esi
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret

Function at 0x180186950
Capabilities:
Write file on windows

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x78
lea rbp, [rsp + 0xb0]
xor eax, eax
mov qword [rbp - 0x40], rax
mov rsi, rcx
mov rdi, rdx
mov ebx, r8d
mov qword [rbp - 0x40], r9
mov r14, r9
xor ecx, ecx
call sub.KERNEL32.dll_SetLastError
mov r15, qword [rbp + 0x30]
mov qword [rsp + 0x20], r15
mov rcx, rsi
mov qword [rbp - 0x4c], rcx
mov rdx, rdi
mov qword [rbp - 0x54], rdx
mov r8d, ebx
mov dword [rbp - 0x44], r8d
mov r9, r14
mov qword [rbp - 0x5c], r9
lea rcx, [rbp - 0x88]
call fcn.180004c50
mov rcx, qword [rbp - 0x4c]
mov rdx, qword [rbp - 0x54]
mov r8d, dword [rbp - 0x44]
mov r9, qword [rbp - 0x5c]
call sub.KERNEL32.dll_WriteFile
mov esi, eax
lea rcx, [rbp - 0x88]
call fcn.180004ca0
call sub.KERNEL32.dll_GetLastError
mov edi, eax
xor eax, eax
mov qword [rbp - 0x40], rax
call fcn.1800032d9
mov dword [rax + 8], edi
mov eax, esi
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret

Function at 0x1801c3580
Capabilities:
Hash data using murmur3

Disassembly:
xor eax, eax
mov r8d, dword [rdx + 8]
test r8d, r8d
jle 0x1801c35be
mov r9d, eax
lea r9, [rdx + r9*8 + 0x10]
mov r9, qword [r9]
mov r10, r9
test r10, r10
jne 0x1801c35a3
xor r10d, r10d
jmp 0x1801c35a7
mov r10d, dword [r9 + 0x14]
mov r9d, ecx
rol r9d, 0xd
add r9d, ecx
mov ecx, r9d
xor ecx, r10d
inc eax
cmp r8d, eax
jg 0x1801c358b
mov eax, ecx
rol eax, 0xf
add eax, ecx
ret

Function at 0x1801c6480
Capabilities:
Hash data using murmur3

Disassembly:
push rdi
push rsi
sub rsp, 0x28
mov esi, ecx
mov edi, edx
call fcn.18000116a
mov eax, dword [rax]
add eax, 0x165667b1
add eax, 8
imul edx, esi, 0xc2b2ae3d
add edx, eax
rol edx, 0x11
imul eax, edx, 0x27d4eb2f
imul edx, edi, 0xc2b2ae3d
add edx, eax
rol edx, 0x11
imul eax, edx, 0x27d4eb2f
mov edx, eax
shr edx, 0xf
xor eax, edx
imul eax, eax, 0x85ebca77
mov edx, eax
shr edx, 0xd
xor eax, edx
imul eax, eax, 0xc2b2ae3d
mov edx, eax
shr edx, 0x10
xor eax, edx
add rsp, 0x28
pop rsi
pop rdi
ret
Function at 0x1801c64f0
Capabilities:
Hash data using murmur3

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x20
mov esi, ecx
mov edi, edx
mov ebx, r8d
call fcn.18000116a
mov eax, dword [rax]
add eax, 0x165667b1
add eax, 0xc
imul edx, esi, 0xc2b2ae3d
add edx, eax
rol edx, 0x11
imul eax, edx, 0x27d4eb2f
imul edx, edi, 0xc2b2ae3d
add edx, eax
rol edx, 0x11
imul eax, edx, 0x27d4eb2f
imul edx, ebx, 0xc2b2ae3d
add edx, eax
rol edx, 0x11
imul eax, edx, 0x27d4eb2f
mov edx, eax
shr edx, 0xf
xor eax, edx
imul eax, eax, 0x85ebca77
mov edx, eax
shr edx, 0xd
xor eax, edx
imul eax, eax, 0xc2b2ae3d
mov edx, eax
shr edx, 0x10
xor eax, edx
add rsp, 0x20
pop rbx
pop rsi
pop rdi
ret

Function at 0x1801c9420
Capabilities:
Encode data using xor
Hash data using murmur3

Disassembly:
push rdi
push rsi
push rbp
push rbx
sub rsp, 0x28
mov rsi, r8
mov edi, edx
xor ebx, ebx
mov ebp, dword [rsi + 8]
test ebp, ebp
jle 0x1801c9454
mov ecx, ebx
mov rcx, qword [rsi + rcx*8 + 0x10]
mov rax, qword [rcx]
call qword [rax + 0x28]
mov edx, edi
rol edx, 0xd
add edx, edi
mov edi, eax
xor edi, edx
inc ebx
cmp ebp, ebx
jg 0x1801c9436
mov eax, edi
rol eax, 0xf
add eax, edi
add rsp, 0x28
pop rbx
pop rbp
pop rsi
pop rdi
ret

Function at 0x1801c9470
Capabilities:
Encode data using xor
Hash data using murmur3

Disassembly:
push rdi
push rsi
push rbp
push rbx
sub rsp, 0x28
mov rsi, r8
mov edi, edx
xor ebx, ebx
mov ebp, dword [rsi + 8]
test ebp, ebp
jle 0x1801c94a4
mov ecx, ebx
mov rcx, qword [rsi + rcx*8 + 0x10]
mov rax, qword [rcx]
call qword [rax + 0x28]
mov edx, edi
rol edx, 0xd
add edx, edi
mov edi, eax
xor edi, edx
inc ebx
cmp ebp, ebx
jg 0x1801c9486
mov eax, edi
rol eax, 0xf
add eax, edi
add rsp, 0x28
pop rbx
pop rbp
pop rsi
pop rdi
ret