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

Disassembly:
sub rsp, 8
mov r9, rcx
mov r10d, 0x270
mov ecx, dword [rcx]
cmp ecx, r10d
jne 0x140014091
lea r8, [r9 + 8]
nop dword [rax + rax]
mov edx, dword [r8 - 4]
xor edx, dword [r8]
lea r8, [r8 + 4]
btr edx, 0x1f
xor edx, dword [r8 - 8]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r8 + 0x62c]
xor ecx, edx
mov dword [r8 + 0x9b8], ecx
sub r10, 1
jne 0x140014050
mov ecx, dword [r9]
jmp 0x14001417b
cmp ecx, 0x4e0
jb 0x14001417b
lea r10, [r9 + 0x9c4]
mov qword [rsp], rbx
mov r11d, dword [r10]
mov ebx, 0xe3
mov eax, r11d
mov r8, r10
mov r11d, dword [r10 + 4]
add r10, 4
mov edx, r11d
xor edx, eax
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r8 + 0x634]
xor ecx, edx
mov dword [r8 - 0x9c0], ecx
sub rbx, 1
jne 0x1400140b0
lea r10, [r9 + 0xd50]
mov ebx, 0x18c
mov r11d, dword [r10]
nop
mov eax, r11d
mov r8, r10
mov r11d, dword [r10 + 4]
mov edx, eax
xor edx, r11d
add r10, 4
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r8 - 0xd4c]
xor ecx, edx
mov dword [r8 - 0x9c0], ecx
sub rbx, 1
jne 0x140014100
mov eax, dword [r9 + 0x1380]
mov edx, eax
xor edx, dword [r9 + 4]
mov rbx, qword [rsp]
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r9 + 0x634]
xor ecx, edx
mov dword [r9 + 0x9c0], ecx
xor ecx, ecx
mov dword [r9], ecx
mov eax, ecx
mov edx, dword [r9 + rax*4 + 4]
lea eax, [rcx + 1]
mov dword [r9], eax
mov ecx, edx
mov eax, dword [r9 + 0x1384]
shr ecx, 0xb
and eax, ecx
xor edx, eax
mov eax, edx
and eax, 0xff3a58ad
shl eax, 7
xor edx, eax
mov eax, edx
and eax, 0xffffdf8c
shl eax, 0xf
xor edx, eax
mov eax, edx
shr eax, 0x12
xor eax, edx
add rsp, 8
ret

Function at 0x140016938
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [0x140019080]
test rax, rax
je 0x140016982
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x140016982
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x140016982
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x140016982
cmp dword [rcx + 0x84], 0xe
jbe 0x140016982
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x140016984
xor al, al
add rsp, 0x28
ret
Function at 0x140001898
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, 0x30
xor esi, esi
mov rdi, r8
mov r14, rdx
mov rbx, rcx
test rcx, rcx
je 0x140001924
mov rax, qword [rcx + 0x78]
dec rax
cmp rax, 0xfffffffffffffffd
ja 0x140001924
movzx ebp, word [rcx + 0x28]
lea ecx, [rsi + 0x40]
mov edx, ebp
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov qword [r14], rax
test rax, rax
je 0x140001930
mov rcx, qword [rbx + 0x78]
mov r9, rdi
and qword [rsp + 0x20], rsi
mov r8d, ebp
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov esi, eax
test eax, eax
je 0x140001907
cmp dword [rdi], ebp
je 0x140001930
lea rcx, str.BigBad_:_kull_m_bUsYlIght_device_read_raw___ERROR
call fcn.14000b9e4
mov rcx, qword [r14]
call qword [sym.imp.KERNEL32.dll_LocalFree]
and dword [rdi], 0
mov qword [r14], rax
jmp 0x140001930
lea rcx, str.BigBad_:_kull_m_bUsYlIght_device_read_raw___ERROR
call fcn.14000b9e4
mov rbx, qword [rsp + 0x40]
mov eax, esi
mov rsi, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x58]
add rsp, 0x30
pop r14
ret
Function at 0x1400019d4
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov r13d, Ordinal_69
mov r14, rdx
mov rsi, rcx
mov edx, r13d
mov r15d, r9d
mov edi, r8d
lea ecx, [r13 - 1]
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
xor r12d, r12d
mov rbx, rax
test rax, rax
je 0x140001b58
lea ebp, [r13 - 0x3a]
cmp edi, ebp
jb 0x140001a34
lea rcx, str.BigBad_:_kull_m_bUsYlIght_request_create___ERROR
call fcn.14000b9e4
cmp edi, ebp
cmovb ebp, edi
mov r10d, r12d
mov edi, 1
test ebp, ebp
je 0x140001ac0
lea r9, [r14 + 2]
movzx edx, byte [r9 - 2]
lea r8d, [r10*8]
lea ecx, [r8 + 2]
mov al, dl
or al, 0x10
movzx eax, al
test dl, 0xf0
cmove edx, eax
lea eax, [r8 + 1]
add r10d, edi
mov byte [rax + rbx], dl
mov al, byte [r9 - 1]
mov byte [rcx + rbx], al
lea ecx, [r8 + 3]
mov al, byte [r9]
lea r9, [r9 + 8]
mov byte [rcx + rbx], al
lea ecx, [r8 + 4]
mov al, byte [r9 - 7]
mov byte [rcx + rbx], al
lea ecx, [r8 + 5]
mov al, byte [r9 - 6]
mov byte [rcx + rbx], al
lea ecx, [r8 + 6]
mov al, byte [r9 - 5]
mov byte [rcx + rbx], al
lea ecx, [r8 + 7]
mov al, byte [r9 - 4]
mov byte [rcx + rbx], al
lea ecx, [r8 + 8]
mov al, byte [r9 - 3]
mov byte [rcx + rbx], al
cmp r10d, ebp
jb 0x140001a47
or word [rbx + 0x3d], 0xffff
lea rdx, [rbx + 1]
mov dword [rbx + 0x39], 0xff550404
movzx ecx, r12w
mov r8d, 0x3e
movzx eax, byte [rdx]
add rdx, rdi
add cx, ax
sub r8, rdi
jne 0x140001adb
movzx eax, cx
mov byte [rbx + 0x40], cl
shr ax, 8
mov byte [rbx + 0x3f], al
test rsi, rsi
je 0x140001b4d
lea r14, str.BigBad_:_kull_m_bUsYlIght_device_send_raw___ERROR
mov rcx, qword [rsi + 0x78]
mov ebp, r12d
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x140001b36
cmp r13w, word [rsi + 0x2a]
ja 0x140001b36
lea r9, [rsp + 0x30]
mov qword [rsp + 0x20], r12
mov r8d, r13d
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov ebp, eax
test eax, eax
jne 0x140001b3e
mov rcx, r14
call fcn.14000b9e4
and edi, ebp
test r15d, r15d
je 0x140001b4d
mov rsi, qword [rsi]
test rsi, rsi
jne 0x140001b02
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LocalFree]
jmp 0x140001b5b
mov edi, r12d
lea r11, [rsp + 0x40]
mov eax, edi
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret

Function at 0x140001b7c
Capabilities:
Terminate thread

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
push rdi
sub rsp, 0x20
and dword [rax + 8], 0
mov esi, edx
mov dword [rax + 0xc], 0x80000000
mov rdi, rcx
mov rbx, rcx
test rcx, rcx
je 0x140001bd3
and dword [rbx + 0x90], 0
mov rcx, qword [rbx + 0x98]
test rcx, rcx
je 0x140001bc7
xor edx, edx
call qword [sym.imp.KERNEL32.dll_TerminateThread]
and qword [rbx + 0x98], 0
test esi, esi
je 0x140001bd3
mov rbx, qword [rbx]
test rbx, rbx
jne 0x140001ba4
mov r9d, esi
lea rdx, [rsp + 0x30]
mov r8d, 1
mov rcx, rdi
call fcn.1400019d4
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
Function at 0x140002018
Capabilities:
Get common file path

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, 0x70
mov rbp, rcx
mov edx, 0x338
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov rbx, rax
test rax, rax
je 0x1400021be
and dword [rbx + 0x1c], 0
lea r14, [rax + 8]
and dword [rbx + 0x20], 0
mov eax, 0x4000000
mov rcx, r14
mov dword [r14], eax
mov r8, rbp
mov dword [rbx + 0xc], eax
xor edx, edx
mov word [rbx + 0x28], SQLGetData
call fcn.140001f20
test eax, eax
je 0x1400021a0
lea rsi, [rbx + 0x22a]
mov edi, 0x100
mov rdx, rsi
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
test eax, eax
je 0x1400021ac
mov edx, edi
mov rax, rsi
cmp byte [rax], 0
je 0x1400020b4
inc rax
sub rdx, 1
jne 0x1400020a6
mov rcx, rdi
mov rax, rdx
sub rcx, rdx
neg rax
sbb r8, r8
and r8, rcx
test rdx, rdx
je 0x1400021ac
lea rcx, [r8 + rsi]
sub rdi, r8
je 0x140002104
lea rdx, [0x1401027cc]
mov eax, 0x7ffffffe
sub rdx, rcx
test rax, rax
je 0x140002104
mov r8b, byte [rdx + rcx]
test r8b, r8b
je 0x140002104
mov byte [rcx], r8b
dec rax
inc rcx
sub rdi, 1
jne 0x1400020e7
test rdi, rdi
lea rax, [rcx - 1]
cmovne rax, rcx
mov byte [rax], 0
je 0x1400021ac
mov qword [rsp + 0x60], rbp
lea rax, [0x140001e40]
mov qword [rsp + 0x58], r14
lea rcx, [rbx + 0x32c]
mov qword [rsp + 0x50], rax
lea r9, [0x140001ca4]
lea rax, [0x140001e0c]
mov qword [rsp + 0x48], rax
lea r8, [0x140001c94]
lea rax, [0x140001dd4]
mov qword [rsp + 0x40], rax
lea rdx, [fcn.140001c90]
lea rax, [fcn.140001da0]
mov qword [rsp + 0x38], rax
lea rax, [0x140001d68]
mov qword [rsp + 0x30], rax
lea rax, [0x140001d30]
mov qword [rsp + 0x28], rax
lea rax, [fcn.140001cac]
mov qword [rsp + 0x20], rax
call qword [sym.imp.Cabinet.dll_FCICreate]
mov qword [rbx], rax
test rax, rax
jne 0x1400021ac
lea rcx, [0x1401027d0]
call fcn.14000b9e4
cmp qword [rbx], 0
jne 0x1400021be
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rbx, rax
lea r11, [rsp + 0x70]
mov rax, rbx
mov rbx, qword [r11 + 0x10]
mov rbp, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop r14
ret
Function at 0x1400036a8
Capabilities:
Create new key via cryptacquirecontext
Hash data via wincrypt
Initialize hashing via wincrypt

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r14
push r15
mov rbp, rsp
sub rsp, 0x50
xor ebx, ebx
mov r15, r9
mov esi, r8d
mov r14, rdx
mov edi, ecx
cmp ecx, 0x8000
jne 0x140003743
cmp dword [rbp + 0x40], 4
jne 0x140003825
lea rdx, [rbp - 0x20]
mov ecx, 0xffffff7c
call qword [sym.imp.cryptdll.dll_CDLocateCheckSum]
test eax, eax
js 0x140003825
mov rax, qword [rbp - 0x20]
lea rdx, [rbp - 0x10]
xor ecx, ecx
call qword [rax + 0x10]
test eax, eax
js 0x140003825
mov rax, qword [rbp - 0x20]
mov r8, r14
mov rcx, qword [rbp - 0x10]
mov edx, esi
call qword [rax + reloc.ODBC32.dll_SQLAllocHandle]
mov rax, qword [rbp - 0x20]
mov rdx, r15
mov rcx, qword [rbp - 0x10]
call qword [rax + 0x20]
not eax
lea rcx, [rbp - 0x10]
shr eax, 0x1f
mov ebx, eax
mov rax, qword [rbp - 0x20]
call qword [rax + Ordinal_41]
jmp 0x140003825
mov r9d, reloc.ODBC32.dll_SQLAllocHandle
mov dword [rsp + 0x20], 0xf0000000
xor r8d, r8d
lea rcx, [rbp - 8]
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
je 0x140003825
mov rcx, qword [rbp - 8]
lea rax, [rbp - 0x18]
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov edx, edi
call qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
je 0x140003819
mov rcx, qword [rbp - 0x18]
xor r9d, r9d
mov r8d, esi
mov rdx, r14
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
je 0x14000380f
mov rcx, qword [rbp - 0x18]
lea r9, [rbp + 0x20]
xor r8d, r8d
mov dword [rsp + 0x20], ebx
lea esi, [r8 + 2]
mov edx, esi
call qword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
test eax, eax
je 0x14000380f
mov edx, dword [rbp + 0x20]
lea ecx, [rsi + 0x3e]
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov rdi, rax
test rax, rax
je 0x14000380f
mov rcx, qword [rbp - 0x18]
lea r9, [rbp + 0x20]
mov r8, rax
mov dword [rsp + 0x20], ebx
mov edx, esi
call qword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
mov ecx, dword [rbp + 0x40]
mov rdx, rdi
cmp dword [rbp + 0x20], ecx
mov ebx, eax
cmovb ecx, dword [rbp + 0x20]
mov r8d, ecx
mov rcx, r15
call fcn.1400e84c0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, qword [rbp - 0x18]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov rcx, qword [rbp - 8]
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
lea r11, [rsp + 0x50]
mov eax, ebx
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
Function at 0x140003844
Capabilities:
Encrypt data using des via winapi

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 r12
push r14
push r15
sub rsp, 0x30
mov esi, r9d
mov r12, rcx
xor ebx, ebx
mov ecx, 0x6603
mov r14, r8
mov r15d, edx
lea ebp, [rsi + 0xc]
cmp edx, ecx
je 0x1400038db
mov edx, ebp
lea ecx, [rbx + 0x40]
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov rdi, rax
test rax, rax
je 0x140003909
mov r8d, esi
mov dword [rax], 0x208
lea rcx, [rax + 0xc]
mov dword [rax + 4], r15d
mov rdx, r14
mov dword [rax + 8], esi
call fcn.1400e84c0
mov rax, qword [rsp + 0x78]
xor r9d, r9d
mov qword [rsp + 0x28], rax
mov r8d, ebp
mov eax, dword [rsp + 0x70]
mov rdx, rdi
mov rcx, r12
mov dword [rsp + 0x20], eax
call qword [sym.imp.ADVAPI32.dll_CryptImportKey]
mov rcx, rdi
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_LocalFree]
jmp 0x140003909
mov rax, qword [rsp + 0x80]
test rax, rax
je 0x140003909
mov r9d, dword [rsp + 0x70]
mov r8d, esi
mov qword [rsp + 0x28], rax
mov rdx, r14
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x20], rax
call fcn.14000434c
mov ebx, eax
mov rbp, qword [rsp + 0x58]
mov eax, ebx
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x68]
add rsp, 0x30
pop r15
pop r14
pop r12
ret

Function at 0x14000392c
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], r12
push r13
push r14
push r15
sub rsp, 0x150
xor esi, esi
mov ebx, r8d
cmp r8d, dword [rsp + 0x190]
mov r15, r9
mov r14, rdx
mov r12d, ecx
setae sil
jb 0x140003975
mov r8d, dword [rsp + 0x190]
jmp 0x140003a2b
mov r13d, Ordinal_69
lea rcx, [rsp + 0x30]
mov r8d, r13d
lea edx, [r13 - 0xa]
call fcn.1400e8100
mov r8d, r13d
lea edx, [r13 + 0x1c]
lea rcx, [rsp + 0x70]
call fcn.1400e8100
test ebx, ebx
je 0x1400039c9
lea rax, [rsp + 0x30]
mov r8, rbx
sub r14, rax
xor edx, edx
lea rax, [rsp + 0x30]
add rax, rdx
mov cl, byte [r14 + rax]
xor byte [rsp + rdx + 0x70], cl
inc rdx
xor byte [rax], cl
sub r8, 1
jne 0x1400039ae
lea r9, [rsp + 0xb0]
mov dword [rsp + 0x20], ebx
mov r8d, r13d
lea rdx, [rsp + 0x30]
mov ecx, r12d
call fcn.1400036a8
test eax, eax
je 0x140003a33
lea r9, [rsp + 0xb0]
mov dword [rsp + 0x20], ebx
add r9, rbx
lea rdx, [rsp + 0x70]
mov r8d, r13d
mov ecx, r12d
call fcn.1400036a8
mov esi, eax
test eax, eax
je 0x140003a33
lea ecx, [rbx + rbx]
cmp dword [rsp + 0x190], ecx
lea rdx, [rsp + 0xb0]
cmovb ecx, dword [rsp + 0x190]
mov r8d, ecx
mov rcx, r15
call fcn.1400e84c0
lea r11, [rsp + 0x150]
mov eax, esi
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov r12, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop r13
ret
Function at 0x140003b18
Capabilities:
Create new key via cryptacquirecontext
Hash data via wincrypt
Initialize hashing via wincrypt

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rbp
push rdi
push r14
mov rbp, rsp
sub rsp, 0x80
xor ebx, ebx
mov dword [rbp - 0x28], ecx
mov r14, r9
mov qword [rbp - 0x20], rbx
mov edi, r8d
mov dword [rbp - 0x18], ebx
mov rsi, rdx
mov qword [rbp - 0x10], rbx
lea r9d, [rbx + 0x18]
mov dword [rbp - 8], ebx
xor r8d, r8d
mov dword [rsp + 0x20], 0xf0000000
xor edx, edx
lea rcx, [rbp - 0x38]
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
je 0x140003c89
mov rcx, qword [rbp - 0x38]
lea rax, [rbp - 0x30]
mov qword [rsp + 0x30], rbx
mov r9d, edi
mov qword [rsp + 0x28], rax
mov r8, rsi
mov edx, 0x6602
mov dword [rsp + 0x20], 0x100
call fcn.140003844
test eax, eax
je 0x140003c7d
mov r8, qword [rbp - 0x30]
lea rax, [rbp - 0x40]
mov rcx, qword [rbp - 0x38]
xor r9d, r9d
mov edx, 0x8009
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
je 0x140003c73
mov rcx, qword [rbp - 0x40]
lea r8, [rbp - 0x28]
xor r9d, r9d
lea edx, [rbx + 5]
call qword [sym.imp.ADVAPI32.dll_CryptSetHashParam]
test eax, eax
je 0x140003c69
mov r8d, dword [rbp + 0x40]
xor r9d, r9d
mov rcx, qword [rbp - 0x40]
mov rdx, r14
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
je 0x140003c69
mov rcx, qword [rbp - 0x40]
lea esi, [rbx + 2]
mov edx, esi
mov dword [rsp + 0x20], ebx
lea r9, [rbp + 0x20]
xor r8d, r8d
call qword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
test eax, eax
je 0x140003c69
mov edx, dword [rbp + 0x20]
lea ecx, [rbx + 0x40]
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov rdi, rax
test rax, rax
je 0x140003c69
mov rcx, qword [rbp - 0x40]
lea r9, [rbp + 0x20]
mov r8, rax
mov dword [rsp + 0x20], ebx
mov edx, esi
call qword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
mov ecx, dword [rbp + 0x50]
mov rdx, rdi
cmp dword [rbp + 0x20], ecx
mov ebx, eax
cmovb ecx, dword [rbp + 0x20]
mov r8d, ecx
mov rcx, qword [rbp + 0x48]
call fcn.1400e84c0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, qword [rbp - 0x40]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov rcx, qword [rbp - 0x30]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
mov rcx, qword [rbp - 0x38]
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
lea r11, [rsp + 0x80]
mov eax, ebx
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret
Function at 0x140003eec
Capabilities:
Encrypt or decrypt via wincrypt

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
xor r15d, r15d
mov rdi, r9
mov ebx, r8d
mov r12, rdx
mov rsi, rcx
lea r13d, [r15 + 0x10]
cmp r8d, r13d
jbe 0x140004092
lea r9, [rbp - 0x40]
xor r8d, r8d
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptDuplicateKey]
test eax, eax
je 0x1400040b7
xor r9d, r9d
lea edx, [r15 + 1]
mov r8, rdi
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_CryptSetKeyParam]
test eax, eax
je 0x140004086
lea r14d, [rbx + 0xf]
shr r14d, 4
and ebx, 0xf
mov edi, r14d
cmovne r13d, ebx
shl edi, 4
cmp r14d, 2
jbe 0x140003fa1
lea eax, [rdi - 0x20]
xor r9d, r9d
mov dword [rbp + 0x40], eax
xor r8d, r8d
lea rax, [rbp + 0x40]
xor edx, edx
mov qword [rsp + 0x28], rax
mov rcx, rsi
mov qword [rsp + 0x20], r12
call qword [sym.imp.ADVAPI32.dll_CryptDecrypt]
test eax, eax
je 0x140004086
lea eax, [r13 + 0x10]
add r14d, 0xfffffffe
shl r14d, 4
lea rcx, [rbp - 0x28]
add r14, r12
mov r8d, eax
mov rdx, r14
mov ebx, eax
call fcn.1400e84c0
mov eax, 0x10
lea rcx, [rbp - 0x28]
sub eax, r13d
add rcx, rbx
mov r8d, eax
mov qword [rbp - 0x38], rax
xor edx, edx
mov qword [rbp - 0x30], rcx
call fcn.1400e8100
mov rcx, qword [rbp - 0x40]
lea rax, [rbp + 0x40]
mov qword [rsp + 0x28], rax
xor r9d, r9d
lea rax, [rbp - 0x28]
mov dword [rbp + 0x40], 0x10
xor r8d, r8d
mov qword [rsp + 0x20], rax
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptDecrypt]
test eax, eax
je 0x140004086
movdqu xmm1, xmmword [rbp - 0x28]
mov r8, qword [rbp - 0x38]
lea rdx, [rbp - 0x28]
movdqu xmm0, xmmword [rbp - 0x18]
mov rcx, qword [rbp - 0x30]
mov ebx, r13d
xorps xmm1, xmm0
add rdx, rbx
movdqu xmmword [rbp - 0x28], xmm1
call fcn.1400e84c0
lea rax, [rbp + 0x40]
mov dword [rbp + 0x40], 0x10
mov qword [rsp + 0x28], rax
xor r9d, r9d
lea rax, [rbp - 0x18]
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x20], rax
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_CryptDecrypt]
mov r15d, eax
test eax, eax
je 0x140004086
movups xmm0, xmmword [rbp - 0x18]
lea ecx, [rdi - 0x10]
mov r8d, ebx
add rcx, r12
lea rdx, [rbp - 0x28]
movdqu xmmword [r14], xmm0
call fcn.1400e84c0
mov rcx, qword [rbp - 0x40]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
jmp 0x1400040b7
jne 0x1400040b7
lea rax, [rbp + 0x40]
mov dword [rbp + 0x40], r13d
mov qword [rsp + 0x28], rax
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], r12
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptDecrypt]
mov r15d, eax
lea r11, [rsp + 0x70]
mov eax, r15d
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
Function at 0x1400040d8
Capabilities:
Encrypt or decrypt via wincrypt

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
xor r12d, r12d
mov rax, r9
mov ebx, r8d
mov r14, rdx
mov r15, rcx
lea edi, [r12 + 0x10]
cmp r8d, edi
jbe 0x14000420d
xor r9d, r9d
lea edx, [rdi - 0xf]
mov r8, rax
call qword [sym.imp.ADVAPI32.dll_CryptSetKeyParam]
test eax, eax
je 0x14000423d
lea ebp, [rbx + 0xf]
mov r13d, edi
shr ebp, 4
and ebx, 0xf
mov esi, ebp
cmovne r13d, ebx
shl esi, 4
cmp ebp, 2
jbe 0x14000417b
lea eax, [rsi - 0x20]
xor r9d, r9d
mov dword [rsp + 0x30], eax
xor r8d, r8d
mov dword [rsp + 0xa0], eax
xor edx, edx
lea rax, [rsp + 0xa0]
mov rcx, r15
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r14
call qword [sym.imp.ADVAPI32.dll_CryptEncrypt]
test eax, eax
je 0x14000423d
lea eax, [r13 + 0x10]
add ebp, 0xfffffffe
shl ebp, 4
lea rcx, [rsp + 0x40]
add rbp, r14
mov r8d, eax
mov rdx, rbp
mov ebx, eax
call fcn.1400e84c0
lea rcx, [rsp + 0x40]
sub edi, r13d
add rcx, rbx
mov r8d, edi
xor edx, edx
call fcn.1400e8100
mov eax, Ordinal_36
xor r9d, r9d
mov dword [rsp + 0x30], eax
xor r8d, r8d
mov dword [rsp + 0xa0], eax
xor edx, edx
lea rax, [rsp + 0xa0]
mov rcx, r15
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_CryptEncrypt]
mov r12d, eax
test eax, eax
je 0x14000423d
movups xmm0, xmmword [rsp + 0x50]
lea ecx, [rsi - 0x10]
mov r8d, r13d
add rcx, r14
lea rdx, [rsp + 0x40]
movdqu xmmword [rbp], xmm0
call fcn.1400e84c0
jmp 0x14000423d
jne 0x14000423d
lea rax, [rsp + 0xa0]
mov dword [rsp + 0x30], edi
mov qword [rsp + 0x28], rax
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], r14
xor edx, edx
mov dword [rsp + 0xa0], edi
call qword [sym.imp.ADVAPI32.dll_CryptEncrypt]
mov r12d, eax
lea r11, [rsp + 0x60]
mov eax, r12d
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
Function at 0x140004260
Capabilities:
Create new key via cryptacquirecontext

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
mov dword [rax + 8], ecx
push rdi
sub rsp, 0x50
mov rbp, r9
mov dword [rax + 8], 1
mov edi, r8d
mov dword [rax - 0x38], 0xf0000000
mov rsi, rdx
lea rcx, [rax - 0x10]
xor ebx, ebx
xor r8d, r8d
xor edx, edx
lea r9d, [rbx + 0x18]
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
je 0x140004334
mov rcx, qword [rsp + 0x48]
lea rax, [rsp + 0x40]
mov qword [rsp + 0x30], rbx
lea r9d, [rbx + 0x10]
mov qword [rsp + 0x28], rax
mov r8, rbp
mov edx, 0x660e
mov dword [rsp + 0x20], ebx
call fcn.140003844
test eax, eax
je 0x140004327
mov rcx, qword [rsp + 0x40]
lea r8, [rsp + 0x60]
xor r9d, r9d
lea edx, [rbx + 4]
call qword [sym.imp.ADVAPI32.dll_CryptSetKeyParam]
test eax, eax
je 0x14000431c
mov r8d, edi
mov r9, qword [rsp + 0x88]
mov rdx, rsi
mov rcx, qword [rsp + 0x40]
cmp dword [rsp + 0x90], ebx
je 0x140004315
call fcn.1400040d8
jmp 0x14000431a
call fcn.140003eec
mov ebx, eax
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
mov rcx, qword [rsp + 0x48]
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov rbp, qword [rsp + 0x70]
mov eax, ebx
mov rbx, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x78]
add rsp, 0x50
pop rdi
ret